192.168.168.198 wet11two 00:0C:41:BE:BF:B0
清單 2. 分配一個主機名和 MAC 地址請參閱參考資料中 /etc/hosts 的一個示例實現。
networkingrestart:networkingrestart 腳本負責啟動網絡,并對所有有效的客戶機進行身份驗證。它將讀取 /etc/hosts 文件,然后將這個 MAC 地址添加到無線訪問控制列表中。
gethost:在向 gethost 腳本傳遞一個 IP 地址、主機名或 MAC 地址時,它就會從 /etc/hosts 文件中返回所有這三種內容。countlog、pingscan 和 scanap 腳本都會使用 gethost 腳本,也可以在命令行中直接使用此腳本。
scanap:scanap 腳本的作用是顯示 IP 地址、MAC 地址、主機名,以及客戶機與 AP 之間的連接的質量。它會對 Wireless Tools 的 iwlist 的輸出結果重新進行格式化,并添加 MAC 地址的信息,這樣就可以在每一行中對每臺客戶機的狀態進行總結。它的輸出結果如下所示:
MAC Address...... Quality Signal Noise. IP Address....... Name 00:0C:41:BE:BF:B0 238/92 -29 -35 192.168.168.198 wet11two
清單 3. scanap 腳本的輸出管理帶寬
WISP 要負責處理有線網絡中的所有復雜問題,以及特定于無線環境的一些問題。下面這些腳本可以確保您所提供的帶寬既穩又快。
errors:errors 腳本會對 Linux 的 /proc/net/ 中的信息進行統計,并給出這個訪問點的所有傳輸錯誤率的快照。它還將輸出結果寫入一個表格文件,供以后處理使用。它的輸出結果如下:
13 22:20 TX Octets: 294080 TX errors: 1665 TX error ratio: 176 13 22:20 RX Octets: 893539 RX errors: 3225913 RX error ratio: 0
清單 4. errors 腳本的輸出結果這個例子說明第一次成功傳送的報文的數量比需要重新傳送的報文的數量多 176 倍,還說明發送報文時出現的錯誤遠遠多于接收報文的錯誤。這些數字僅僅是我們需要觀察的一些指標,因此如果這些數字并不一致,也不用擔心。使用情況會對這些比率值造成非常大的影響。如果不使用網絡,就不會有成功的報文,因此這個比率就是 0。如果很少使用網絡,那么這個比率就會很低。隨人們越來越多地使用網絡,這個比率可能會極其高。
pingscan:pingscan 腳本負責測量網絡的延時,它將說明客戶機是否具有最快、最可靠的吞吐量。它向客戶機發送 4 個短的 ping 包(每個是 56 個字符)和 4 個長的 ping 包(每個是 1,024 個字符),然后返回以下信息,每行的內容如下:
● 客戶機的主機名和 IP 地址。
● 時間戳。
● 接收到短 ping 包的響應的個數。
● 接收到長 ping 包的響應的個數。
● 對短 ping 包響應超過 1 秒的個數。
● 對長 ping 包響應超過 1 秒的個數。
它還要將結果記錄到一個電子表格文件中,便于以后進行分析。在如清單 5 所示的結果中,這個主機目前執行得很好。這些響應來自 4 個短的 ping 包和長的 ping 包。沒有一個響應超過 1 秒。
wet11two,2005-03-18,23:59,4,4,0,0
清單 5. pingscan 腳本的輸出下一個示例輸出清單是在一天后執行的。在這一天中,同一臺主機上丟失了一些響應信息 —— 4 個短 ping 包中只有一個收到了響應,4 個長 ping 包中只有 3 個收到了響應。
wet11two,2005-03-19,23:59,1,3,0,0
清單 6. 示例 pingscan 腳本的輸出如果其他客戶機都運行良好(4,4,0,0),那么就是這臺主機目前出現了問題。另一方面,如果多臺客戶機上都丟失了響應信息,那么問題就可能在于訪問點上。通信的監視
了解 AP 上有多少通信是非常有用的。實現這種功能的一種方法是通過 SNMP 來記錄路由器的通信信息,然后對這些日志記錄進行統計。不同路由器的日志也有所不同,因此您需要以不同的方式對它們進行處理。
我將路由器配置為將其 SNMP 的記錄發送到一個搜集器主機(在這里是 AP)的 IP 地址。在 AP 一端,我將運行 snmpd 和 snmptrapd 守護進程,將這些記錄保存到一個文件中。這些記錄如下所示:
"@out 192.168.168.192 2983 208.222.234.90 80." "@in 211.107.232.1 51550 192.168.168.196 21."
清單 7. 記錄搜集外發的記錄是一個 Web 請求,從 192.168.168.192 發往 208.222.234.90。傳入的記錄是一個 FTP 請求,從 211.107.232.1 發往 192.168.168.196。
您可以從這個文件中提取很多有用的信息 —— 例如,可能有一些您希望阻塞的病毒探測。countlog 腳本可以使用兩種不同的方法來統計這些傳入的記錄和外發的記錄。它可以統計最后 n 分鐘內的請求數量,其中 n 可以是一個自行定義的數字:
Checking 5 minutes before 23:59... 101 requests in 5 minutes An average of 20 requests per minute
清單 8. countlog 腳本統計 n 分鐘內的請求數量它還可以統計過去 24 小時內請求的個數:
Start... Total Outbound and Inbound Today 00:00... out: 192 in: 63 out/min: 3 . . . 19:00... out: 243 in: 96 out/min: 4 20:00... out: 308 in: 66 out/min: 5 21:00... out: 151 in: 103 out/min: 2 22:00... out: 206 in: 94 out/min: 3 23:00... out: 160 in: 70 out/min: 2 Totals.. 2095 1759
IP Address (Host Name) Total Outbound Today 192.168.168.8 (cheltenham) 659 192.168.168.191 (t30lan) 156 192.168.168.192 (downstairs) 1044 192.168.168.196 (opteron) 236
Total all IP's.... 2095
清單 9. countlog 腳本統計過去 24 小時內請求的個數結束語
很多命令行 shell 腳本都可以簡化 WISP 的管理。下面是最后幾點提示:
●不要在客戶端使用 USB 無線網橋。它們的功能非常有限,當客戶機關機之后,就無法 ping 到它們了。
●不要試圖通過一個非常便宜的家用路由器來運行一個很大的無線網絡。這樣會產生不可預知的后果。
使用本文中介紹的工具和技術,您應該可以搭建并運行自己的無線網絡。
參考資料
如果您希望了解在 Linux 上可以使用哪些無線網卡,那么請參閱 Jean Tourrilhes' page dedicated to the subject。在那里可以找到有關本文中使用的 Prism2 卡的內容。
Pebble Linux 是專用于嵌入式設備。它是基于 Debian 的,因此您可以使用 apt-get 工具。
關于作者
自 1999 起,Alan Baker 就一直是各種 Linux 服務器的系統管理員,這些服務器包括撥號、郵件、Web 和無線服務器。他于 2003 年成為一名無線 Internet 服務的提供者,他喜歡使用一些 bash 腳本來增強系統的安全性并自動化 Linux 系統的管理任務。