萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> 無線技術在Linux操作系統中的應用

無線技術在Linux操作系統中的應用

class="21478">

  隨著 Wi-Fi 的普及,Linux 也已加入這一行列。在本文中,Roman Vichr 闡述了 Linux 如何為很多無線工具和項目提供幫助 —— 同時得到這些工具的幫助。


  Linux —— 這個通用的、穩定的、可擴展的、多變的而且有競爭力的平台已經走向了無線。從支持無線訪問的桌面機和服務器到無線接入系統,它正成為幾乎所有一切的通用工具,而且已經在無線解決方案中占據了一席之地。深入了解 Linux 正在對無線網絡進行怎樣的促進。
  Linux 無線接入點:構建還是購買?

  基本的問題是:Linux 系統是否有能力與無線網絡中的其他接入點相結合,來為固定節點和漫游的無線客戶機提供連接?

  無線 LAN 的實際安裝並不那麼重要;關鍵取決於您購買的是什麼,以及它在 Linux 系統下是否得到了支持。檢查並確保您擁有用於特定操作系統驅動程序的硬件。緊記,如果您想要得到的是高性能(也就是說,gigabit 的數據傳輸速度),那麼對您來說選擇無線就是錯誤的;即便是最新的標准,提供的傳輸速度也不到 100 Mbps。漫游提出了另一個挑戰:維持不同接入點之間的連接。為了幫助實現這一目的,要設置有線等效加密(Wired Equivalent Privacy,WEP)鍵,以檢測您可以連接到的接入點。記住,實際地講,接入點的主要用途是成為一個橋梁;也就是說,它應該將數據包自一個網絡路由到另一個網絡。

  本文所關注的是用於管理這些接入點的各種選項和工具。基本來講,您是要選擇是否通過 無線擴展(wireless extensions) 來使用工具。(無線擴展是一個普通 API 的名稱,它允許驅動程序告知用戶關於常見無線 LAN 的空間結構和統計細節。)要獲得在 Linux 下安裝接入點軟件的詳盡步驟指南,請閱讀文章 在 Linux 上構建無線接入點。要對無線網絡結構以及 LAN 和 WLAN 之間的橋梁有一個充分的縱覽,請閱讀 Linux Wireless Access Point HOWTO

  不使用無線擴展

  有一些技術不使用無線擴展就可以幫您建立 Linux 無線網絡,包括 Linux-IrDa 和 BlueZ,後者也就是 Linux Bluetooth 棧。在 Linux 無線網絡技術 中有對此兩者的詳盡描述。另一個選擇是 ROSE(Radionet Open Source Environment;參閱 參考資料 以獲得更多信息),這是一個用來構建 802.11 無線接入點的平台。ROSE 的優勢在於它可以針對任何平台(例如 MIPS、x86、ARM、PowerPC)進行編譯。得到支持的 WLAN 卡是基於 Intersil Prism Chipset 2/2.5/3 的。它還提供了對 5 GHz 頻率的支持。下面是附加的 ROSE 特性:

  接入點開發工具包

  802.11 協議和安全、MAC 地址過濾、IPv4 路由、防火牆、RADIUS、QoS、橋、NAT、DHCP。802.11a/g/h 等另外的驅動程序也得到了支持。

  為了良好的支持和可維護性,ROSE 編譯器用 Python 編寫(與可用的 C 編譯器 gzip 一道,附帶標准 Python 庫的 Python 語言版本 2.x —— 2.1 和 2.2 已經經過了測試)。

  基本上,使用 ROSE(及 Linux 2.4 內核)和基於 802.11 Intersil Prism 的 WLAN 卡,您就可以構建一個基於 Linux 的無線接入點。

  選擇無線擴展
  無線擴展的優點在於,單一的一組工具就可以支持所有種類的無線 LAN,不管它們的類型如何(只要硬件驅動程序支持無線擴展)。另一個優勢是,這些參數不需要重新啟動驅動程序(或 Linux)就可以在使用過程中進行修改。

  操作無線擴展的一組 Linux 工具通常被稱為 無線工具。它們使用文本界面,而且非常簡單。在 Linux 實現中使用的主要有:

  iwconfig:操作基本的無線參數。

  iwlist:初始化掃描頻率、列表頻率、比特率和密鑰。

  iwspy:獲得每個節點的連接質量。

  iwpriv:允許針對特定於 Wi-Fi 驅動程序的無線擴展進行操作。

  ifrename:允許使用基於固定標准的名稱接口。

  IfPlugd/waproamd

  waproamd 是用於支持 Linux 無線擴展(v15 或更新版本)的 IEEE 802.11 NICs 的漫游後台程序(roaming daemon),已經在 Debian Linux 上做過了測試。它的用途是根據所找到的網絡去配置 WEP 鍵。 waproamd 工具反復地對無線網絡進行掃描。當 NIC 與一個可用的網絡相關聯後, waproamd 就不再進行掃描,而是將 NIC 卡連接到所發現的接入點。可以通過 iwlist scan 命令來測試掃描。如 Host AP 驅動程序所定義的,waproamd 支持 host_roaming。在使用 waproamd 時不要忘記安裝防火牆;工具本身不能防止入侵。

  KWiFiManager

  KWiFiManager 是一個用於在 Linux 上 KDE 環境中配置和監控您的無線 LAN PC 卡的工具;工具本身是為 3.x 版本的 KDE 所編寫的。它使用了 Linux 內核無線擴展,所以大部分無線卡都得到了 pcmcia-cs 程序包的支持。不過,如果您的卡使用了來自 wlan-ng 項目的驅動程序,可能會有問題,因為這些驅動程序與無線擴展並不是百分之百兼容。無論如何,您可以試一下,或者您可以為同一塊卡使用 Host AP 驅動程序,這個驅動程序是與無線擴展相兼容的。

  KWiFiManager 以 RPM 程序包的形式發行;不過,有一些安裝的先決條件。這些先決條件是 Qt 工具包(版本 3.0.3 以上)、KDE 3.x 和 glibc2.2。這些程序包都具備後,標准的 ./configure make make install 會編譯並安裝這個工具。這個應用程序提供了一些顯示界面:Signal Quality、Connection Speed、Current Configuration、Access Point monitor、Statistics Viewer 和 Configuration Editor(最後一個顯示界面只有 root 用戶才可以訪問)。

  Glink 是一個針對 802.11b 卡(這種卡使用帶無線擴展的 Linux 內核)的鏈路監控器和配置器,大致上相當於 GNOME 中的 KWiFiManager 工具。

  APHunter

  APHunter 用 Perl 編寫,可以在一個文本文件中給出一次 iwlist 掃描的輸出。可以使用 perldoc -t ./aphunter 命令調出這個工具的文檔。這個工具提供了一些開關,來控制其輸出和指示器。

  GKrellMWireless

  這個工具需要帶無線擴展的 Linux 內核。此工具需要一個 C 庫來編譯,當然,是使用 (g)make 來安裝。(在 BSD 中,為了進行安裝您將需要添加額外的頭文件:if_wavelan_ieee.h 和 if_aironet_ieee.h。)這個工具會顯示無線鏈路質量、鏈路級別以及噪聲。它的最新版本可以在 Linux 中以 dbm 為單位顯示級別和噪聲。

  協同工作能力問題
  當在 Linux 平台上部署無線時,使用 Linux 驅動程序的不同的卡之間的協同工作能力是需要考慮的一個重要事項。您還應該確保不同硬件部分本身的協同工作能力;它們全部都應該理解相同頻譜內彼此的信號。不要忘記,看起來類似的產品,可能並不具備協同工作能力。例如,802.11 和 802.11-FH 產品不能與 802.11-DS 產品協同工作,反之亦然。

  芯片組

  考慮到一些產品可能得到支持的同時而同一牌子的其他產品卻有可能得不到支持,不同的無線產品中多種芯片組的使用可能會是一個挑戰。有時,即使是相同型號編號的卡所用的也可能是不同的芯片組,這就導致難以判斷一個卡是否可以得到 Linux 的支持。不過,大部分可用的 802.11b 卡所使用的都是 Intersil PrismII 芯片組,這個芯片組得到了 Linux 很好的支持。

  802.11b 規范只是 802.11-DS 的一個擴展,它提高了速度,但是在任何情況下,兩者產品都可以在至少為 2 Mbs (802.11-DS 模式)的速度下進行協同工作。802.11g 標准是 802.11b 非直接擴展;它的目的是在頻率不變的條件下增加帶寬。當您試圖使 802.11a 產品協同工作時(頻率為 5 GHz),要明白它們只能與基於完全相同的芯片組的產品協同工作,而不能與 802.11b 產品直接協同工作,除非您有一個既可用於 802.11b 又可用於 802.11a 的設備。要完全回顧 Wi-Fi 頻率和標准的協同工作能力,請閱讀 The 802.11g standard -- IEEE 和 The ABCs of 802.11。

  當考慮您的 Linux 無線設備驅動程序時,不要忘記,那個驅動程序不會總是實現相應的 Window 驅動程序的全部特性。這會限制協同工作的能力。在 Linux 上,安全特性尤其容易落後。下一節介紹了關於增強和管理的一些詳細資料。

  組網的靈活性與無線計劃

  為了使無線網絡能夠具備靈活性並確保安全,已經發起了一些計劃,例如 Wireless FreeNetwork Allocations 和 NodeDB.com(參閱 參考資料 以獲得更多信息)。基本上這些都是人們可以在這裡列出他們關於接入點或固定客戶機連接的位置和信息的站點,這樣其他人就可以基於一個地理目錄服務方便地對自己進行定位。

  Linux 的靈魂 —— 它的開放、用戶即所有者和管理者的精神 —— 在一些無線計劃中產生了影響,不管 Linux 是否確實是那個解決方案的一部分。在一些計劃中,如 NodeDB.com,Linux 只是平台之一。在 WIANA 和 NoCatAuth 計劃中,它是計劃的骨干,因為它具備在操作系統層級上(也就是在接入點層級上)讓用戶定制權限的能力。

  WIANA

  Wireless Assigned Numbers Authority 也被稱為 WIANA 計劃(參閱 參考資料 以獲得更多信息),它嘗試創建一個用於無線地址管理的結構。傳統的 IP 地址注冊表依賴於一個靜態的分等級結構,這並不能滿足無線應用。 WIANA 必須處理無線網絡的特殊特性,在無線網絡中,節點僅僅因為位置的變化就可以從一個層級移動到另一個層級。在 WIANA 的指導方針下,管理網絡的是用戶而不是提供者。大規模無線網絡所基於物理媒介不同於需要實際的每地址認證的傳統 Internet。傳統 Internet 中高昂的連接費用使得無線用戶不再使用同樣的方法獲得 IP 地址。在 WIANA 中,這些地址是免費提供的。WIANA 還試圖集中對濫用和阻塞的處理。WIAN

copyright © 萬盛學電腦網 all rights reserved