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