capwap協議重點分析


 

一、     CAPWAP概述

 

CAPWAP由兩個部分組成:CAPWAP協議和無線BINDING協議。

 

(1)CAPWAP協議是一個通用的隧道協議,完成AP發現AC等基本協議功能,和具體的無線接入技術無關。即AP自動發現AC,AC對AP進行安全認證,AP從AC獲取軟件映像,AP從AC獲得初始和動態配置等。此外,系統可以支持本地數據轉發和集中數據轉發。瘦AP架構讓AC具有了對整個WLAN網絡的完整視圖,為無線漫游、無線資源管理等業務功能的實現提供了基礎如圖1.1所示。

 

(2)BINDING協議是提供具體和某個無線接入技術相關的配置管理功能。可以這么解釋,前者規定了各個階段需要干什么事,后者就是具體到在各種接入方式下應該怎么完成這些事。目前工作組只提供了802.11的binding協議(RFC5416,2009年4月發布),以支持802.11網絡的配置管理功能。OpenCapwap也實現了這個協議。

 

                       

 

圖1.1 瘦AP架構圖

 

二、     CAPWAP狀態機分析(重點1)

 

AC與WTP通過CAPWAP狀態機來建立隧道,CAPWAP狀態機如示意圖2.1所示,由圖上可知,整個CAPWAP隧道建立的狀態有:Idle, Discovery, Sulking, DTLS Setup, Authorize, DTLS Connect, DTLS Teardown, Join, Configure, Image Data, Data Check, Run, Reset。其中 DTLS是CAPWAP報文傳輸安全機制,保障了網絡通信的安全。

 

CAPWAP狀態機是被AC與WTP同時使用的,WTP系統中只有一個CAPWAP狀態機,AC端有多個狀態機。對於每個定義的狀態,只有特定消息被允許發送和接受,每一個狀態變遷都有AC與WTP的相關動作,詳見RFC5415。CAPWAP狀態機的最終目標是進入到RUN狀態,進行實際的數據傳輸,而之前的過程都是AP發現AC,AP與AC建立CAPWAP隧道的過程。

 

 

 

圖2.1 CAPWAP狀態機流程圖

 

其中AC和AP建立控制鏈路的過程如圖2.2所示,包含了幾個主要的狀態:

 

1、 Discovery狀態

 

該狀態是一個WTP發現可關聯AC的過程,在前期WTP可以通過1)讀取靜態配置文件中AC IP列表2)通過DNS域名解析3)DHCP返回AC IP列表4)廣播等方式發送Discovery request,查找當前可關聯的AC,當AC收到Discovery request,會發送Discovery response作為響應。

 

 

 

圖2.2  AP發現AC的流程圖

 

2、 Join狀態

 

該狀態是AC與WTP建立控制通道的交互過程,並在此交互過程中,AC檢查WTP當前版本,如果WTP的版本無法與AC要求的相匹配,WTP和AC會進入Image Data狀態做固件升級,來更新WTP版本;如果WTP版本符合要求,則進入configuration狀態

 

3、 Image Data狀態

 

Image Data狀態是AC對WTP升級的過程,以便WTP的版本可正常關聯AC

 

4、 Configuration狀態

 

該狀態用於做WTP的現有配置和AC設定配置的匹配檢查,WTP發送configuration request到AC,里面包含現有WTP配置,當WTP當前配置與AC要求不符實,AC會通過configuration response通知WTP,WTP根據response內容對自身配置做重新設置。

 

5、 Run狀態

 

當WTP進入Run狀態,說明WTP與AC的控制和數據通道建立已成功,用戶可根據需要,對指定的WTP做配置設置,如創建WLAN、Channel設置、Txpower設置等等,並可實時監控WTP的運行狀態。

 

三、     CAPWAP報文格式(重點2

 

1、CAPWAP報文

 

CAPWAP報文分為控制和數據兩種消息,除了控制消息的Discovery Request和Discovery Response消息外其余的大部分消息均用DTLS進行加密封裝。

 

CAPWAP的控制報文格式如下:

 

+-------------------------------------------+

 

| IP  | UDP | CAPWAP | Control | Message    |

 

| Hdr | Hdr | Header | Header  | Element(s) |

 

+-------------------------------------------+

 

圖3.1 CAPWAP控制報文幀格式一(Discovery Request/Response)

 

+------------------------------------------------------------------+

 

    | IP  | UDP | CAPWAP   | DTLS | CAPWAP | Control| Message   | DTLS |

 

    | Hdr | Hdr | DTLS Hdr | Hdr  | Header | Header | Element(s)| Trlr |

 

    +------------------------------------------------------------------+

 

                           \---------- 認證---------------------/

 

                                  \------------- 加密------------------/

 

圖3.2 CAPWAP控制報文幀格式二(經DTLS 安全加密處理的)

 

CAPWAP的數據報文格式如下:(CAPWAP協議對數據報文的DTLS加密是可選的。)

 

+-------------------------------+

 

| IP  | UDP | CAPWAP | Wireless |

 

| Hdr | Hdr | Header | Payload  |

 

+-------------------------------+

 

圖3.3 CAPWAP數據明文幀格式

 

+--------------------------------------------------------+

 

       | IP  | UDP |  CAPWAP  | DTLS | CAPWAP | Wireless | DTLS |

 

       | Hdr | Hdr | DTLS Hdr | Hdr  | Header| Payload  | Trlr |

 

       +--------------------------------------------------------+

 

                              \------ 認證---------------/

 

                                     \------- 加密--------------/

 

圖3.4 CAPWAP加密數據報文幀格式

 

2CAPWAP 協議頭分析

 

CAPWAP 協議的所有報文都包含 CAPWAP 首部,在控制信道收到則是控制報文,在數據信道收到則是數據報文,其幀格式見下:

 

具體字段的含義請參加文檔說明。

 

 

 

圖3.5  CAPWAP Header格式

 

四、     總結

 

理解CAPWAP狀態機的狀態跳轉過程,弄清了具體的CAPWAP報文格式,就知道它發生什么數據,狀態機從一種狀態跳到另一種狀態,這樣就基本弄清了整個CAPWAP協議基本框架。當然CAPWAP協議還有很多細節去分析,但是在理解了CAPWAP協議基本框架后,再結合OpenCapwap源代碼和網絡抓包,分析細節是比較容易的了。希望本文檔能對你有所幫助。


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM