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

來源:互聯網
上載者:User

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

 

 

linux —— 這個通用的、穩定的、可擴充的、多變的而且有競爭力的平台已經走向了無線。從支援無線訪問的案頭機和伺服器到無線接入系統,它正成為幾乎所有一切的通用工具,而且已經在無線解決方案中佔據了一席之地。深入瞭解 linux正在對無線網路進行怎樣的促進。

  linux 無線存取點:構建還是購買?

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

  無線區域網路 的實際安裝並不那麼重要;關鍵取決於您購買的是什麼,以及它在 linux 系統下是否得到了支援。檢查並確保您擁有用於特定作業系統驅動程式的硬體。緊記,如果您想要得到的是高效能(也就是說,gigabit 的資料轉送速度),那麼對您來說選擇無線就是錯誤的;即便是最新的標準,提供的傳輸速度也不到 100 Mbps。漫遊提出了另一個挑戰:維持不同存取點之間的串連。為了協助實現這一目的,要設定有線等效加密(Wired Equivalent Privacy,WEP)鍵,以檢測您可以串連到的存取點。記住,實際地講,存取點的主要用途是成為一個橋樑;也就是說,它應該將資料包自一個網路路由到另一個網路。

  本文所關注的是用於管理這些存取點的各種選項和工具。基本來講,您是要選擇是否通過 無線擴充(wireless extensions) 來使用工具。(無線擴充是一個普通 API 的名稱,它允許驅動程式告知使用者關於常見無線區域網路 的空間結構和統計細節。)要獲得在 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 的無線存取點

選擇無線擴充

  無線擴充的優點在於,單一的一組工具就可以支援所有種類的無線區域網路,不管它們的類型如何(只要硬體驅動程式支援無線擴充)。另一個優勢是,這些參數不需要重新啟動驅動程式(或 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 環境中配置和監控您的無線區域網路 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 還試圖集中對濫用和阻塞的處理。WIANA 支援受 LocustWorld.com 提供的使命聲明所約束的相容的無線軟體和硬體。那些硬體和軟體的設計在任何平台上 802.11 Wi-Fi 下都完全相容。主要的思想是提供開放社區無線 WAN,它們由使用者自己來管理,以給使用者更大的靈活性。

  NoCatAuth

  您可以認為名為 NoCatAuth 的計劃也是一個類似的計劃。它最初構建是為了支援 Sonoma County,California 的 802.11b 的無線網路。這一實現方法將構成共用的 網際網路服務的認證代碼集中於可能的一個點(類似於 WIANA 的作法)。為了遵循一個開放原始碼許可來使用 NoCatAuth,您的 linux 系統中必須安裝 Perl 程式設計語言、GNU make 和 gpgv。

  linux 的無線未來

  linux 已經成為 BlueZ(運行於 linux 核心 2.4 和 2.6 之上)和 linux-IrDA 等產品和解決方案可選平台之一,也正在成為用於手機的平台。隨著手機硬體的更加強大而且成熟,它將為較小的供應商提供一個巨大的機會,讓他們可以建立便於使用的組件並為使用者提供對環境的更有力控制。多數 linux 手機在亞洲得到了應用,在那裡 linux 正在成為 3G 電話開發平台的首選。原因很簡單 —— linux 的方法同時為開發人員和消費者提供了更大的靈活性和自由度。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.