CAPWAP协议RFC5415培训初稿.docx
- 文档编号:24331805
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:41
- 大小:505.68KB
CAPWAP协议RFC5415培训初稿.docx
《CAPWAP协议RFC5415培训初稿.docx》由会员分享,可在线阅读,更多相关《CAPWAP协议RFC5415培训初稿.docx(41页珍藏版)》请在冰豆网上搜索。
CAPWAP协议RFC5415培训初稿
CAPWAP协议(RFC5415)培训初稿
1概述2
1.1标准2
1.2CAPWAP协议系统框架3
1.2.1SplitMAC模式3
1.2.2LocalMAC模式3
1.2.3三种Tunnel模式4
1.3CAPWAP协议概述4
1.3.1CAPWAP工作原理5
1.3.2AP发现AC的过程6
1.3.3DTLS握手(DTLS:
DatagramTransportLayerSecurityRFC4347)7
1.3.4CAPWAPSession建立过程7
1.3.4.1Capwap状态机各阶段WTP状态介绍8
1.3.4.2CAPWAPJOIN过程9
1.3.4.3CAPWAPIMAGE过程11
1.3.4.4CAPWAPConfiguration过程11
1.3.4.5RUN过程12
2CAPWAP协议分析14
2.1UDP传输14
2.2CAPWAP报文格式14
2.2.1CAPWAPHeader分析15
2.2.1.1CAPWAP数据消息分析17
2.2.1.2CAPWAP控制消息分析18
2.2.1.3控制消息格式18
2.2.2CAPWAP消息元素分析20
3CAPWAP状态机21
3.13.1CAPWAP状态机详解23
3.1.1StarttoIdle23
3.1.2IdletoDiscovery23
3.1.3DiscoverytoDiscovery23
3.1.4DiscoverytoIdle23
3.1.5DiscoverytoSulking24
3.1.6SulkingtoIdle24
3.1.7SulkingtoSulking24
3.1.8IdletoDTLSSetup25
3.1.9DiscoverytoDTLSSetup25
3.1.10DTLSSetuptoIdle25
3.1.11DTLSSetuptoSulking26
3.1.12DTLSSetuptoDTLSSetup26
3.1.13DTLSSetuptoAuthorize26
3.1.14AuthorizetoDTLSSetup27
3.1.15AuthorizetoDTLSConnect27
3.1.16DTLSConnecttoDTLSTeardown27
3.1.17DTLSConnecttoJoin28
3.1.18JointoDTLSTeardown28
3.1.19JointoImageData29
3.1.20JointoConfigure29
3.1.21ConfiguretoReset30
3.1.22AuthorizetoDTLSTeardown30
3.1.23ConfiguretoDTLSTeardown31
3.1.24ImageDatatoImageData31
3.1.25ImageDatatoReset32
3.1.26ImageDatatoDTLSTeardown32
3.1.27ConfiguretoDataCheck33
3.1.28DataChecktoDTLSTeardown33
3.1.29DataChecktoRun34
3.1.30RuntoDTLSTeardown34
3.1.31RuntoRun35
3.1.32RuntoReset37
3.1.33ResettoDTLSTeardown37
3.1.34DTLSTeardowntoIdle37
3.1.35DTLSTeardowntoSulking38
3.1.36DTLSTeardowntoDead38
4参考文档39
1概述
1.1标准
自2002年廋AP架构成为WLAN业界新的趋势后,WLAN组网开始通过无线控制器(AC)来管理多个AP。
AP和AC间采用各厂家私有的隧道协议进行通讯,这就造成了不同厂家AP与AC互通问题。
为了解决隧道协议的不兼容问题,IETF在2005年成立了CAPWAP(ControlandProvisioningofWirelessAccessPoints)工作组以标准化AP和AC间的隧道协议(RFC5415)。
该协议主要功能:
●AP自动发现AC,AC对AP进行安全认证;
●AP从AC获取软件映像,AP从AC获得初始和动态配置等;
●系统可以支持本地数据转发和集中数据转发。
该协议的目标:
●通过AC对WLAN系统集中执行强制策略和认证,对系统中的WTP进行统一配置,把用户流量集中进行桥接、转发和加密,以增强大规模WLAN的可管理性,提高WLAN的性能;
●使WTP不再处理高层协议,只执行与无线访问和控制相关且时间关联性强的功能,以有效利用WTP的硬件资源;
●提供一类封装和传输机制,使CAPWAP协议能够被应用到多种类型的无线接入点上。
作为隧道协议的一个重要设计目标,它希望能够承载多种无线接入技术,如802.11和802.16。
所以工作组协议包括了两部分:
CAPWAP协议和无线binding协议。
CAPWAP协议(RFC5415,2009年4月发布)作为通用隧道协议,完成了AP发现AC等基本协议功能,和具体的无线接入技术无关。
目前工作组只提供了802.11的binding协议(RFC5416,2009年4月发布),以支持802.11网络的配置管理功能。
1.2CAPWAP协议系统框架
1.2.1SplitMAC模式
在分离MAC模式,所有的数据和管理帧通过CAPWAP协议进行封装,在AC与AP之间交换,如图1.1.来自从一个Station收到的无线帧,会被直接封装,然后转发给AC。
+-+wirelessframes+-+
||--------------------------------||
||+-+||
||--------------||---------------||
||wirelessPHY||CAPWAP||
||MACSubLayer||||
+-++-++-+
STAWTPAC
图1.1CAPWAP的SplitMAC模式
1.2.2LocalMAC模式
本地转发模式允许数据帧可以用本地桥或者使用802.3的帧形式用隧道转发。
在这种情况下,二层无线管理帧在WTP本地已经处理,然后转发给AC。
下图显示了本地转发模式,Station传送的无线帧被封装成802.3数据帧,然后转发给AC,见图1.2:
+-+wirelessframes+-+802.3frames+-+
||----------------||--------------||
||||||
||----------------||--------------||
||wirelessPHY/||CAPWAP||
||MACsublayer||||
+-++-++-+
STAWTPAC
图1.2CAPWAP的LocalMAC模式
1.2.3三种Tunnel模式
CAPWAP协议中定义了三种Tunnel模式(WTPFrameTunnelMode):
01234567
+-+-+-+-+-+-+-+-+
|Reservd|N|E|L|U|
+-+-+-+-+-+-+-+-+
1)LocalBridging:
Station和WTP之间加解密,流量本地转发;(L)
2)802.3FrameTunnel:
Station和WTP之间加解密,流量转换成802.3帧后通过CAPWAP隧道发往AC转发;(E)
3)NativeFrameTunnel:
流量保持802.11帧通过CAPWAP隧道发往AC再转发,加解密可以在WTP上进行也可以在AC上进行。
(N)
其中1和2对应了LocalMAC方式;3对应了SplitMAC模式。
1.3CAPWAP协议概述
CAPWAP是一个定义AC和WTP控制和数据报文交互的框架性协议。
CAPWAP的控制消息以及部分的CAPWAP数据消息,使用UDP层的加密机制(DTLS:
DatagramTransportLayerSecurity)。
DTLS是基于TLS的标准IETF协议。
CAPWAP传输层携带两种载荷:
CAPWAP数据消息和控制消息。
数据消息被封装成无线帧,控制消息作为管理消息在WTP与AC间进行交互。
数据和控制消息分别传输在不同的UDP端口(AC上的CAPWAP控制报文端口为5246,数据报文端口为5247,WTP可以随意选择CAPWAP控制和数据端口)。
当数据和控制报文超出了MTU值的长度,这些报文可以分片,CAPWAP在RFC5415中定义了这种分片机制。
1.3.1CAPWAP工作原理
WTP被连接到网络时即进入发现AC的过程。
WTP使用广播、组播或单播方式发送“发现请求”,当使用单播方式时,需首先通过DHCP或DNS获得AC的IP地址列表。
收到请求的AC返回“发送应答”给WTP,WTP在应答的AC中,选择一个建立DTLS连接。
DTLS连接建立成功后,WTP发送“加入请求”,AC回复“加入应答”确认WTP加入该AC的管理范围。
若WTP的固件版本过期,则进入升级固件过程,WTP从AC下载最新版本的固件,升级成功以后重启,重新进入发现过程;若WTP固件为最新版本,则从AC下载配置参数,随后进入运行阶段。
下图为工作原理示意图。
图1.3CAPWAP工作原理示意图
在运行状态中,AC通过控制报文动态更改WTP配置,获取WTP运行状态、STA信息、射频信息等,由于所有数据都集中在AC进行处理,因此可以很容易实施全网级的QoS、动态射频管理等策略。
1.3.2AP发现AC的过程
我们如何得知AC的IP地址呢?
1.在WTP内静态配置
WTP的发现过程是可选的。
如果在WTP上静态配置了AC,那么WTP并不需要完成AC的发现过程。
2.通过CAPWAP的Discover获得(广播不能跨网段)
WTP首先发送一个DiscoveryRequestmessage给受限的广播地址,或者CAPWAP的多播地址(224.0.1.140),或者是预配置的AC的单播地址。
在IPV6网络中,由于广播并不存在,因此使用"AllACsmulticastaddress"(FF0X:
0:
0:
0:
0:
0:
0:
18C)来代替。
3.Option43通过DHCP获得(如现在已经可用的DHCPOption43)
没有配置静态ACIP地址,且通过DHCP获取自己的IP地址,则可以通过OPTION43选项获取ACIPv4地址和/或OPTION52获取ACIPv6地址
4.通过DNS解析获得
如果AP获取到了DNS服务器地址,则AP可以通过DNS方式来获取AC地址。
1.3.3DTLS握手(DTLS:
DatagramTransportLayerSecurityRFC4347)
1.WTP首先发送一个ClientHello消息来发起握手,说明它支持的密码算法列表、压缩方法及最高协议版本和其他一些需要的消息。
2.AC回复一个HelloVerifyReuqest消息,client必须重传添加了cookie的ClientHello。
server然后验证cookie,如果有效的话才开始进行握手。
3.AC回应一个ServerHello消息,包含服务器选择的连接参数,源自客户端初期所提供的ClientHello,确定了这次通信所需要的算法,然后发过去自己的证书(里面包含了身份和自己的公钥)。
4.Client在收到这个消息后会生成一个秘密消息,用SSL服务器的公钥加密后传过去,SSL服务器端用自己的私钥解密后,会话密钥协商成功,双方可以用同一份会话密钥来通信了。
1.3.4CAPWAPSession建立过程
下面简要介绍一下CAPWAP会话建立的流程,对于DTLS连接过程在本文中暂不涉及,交互流程见图1.4:
图1.4CAPWAP消息交互流程图
1.3.4.1Capwap状态机各阶段WTP状态介绍
Discovery-Join-(ImageData)--Configuration-Datacheck--Run
1.Discovery:
寻找一个最佳AC,与之交互,AP决策选择AC(当收到多个AC回应discoverresponse时)
1)AC的优先级
2)AC上当前AP个数
Join:
得到AC的ip后建立socket与AC绑定,建立controlchannel,接收AC来的控制报文。
Dataimage:
软件升级,与AC交互,判定当前AP的软件版本与AC上配置的版本号是否匹配,匹配则不升级,进入到下一个状态,否则从AC下载升级文件,完毕后重启。
Config:
该状态用于AP配置下发,AP发送Configurationraquest到AC,AC通过Configurationresponse对AP配置做重新设置。
Datacheck:
AC与AP在Join状态建立控制隧道,在Datacheck状态建立数据隧道
,建立线程接收从AC发来的数据发往station。
Run:
进入run后接收AC下发的配置命令,并可根据需要进行信息的收集和上报AC,AC可事实监控AP运行状态。
1.3.4.2CAPWAPJOIN过程
1.AP发送JoinRequest,该消息包含:
AP软硬件信息,AP名称,AP无线信息,隧道报文格式等
2.AC收到JoinRequest,消息包含:
AC名称,AC希望AP运行的版本信息,CAPWAP控制地址.
3.AP已有AC下发版本,但未运行,则AP直接重启运行该版本,进入Configuration状态
4.AP已有AC下发版本且正在运行,则AP直接进入Configuration状态
1.3.4.3CAPWAPIMAGE过程
1.AP加入AC后,需要与AC确定运行的版本,若没有该版本,需要向AC申请下载。
2.在Run状态时,AC也会下载新版本给AP.如上流程:
如AP处于RUN状态,AC希望AP更新版本,会发送配置更新信息指示AP下载请求。
1.3.4.4CAPWAPConfiguration过程
1.3.4.5RUN过程
AP进入Run状态后,AP与AC开始转发用户数据,同时也需要定期检查CAPWAP
通道是否正常工作。
Keepalive在数据通道传输,是数据通道的保活报文,而控制通道是依靠Echo进行保活。
通道保持过程:
[--DataCheckStateComplete--]
(--enterRUNstate--)
:
:
EchoRequest
------------------------------------>
EchoResponse
<------------------------------------
:
:
EventRequest
------------------------------------>
EventResponse
<------------------------------------
:
:
WTPDataTransferCase
WTPAC
DataTransferRequest(DataTransferMode=CrashData)
<------------------------------------------------------
DataTransferResponse(ResultCode=Success)
-------------------------------------------------------->
DataTransferRequest(DataTransferData=Data)
-------------------------------------------------------->
DataTransferResponse(ResultCode=Success)
<------------------------------------------------------
.....
DataTransferRequest(DataTransferData=EOF)
-------------------------------------------------------->
DataTransferResponse(ResultCode=Success)
<------------------------------------------------------
WTPDataTransferCase
WTPAC
DataTransferRequest(DataTransferMode=CrashData)
<------------------------------------------------------
DataTransferResponse(ResultCode=DataTransfer
Error(NoInformationtoTransfer))
-------------------------------------------------------->
WTPDataTransferCase
2CAPWAP协议分析
CAPWAP采用UDP的C/S模型进行AP与AC之间的交互,CAPWAP同时支持UDP和UDP-Lite(针对IPv6)传输协议。
2.1UDP传输
CAPWAP协议的控制报文使用控制通道,AC使用UDP的5246端口,AP的控制端口为任意端口;数据报文使用数据通道,使用UDP的5247端口,如果AC的控制端口被替换,AC的数据端口必须为AC控制端口的下一个端口,AP的数据端口为任意端口。
当CAPWAP运行在IPv6上,将使用UDP-Lite传输协议。
2.2CAPWAP报文格式
CAPWAP报文分为控制和数据两种消息,除了控制消息的DiscoveryRequest和DiscoveryResponse消息外其余的大部分消息均用DTLS进行加密封装。
CAPWAP的控制报文格式如下:
+-------------------------------------------+
|IP|UDP|CAPWAP|Control|Message|
|Hdr|Hdr|Header|Header|Element(s)|
+-------------------------------------------+
图2.1CAPWAP控制报文帧格式一(DiscoveryRequest/Response)
+------------------------------------------------------------------+
|IP|UDP|CAPWAP|DTLS|CAPWAP|Control|Message|DTLS|
|Hdr|Hdr|DTLSHdr|Hdr|Header|Header|Element(s)|Trlr|
+------------------------------------------------------------------+
\----------认证---------------------/
\-------------加密------------------/
图2.2CAPWAP控制报文帧格式二(经DTLS安全加密处理的)
CAPWAP的数据报文格式如下:
(CAPWAP协议对数据报文的DTLS加密是可选的。
)
+-------------------------------+
|IP|UDP|CAPWAP|Wireless|
|Hdr|Hdr|Header|Payload|
+-------------------------------+
图2.3CAPWAP数据明文帧格式
+--------------------------------------------------------+
|IP|UDP|CAPWAP|DTLS|CAPWAP|Wireless|DTLS|
|Hdr|Hdr|DTLSHdr|Hdr|Header|Payload|Trlr|
+--------------------------------------------------------+
\------认证---------------/
\-------加密--------------/
图2.4CAPWAP加密数据报文帧格式
2.2.1CAPWAPHeader分析
CAPWAP协议的所有报文都包含CAPWAP首部,在控制信道收到则是控制报文,在数据信道收到则是数据报文,其帧格式见下:
CAPWAP首部
报文各组成部分如下:
(1)CAPWAPPreamble:
8位预判码,2种CAPWAP首部的前8位为预判码,用于快速判断此报文是否经过DTLS加密。
前4位指明CAPWAP版本,目前的版本号为0;后4位值为1时是CAPWAPDTLS首部,值为0时是CAPWAP首部。
Version:
versionofcapwap
Type:
0-capwapheader
1-capwapdtlsheader
(2)HLEN:
5位首部长度,指明CAPWAP首部的长度。
(3)RID:
5位射频标识符,指明此报文的来源射频。
(4)WBID:
5位无线帧标识符,指明无线帧类型,有IEEE802.11,IEEE802.16和EPCGlobal3种。
(5)T:
1位数据帧标识符,值为1时数据帧是由WBID指明的类型,值为0时是I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAPWAP 协议 RFC5415 培训 初稿
![提示](https://static.bdocx.com/images/bang_tan.gif)