傳統的WLAN網絡都是爲家庭內少許移動用戶的接入而組建的。所以,只須要一個無線路由器(AP)就能夠搞定了,無線路由器承擔了全部的網絡配置和轉發的做用,功能豐富,這種無線路由器成爲胖AP,例如如今家用的無線路由器就是胖AP。胖 AP將WLAN的物理層、用戶數據加密、用戶認證、QoS、網絡管理、漫遊技術以及其餘應用層的功能集於一身,功能全,結構複雜。安全
隨着無線網絡的發展,如今須要部署無線設備的地方愈來愈多,胖AP的弊端也隨之顯現出來:服務器
WLAN建網時須要對成百上千的AP進行逐一配置:網管IP地址、SSID和加密認證方式等無線業務參數、信道和發射功率等射頻參數、ACL和QOS等服務策略,很容易因誤配置而形成配置不一致。網絡
爲了管理AP,須要維護大量AP的IP地址和設備的映射關係,每新增長一批AP設備都須要進行地址關係維護。架構
接入AP的邊緣網絡須要更改VLAN、ACL等配置以適應無線用戶的接入,爲了可以支持用戶的無縫漫遊,須要在邊緣網絡上配置全部無線用戶可能使用的VLAN和ACL。less
察看網絡運行情況和用戶統計時須要逐一登陸到AP設備才能完成察看。在線更改服務策略和安全策略設定時也須要逐一登陸到AP設備才能完成設定。ide
升級AP軟件沒法自動完成,維護人員須要手動逐一對設備進行軟件升級,費時費力加密
AP設備的丟失意味着網絡配置的丟失,在發現設備丟失前,網絡存在***隱患,在發現設備丟失後又須要全網重配置。spa
在這種狀況下,瘦AP+AC的組網方式應用而生。瘦AC和AC功能職責代理
無線接入控制器(AC設備)負責:無線網絡的接入控制,轉發和統計、AP的配置監控、漫遊管理、AP的網管代理、安全控制;接口
瘦AP負責:802.11報文的加解密、802.11的PHY功能、接受無線控制器的管理、RF空口的統計等簡單功能。
基於瘦AP+AC的無線網絡架構以下所示:
圖 1 無線網絡架構
實線方框爲一個企業級大型WLAN的網絡拓撲結構。
全部的無線接入終端,如:智能手機、筆記本等稱爲STA。STA根據本身的位置選擇最佳的無線接入點(AP)進行接入,STA和AP經過802.11無線網絡進行互聯互通。
每一個AP都經過有線網絡同AC設備相連,由AC完成對AP和STA的配置,如IP分配,STA是否容許訪問外網等。每一個AP同AC設備經過CAPWAP報文進行交互聯通,CAPWAP協議是在傳統的IP報文上封裝CAPWAP隧道頭造成的,因此AP和AC交互的這個有線線路被稱爲CAPWAP隧道。AP只負責802.11無線報文和CAPWAP報文的轉換和轉發工做。從而能夠看出,AP的功能單1、獨立,因此稱之爲瘦AP。
每一個AP對應一個BSS,BSSID通常配置爲AP設備的IP地址。AP設備向外廣播的無線網絡名稱叫作SSID,如上圖中虛線所示。一個AP設備根據設備參數,可配置多個SSID。每一個SSID就至關於一個局域網,對應AC設備上的一個VLAN,是一個徹底隔離的局域網絡。經過SSID能夠將一個企業內網分割企業不一樣的部門,如財務部、銷售部、外來用戶等,徹底進行隔離保護。能夠將多個瘦AP配置爲一個SSID,如SSID1;也能夠將一個瘦AP單獨配置爲一個SSID,如SSID2。如SSID1中,有2個AP設備,就至關於有2個BSSID,那麼在此SSID內廣播的報文會被複制廣播到兩個AP設備上,即廣播到SSID下全部的BSS上。
無線接入控制器(AccessController)位於整個網絡架構的核心位置,同全部的內部服務器和AC設備相連。AC完成WLAN內部設備的配置和管理,如經過DHCP服務器完成AP和STA的IP分配,經過PORTAL服務器完成對STA的廣告推送,經過認證服務器完成AP和STA接入認證等。同時WLAN的全部數據報文的轉發工做,如內網有線網絡的互通,同外部Internet的互通等通訊,均由AC完成全部報文的轉發。AC是全部AP複雜功能提取集中,是整個大型WLAN的大腦和制高點,對整個WLAN進行控制和策略配置。
CAPWAP是Control AndProvisioning ofWireless AccessPoints ProtocolSpecification的縮寫,意爲無線接入點的控制和配置協議。CAPWAP是一個通用的隧道協議,完成AP發現AC等基本協議功能,和具體的無線接入技術無關。CAPWAP協議定義瞭如何對接入點進行管理、業務配置,包含的主要內容有:
AP對AC的自動發現及AP&AC的狀態機運行、維護
AC對AP進行管理、業務配置下發
STA數據封裝CAPWAP隧道進行轉發
CAPWAP是由IETF(互聯網工程任務組)標準化組織於2009年3月定義。CAPWAP協議在2009年3月的RFC5415[1]中發佈。CAPWAP協議是整個WLAN的南向接口協議,至關於OpenFlow協議的角色。
CAPWAP報文是在傳統TCP/IP報文基礎上封裝CAPWAP隧道頭造成,使用UDP協議做爲基礎。CAPWAP報文細分爲:
CAPWAP控制報文:完成如STA上下線配置、STA IP地址配置等工做,經過CAPWAP控制隧道轉發。
CAPWAP數據報文:內部封裝STA上網的數據報文。數據報文經過CAPWAP數據隧道進行轉發。
CAPWAP保活報文:STA和AP可能隨時掉線,經過定時發送keep alive報文,AC能夠得知STA和AP的情況,從而更新內部的轉發表項。保活報文應該算是控制報文的一種,比較特殊的是,CAPWAP保活報文經過CAPWAP數據隧道進行轉發,這在後面的實現裏會有特殊的處理流程。
CAPWAP報文構成以下圖所示:
圖 2 CAPWAP報文構成
CAPWAP報文組成以下:
CAPWAP DATA: 若是是CAPWAP數據報文,傳統的TCP/IP報文做爲CAPWAP DATA;若是是CAPWAP控制報文,WLAN的狀態變化等控制信息做爲CAPWAPDATA,即CONTORL H,這部分能夠按照標準CAPWAP協議定義,也能夠是廠商自定義。 在CAPWAP DATA基礎上封裝CAPWAP隧道頭就造成了CAPWAP報文。
CAPWAP H:CAPWAP頭,記錄CAPWAP協議相關信息
UDP:CAPWAP經過UDP協議進行通訊,根據UDP的端口號指明CAPWAP的隧道類型。端口5246是CAPWAP控制隧道,端口5247是CAPWAP數據隧道。
IP:CAPWAP目的設備的IP地址,經過IP指明目的AP設備或目的AC設備。
ETH:CAPWAP目的設備的MAC地址。
基於CAPWAP報文總體轉發模型以下所示
圖 3 CAPWAP報文轉發整體模型
轉發模型主要流程以下:
CAPWAP數據隧道轉發流程:STA經過802.11網絡將數據報文發送給AP,AP將802.11報文轉換爲傳統TCP/IP報文,封裝CAPWAP隧道頭後經過CAPWAP數據隧道(UDP 5247)轉發至AC設備,AC設備去除CAPWAP隧道頭,提取TCP/IP報文後發送給目標服務器。AC收到目標服務器響應報文,在響應報文基礎上封裝CAPWAP隧道頭後經過CAPWAP數據隧道(UDP 5247)轉發給AP,AP去掉CAPWAP隧道頭,將響應報文轉換爲802.11格式後發送給STA。STA數據協議報文,CAPWAP保活報文均經過CAPWAP數據隧道轉發。
CAPWAP控制隧道轉發流程:AP收到STA狀態變化信息,如上下線等。AP造成標準控制信息內容,在控制信息前部封裝CAPWAP隧道頭造成CAPWAP控制報文。AP經過CAPWAP控制隧道(UDP 5246)將控制報文轉發至AC設備,AC接收到控制報文後對內部的轉發表項進行相應的處理。若是AC須要返回相應報文,一樣封裝CAPWAP控制報文頭,以後經過CAPWAP控制隧道(5246)轉發至目標AP。AP去掉CAPWAP控制報文頭,在內部進行響應處理。若是AP須要返回響應報文,造成802.11控制信息後發送給STA設備。
AP自身數據報文轉發流程:AP設備造成傳統TCP/IP報文,並不進行CAPWAP隧道封裝,經過傳統以太網絡轉發至AC設備。
CAPWAP隧道的創建流程以下圖所示
圖 4 CAPWAP隧道創建流程
按照前面拓撲所示,DHCP服務器和AC設備有線相連,AP設備同AC設備有線相連。
協議的具體細節和狀態變化不是本文關心的重點,本文主要關心轉發過程。隧道創建過程當中,主要轉發流程以下:
AP造成DHCP報文後,不封裝CAPWAP隧道頭,直接將DHCP報文經過AP自身數據報文轉發流程廣播給直連的AC設備。注意此時AP設備不知道AC設備的IP地址,只是採用廣播形式進行廣播。AC設備將DHCP報文轉發給DHCP服務器。
DHCP服務器進行DHCP響應,發送DHCP響應報文給AC設備,報文中帶有AC設備的IP地址和分配給AP設備的IP地址。AC設備將DHCP響應報文直接轉發給AP設備,不進行CAPWAP封裝。AP設備收到DHCP響應報文,配置自身IP地址,而後記錄AC設備的IP地址。此時AP已經發現了AC設備的IP地址。
AP設備開始根據AC設備的IP地址,造成CAPWAP控制報文,經過CAPWAP控制隧道(UDP 5246)發送給AC設備,完成AP的配置上線過程。AC收到控制報文後進行響應,更新響應的路由流表,而後造成CAPWAP控制報文進行響應,一樣經過CAPWAP控制隧道(UDP 5246)發送給AP設備。此過程當中,由於互相知道對方IP地址,均爲單播形式。如上圖所示,從discovery request到configurationupdate response均是AP配置上線過程的CAPWAP隧道報文,遵循CAPWAP控制隧道轉發流程。