上週末的 COSCUP 2008 終於結束了。報名人數超過四百餘人 (且還有眾多人員向隅),報名踴躍與出席狀況都相當良好,活動算是大成功阿。特別是今年第一個晚上的 BoF ,開了五個議程,每場都有同好參加,是第一次台灣社群活動所謂 BoF 成功的例子阿∼ 成功的會議要感謝主辦團隊跟各社群協調者的大力支持、配合。

這次活動,兼任了場地的無線網路佈建跟最後一場主持人,順便分享了一場年初到目前為止的無線網路佈建經驗。簡報檔案可於COSCUP 2008 網站上下載。


感謝 cocakl 攝影

講題的部份,由於時間只有二十分鐘,有許多東西其實沒辦法深入解釋說明,光是講到頭幾頁介紹 OpenWrt 8.08 就已經花了十五分鐘。很多可以詳細說明的細節只好略過不提,像是天線的配置與選擇技巧,以及 802.11 b/g 所使用的 DSSS, OFDM特性差異,特別是投影片的最後幾張政見宣導沒有機會講。投影片中的許多細節可以於先前 Blog 過的文章中找到深入說明。去年的簡報也可於下載。

本次活動的網路實在是非常囧。早在一個月前就已經去場勘,原則上除了需要先註冊欲使用的設備 MAC Address 外,網路直接使用台灣大學應用力學研究所的區網應該可以非常順暢。沒想到活動前一天才知道,8/23 整天台灣大學因為網路設備升級會斷線!

當下重新為 ASUS WL-HDD25 與 FON2202 重新編譯了一版可以接取 Huawei E220 的 OpenWrt Trunk 版本。前一晚幾乎都在編譯加上測試。雖然當天借用到了四、五個 3G SIM/Modem,沒想到還是不敵場內 GSM/3G 訊號不良,對外頻寬比小便撥接還慢。虧我還帶了一台 EEEPC + USB Hub 要當 Multipath-routing Gateway (後來才知道原來大廳可以收到好訊號,應該要另外想辦法弄幾台 Repeater 出來打進室內才對)

週六傍晚與週日雖然對外恢復,但是台大對外路由一直頗怪,像是接到中華電信或國外某些網段都會嚴重掉封包。且台灣大學內部的名稱伺服器反應特慢,所以大家使用大約也會感受到鈍鈍。(大家倒是很給面子的沒有嫌棄阿,感恩)

連續幾次佈建都不甚順利,下次真的要買綠色乖乖來祭拜宅神 (地基主) 了啊。

哈,終於我 Thinkpad X60 上的 Atheros AR5418 802.11abgn Wireless PCI Express Adapter 要有原生 (Native) 驅動程式了。

Linux Wireless Driver 強者 Luis R. Rodriguez (mcgrof) 加入 Atheros Communications Inc. 後,終於釋出了第一版的開放原碼驅動程式。ath9k 預計支援的晶片有

  • AR5418+AR5133
  • AR5416+AR5133
  • AR5416+AR2133
  • AR9160
  • AR9280
  • AR9281

目前只有 STA 功能,但是 AP, WDS, IBSS (for mesh) 都列在 TODO List 中了。最新的程式碼可以於此下載

git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/ath9k.git

當下的版本必須搭配最新的無線網路模組使用,可於此下載

git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git

或是從 Luis R. Rodriguez 的獨立開發分支中取出無線相關模組與 ath9k driver。

根據 Luis 的說明,ath9k 的程式碼目前已整合於

git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git

關於相關討論,可參考 ath9k-devel 郵遞論壇。依照目前的進度看起來,大約至少要到 2.6.27/2.6.28 才會整合到官方核心中。BTW, OpenWrt 是第一個整合 ath9k 的套件系統喔。;-)

我在 OSDC 的佈建一文中提到做場勘時,需要使用 Spectrum Analyzer。這是為了要挑選一個比較少訊號、雜訊干擾的頻帶。

很多人都知道,在設定無線網路 (WiFi) 時必須小心選擇將使用的頻道 (Channel),避免與其他的基地台使用相同的頻道,以免互相干擾。

比較少人注意的是,由於 IEEE 802.11 b/g 使用的頻是 22MHz 寬,因為法規技術規格上的限制,其實真正不重疊的頻道只有三、四個 (端視你在甚麼國家)。在某些國家如台灣雖然允許 11 個頻道,但是其實只有 1, 6, 11 這三個頻道是沒有與其他頻道重疊的。

Source: How Wifi channels overlap

於是,你最好只使用 1, 6, 11這三個頻道。根據 Cisco 的一篇舊文章 「Channel Deployment Issues for 2.4-GHz 802.11 WLANs」,即便你選用 1, 4, 9, 11 等看似只稍微重複的頻道,也會因為高密度的接取使用,使 802.11 所應用的 CSMA/CA (停看聽才過馬路協定) 協定會因為避免碰撞而造成網路使用停頓 。(Co-channel interference)

更甚者,因為重疊的干擾訊號不夠強,而其他的設備無法辨識為 802.11 訊號,誤認頻段是乾淨的而持續的送出訊號,如此一來偶爾可辨識、偶爾視為雜訊的狀態下,反而加重碰撞現象,使網路效率更加惡化。(Adjacent-channel interference) 更糟的是且 802.11g 所使用的 OFDM 技術所使用的頻譜訊號強度比 802.11b 所應用的 CCK 更強 (應該說相較之下,OFDM 的訊號衰減較小),干擾影響更為嚴重。

除了頻道必須小心選用較少無線網路基地台佔用的頻道外,還要注意其他的干擾源。由於無線網路使用的是 2.4Ghz 免授權頻譜 ISM Band,而這段頻譜是有可能被其他的射頻源所干擾的。在家庭中,最常見的干擾源是微波爐藍芽無線電話以及某些無線監視系統等。

不像是選用頻道,你可以用無線網路卡掃描現有的無線網路基地台狀態,有許多干擾訊號是你的網路卡無法辨識、也無法告知有許多雜訊的。特別是舉辦研討會時,不少人都會攜帶會干擾無線網路訊號的藍芽手機。這個時候,你就需要使用頻譜分析器來辨識真正乾淨無干擾的頻道了。

然而,好的一套頻譜分析儀加上軟體,市場價格常常會超過一兩萬美金。而且這些設備都十分龐大,只適合擺在實驗室,不方便帶著到處跑。

所幸有些公司開發了給筆記型電腦使用的便利頻譜分析儀,像是 Fluke NetworksAnalyzeAirAirMagnetSpectrum Analyzer、Cognio (被 Cisco 收購) 的 Spectrum Expert

這些工具都十分強大,如 Cognio Spectrum Expert 辨識解析度為 10 kHz,應用軟體甚至可以幫你辨識出發出特定訊號的裝置類型,可以輕鬆的找出無線網路問題。不過價格也高達 4000 上下美金,不算是很經濟的解決方案。

退而求其次,就是比較單純的 USB 介面簡易頻譜分析儀。如 Nuts About Nets、或 MetaGeekWiSpy 2.4x。這些產品只要上述的十分之一,約 USD 400 上下即可入手。雖然無法達到自動辨識設備類型,但是已經足以排除頻譜干擾的問題。若你經驗夠的話,也可以從訊號的模式猜測出可能的干擾類型

身為偏好使用自由軟體的偏執狂,我自然選用了 WiSpy 2.4x。除了因為 WiSpy 2.4x 有免費的 Chanalyzer (Windows) 與 EaKiu (Mac OS X) 可用外,還有強者 dragorn 做的開放原碼 Spectools

根據 Tim Higgins 在 SmallNetBuilder 所寫的 MetaGeek Wi-Spy 2.4x Review: Better, but Bigger Bucks 一文,你可以知道 WiSpy 2.4x 的主要元件是 Chipcon CC2500 (現為 TI) 2.4 GHz tranceiver 與 Silicon Labs 的 C8051F326 (8051 MCU with 25 MHz System Clock). 成本其實相當便宜。雖說成本便宜,不過由於這是 Niche Market,售價還是要達 400 美金,總而言之這個價格跟其他類似的產品比起來已經是相當實惠了。

使用 WiSpy 2.4x 搭配 ASUS EEEPC,再裝上 Debiankismet, Wireshark, Spectools 後根本是輕巧的神兵利器!由於 ASUS EEEPC 上得無線網路卡是 Atheros AR5007EG,只要裝上部份開放原碼的 madwifi 驅動程式,就可以把無線網路卡設定為 Monitor 模式。

於是你可以使用 kismet 一邊監測無線訊號中的 Beacons,一邊以 spectools 監測訊號強度與雜訊。

只要再配上一顆 USB Wirless NIC,就可以同時監測與連入各機器中作設定。若是 EEEPC 的螢幕換成 OLED,那就更完美了 (不過相對價格也會高很多)。由於我的 X60 也是用 Atheros AR5418 802.11bgn,因此大部分時候,我還是在 X60 上享受「大」螢幕的快感。

剛剛提到 WiSpy 2.4x 的軟體無法作設備自動辨識,與其他工具比起來稍遜。但 MetaGeek 在六月的時候,釋出了一版新的 Chanalyzer (beta, 現在已是 3.1 版),整合了 InSSIDer (或類似 NetStumbler) 利用無線網路卡掃描的結果,更友善的顯示出每個訊號的強度。也整合了頻譜訊號特徵比對功能,透過拖拉,就可以對照出可能的干擾類型。這些新的功能是目前開放原碼工具中尚欠缺的。

關於這些新功能,請參考以下展示畫面

當初買 E70 的原因之一,是因為它同時支援 UMTS/WCDMA/Bluetooth/WiFi,所有的近端、遠端無線通訊都支援了。

不過當初購買的時候,市面上還沒有方便的連線軟體。Nokia 倒是附贈內建了
Psiloc Hotspot Finder。但操作起來遠沒有目前的新款手機如 N95, N82 來的方便,系統內沒有任何設定精靈可以用,因此你必須進入 Settings/Connection/Access Points 一組一組設定 ESSID 到加密類型、密碼等,非常麻煩。

所幸,Nokia N-Series 的 WLAN Wizard 是可以免費下載的,雖然在 E70 上,並不會在待機畫面出現快捷按鍵,但是自動搜尋與定義 Access Point 的功能也可以相當滿足了。

但倘若你需要存取 HotSpot,就必須使用另外一套軟體。由於 WiFi HotSpot 通常會使用所謂 Web-based Universal Access Method (UAM),你透過手機連上訊號後,必須再使用瀏覽器輸入帳號密碼。但在手機上,瀏覽網頁跟輸入帳號密碼都頗為困難,所幸 UAB TeleSoftas 免費提供了 Handy Wi,此軟體支援所謂 WISPr 漫遊認證協定,因此只要你輸入一次 ISP 的帳號密碼,軟體就可以自動搜尋附近的熱點,並且自動登入。

HandyWi connecting to FON

這兩個軟體是我目前的主力連線工具。

第一次看到 Whisher 是在去年年初的 Demo7相關報導,很多報導將 Whisher 與 FON 做比較。原因之一大約是因為 Whisher 的 CEO Ferran Moreno 是 FON 的早期主管,而且 Whisher 的總部也位於西班牙。

Whisher 的概念其實跟 FON 完全不同,唯一類似的功能是「免費分享網路」。不像 FON 為無線網路分享設計了硬體產品與後端的認證平台,Whisher 提供的是更算是無線網路資訊分享與群眾外包 (Crowdsourcing)工具,像是 Qon優仕網無線上網地圖JiWireWeFi 等。

Whisher 的作法是提供一個連線軟體 (是用 Qt 寫的喔),你可以使用該軟體掃描附近的無線網路,軟體會告知你哪些無線網路基地台已被註冊在 Whisher 系統上,若是使用密碼加密的訊號,你也可以透過 Whisher 取得使用密碼。

若你恰巧有一台自己的無線網路基地台,或者幸運的拿到存取無線網路的帳號密碼。你也可以直接透過該連線軟體將路由器資訊,包含簡介、地址、以及加密資訊(自動偵測)傳到 Whisher 平台上。

由於你根本不需要自建基地台,就可以註冊別人的路由器到資料庫中。因此我將其稱為好鄰居網路共享平台,任何想共用免費無線網路的人都可以試著來用這個系統。

由於 Whisher 並沒有針對硬體層級進行設計與調整,因此它並沒有辦法協助你分享網路。你還是會有使用傳統無線網路進行分享的風險,如頻寬遭到大量下載侵佔使用,或遭到冒用時無法查出當時是哪一位訪客所使用。

此外,在加密共享的部份,由於是透過資訊保密的方式分享密鑰,意思是雖然使用者透過密鑰連上加密網路,但是是軟體自行下載密鑰連線,使用者無法透過介面得知特定基地台的密鑰。但是其實既然 Whisher 是透過 Hook 方式設定網路介面,你依然可以試著攔截到軟體傳過來的密鑰。這是利用使用者的無知來達到安全的目的,是無法相信的。

3.0 版本的最大特色是,提供了須付費的商用無線網路連線接取功能。你可以先上 Whisher 網站購買點數 (稱為 WiFi Out),而 Whisher 在掃描到商用網路時,也會列出使用的費率供參考,你大可直接點取後享受網路。Whisher 藉由與 WeRoam 的合作,目前已經可以支援 262 家不同的 Wireless ISP. 若你時常全球到處跑,這是一個便利無線接取工具。

前些時候也推出了給 Symbian 手機專用的軟體,若是可以增加我連上一些已經加密的無線網路基地台的機會,還蠻想安裝的呢。(目前已經過封測時間,所以軟體又無法下載使用了)

根據 xdite 的心得感想,要辦好網路社群為主的會議,有三個主要重點

「正妹工作人員要多,即使少也不能傷眼,最好是有拍回去讓人炫耀的水準」
「網路品質要好,即使很慢也要不能一直狂斷,有線網路是最佳選擇」
「點心要好吃,不好吃也要讓人人吃到飽,最好是茶點時間超級長」

網路一直都是網路社群研討會籌辦者的痛苦,這些參與者本來就是隨時掛網的傢伙,要是參加了激發想像力的會議,卻沒有辦法馬上把資料上傳到網路上或跟網友討論,立即就會見到整個會場充滿焦慮惱怒的氣氛,這時就不用期待會議會有甚麼迴響了。

偏偏大部分的會議場所,基礎環境都不夠完備,缺電缺網路是正常不過的事情。網路的佈建若是要拉線到每個座位上,光是佈線的費用就大約比場租還貴,更何況還得籌備 Switch/Routers 等網路設備。

所以通常是以無線網路作為基礎,然而臨時要借來一堆無線網路基地台也不是一件容易的事情阿,因此都得到處請託。借到設備後也得顧慮佈建的方式,除了基本的 Site Survey 了解場地的大小與障礙物外,以便判斷該將 Access Point 部屬在什麼地方,以及選用適當的天線。最好還要準備 Spectrum Analyzer 等工具,以便決定如何分派有限的通訊頻道。若缺乏了這些工具,想臨時辦好無線網路這件事情並沒有那麼容易阿。

先前幾次經驗,若是透過場地現有的無線網路,要嘛就是被基地台擋了大部分服務 (ports),只允許網頁(Port 80, 443)等流量,否則就是需要帳號密碼,於是乎大家搶著用有限的帳號上線,手腳慢的傢伙只好眼睜睜看著鄰居上網,自己卻只能乖乖離線聽演講。至於自備基地台這件事情,也時常發生取用了家用型基地台 (因為預算的問題),結果沒多久就爆炸 (因為記憶體不足或太多 connection sessions).

FON 先前贊助提供幾個研討會像是 HIT, Wikimania, 中國網誌年會 基地台,據說也是瞬間就被打爆了,形象大傷。可能是佈建的方式 (無法判別該如何使用不同的頻道) 或 Fonera 本身設計的瑕疵 (先前有軔體穩定度與強迫使用歐洲的名稱伺服器的問題)。

這次答應 OSDC.TW 作網路志工,決定採取不同的策略,就是把借來的一打 Fonera 全部重燒成 OpenWrt 為基礎的客製化軔體,並做了以下設定

  • 做了 Management console, 包含設定多一個 IP Address,可以用有線網路接入基地台作設定。並放了 X-Wrt,以便萬一出了問題,可以臨時以網頁改設定為 WDS/Mesh Network. 當然也得放 dropbear (ssh) 作為後備措施。事實是,本次幾乎都是用 ssh 作遠端監視、管理維護。
  • 將 net.ipv4.tcp_fin_timeout, net.ipv4.tcp_keepalive_time, net.ipv4.netfilter.ip_conntrack_tcp_timeout_established 等 kernel parameters 都設到極小,以降低系統紀錄 TCP Sessions 時間。並調高 net.ipv4.netfilter.ip_conntrack_max 數倍以上,如此可以容納更多人同時上網存取。
  • 做了 QoS,將 ssh/web 優先值調高,而且調高 ACK/SYN ,降低其他所有 Port 的優先值。所以理論上 IRC/Internet surfing 不會 lag,即使流量極高, ssh / telnet 也會有比較快的連線反應。(只要 802.11 layer protocol 沒有問題,頻譜沒有被干擾)

本次 OSDC 會議其實只用到五台 Access Points (FON Fonera),參加人數大約 240-250 人,出席人數大約都是一百餘人,同時無線上網人數大約是 60-80 人,會議期間連線沒有甚麼大問題,只有以下兩個問題

  1. OpenWrt trunk 的 atheros hal binary 有相容性問題,所以 Intel® PRO/Wireless 2100 網路卡 無法連線,既使更新了驅動程式與關閉 PSP。受害的苦主有 mhsin、pofeng 等人。不過該 hal 是 property software,沒有跟 Atheros 簽署 NDA 拿不到程式碼,因此也無從修起。即使社群做的 OpenHal/ath5k 也尚未到達堪用的程度。因此還需努力想辦法解決才行。
  2. 場地電源負載過高,跳電造成基地台停止運作。 *默* 這完全在預期之外,不過連線都轉移到剩下還有電源的基地台上。線上查了一下紀錄,每台 AP 上 associated 了大約 40 餘台 STA,但系統 loading average 尚未超過 1, 且尚有記憶體。除了角落的朋友收訊變糟外,並未造成太大的影響。

以上,是本次無線網路服務檢討報告。:-)