capwap学习笔记基础知识_第1页
capwap学习笔记基础知识_第2页
capwap学习笔记基础知识_第3页
capwap学习笔记基础知识_第4页
capwap学习笔记基础知识_第5页
已阅读5页,还剩26页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

capwap学习笔记——capwap的前世今生公司要做AP和AC,从今天开始学习capwap。

1capwap的前世今生1.1

胖AP、瘦AP、AC传统的WLAN网络都是为企业或家庭内少量移动用户的接入而组建的。因此,只需要一个无线路由器就可以搞定了,就好像现在家用的无线路由器就是胖AP。胖

AP将WLAN的物理层、用户数据加密、用户认证、QoS、网络管理、漫游技术以及其他应用层的功能集于一身,功能全,结构复杂。随着无线网络的发展,现在需要部署无线设备的地方越来越多,胖AP的弊端也随之显现出来:¢

WLAN建网时需要对成百上千的AP进行逐一配置:网管IP地址、SSID和加密认证方式等无线业务参数、信道和发射功率等射频参数、ACL和QOS等服务策略,很容易因误配置而造成配置不一致。¢

为了管理AP,需要维护大量AP的IP地址和设备的映射关系,每新增加一批AP设备都需要进行地址关系维护。¢

接入AP的边缘网络需要更改VLAN、ACL等配置以适应无线用户的接入,为了能够支持用户的无缝漫游,需要在边缘网络上配置所有无线用户可能使用的VLAN和ACL。¢

察看网络运行状况和用户统计时需要逐一登录到AP设备才能完成察看。在线更改服务策略和安全策略设定时也需要逐一登录到AP设备才能完成设定。¢

升级AP软件无法自动完成,维护人员需要手动逐一对设备进行软件升级,费时费力¢

AP设备的丢失意味着网络配置的丢失,在发现设备丢失前,网络存在入侵隐患,在发现设备丢失后又需要全网重配置。

在这种情况下,瘦AP+AC的组网方式应用而生。其中无线控制器负责无线网络的接入控制,转发和统计、AP的配置监控、漫游管理、AP的网管代理、安全控制;瘦AP负责802.11报文的加解密、802.11的PHY功能、接受无线控制器的管理、RF空口的统计等简单功能。其组网图如下所示:

通过无线控制器(AC)来管理多个AP,AP和AC间采用隧道协议进行通讯,无线接入报文的处理在AP和AC间分担实现。

瘦AP+AC的组网方式的优点如下:¢

瘦AP的配置保存在无线控制器中,瘦AP启动时会自动从无线控制器下载合适的设备配置信息¢

瘦AP需要能够自动获取IP地址,同时瘦AP需要能够自动发现可接入的无线控制器,并对无线控制器和瘦AP之间的网络拓扑不敏感¢

无线控制器支持瘦AP的配置代理和查询代理,能够将用户对瘦AP的配置顺利传达到指定的瘦AP设备,同时可以实时察看瘦AP的状态和统计信息¢

无线控制器保存瘦AP的最新软件,并负责瘦AP软件的自动更新

为了更加清晰的了解胖AP和瘦AP+AC的特点,简单罗列一下。¢

胖AP的主要特点:胖AP是与瘦AP相对来讲的,胖AP将WLAN的物理层、用户数据加密、用户认证、QoS、网络管理、漫游技术以及其他应用层的功能集于一身。胖AP无线网络解决方案可由由胖AP直接在有线网的基础上构成。胖AP设备结构复杂,且难于集中管理。¢

瘦AP的主要特点:瘦AP是相对胖AP来讲的,它是一个只有加密、射频功能的AP,功能单一,不能独立工作。整个瘦AP无线网络解决方案由无线控制器和瘦AP在有线网的基础上构成。瘦AP上“零配置”,所有配置都集中到无线交换机上。这也促成了瘦AP解决方案更加便于集中管理,并由此具有三层漫游、基于用户下发权限等胖AP不具备的功能。

简而言之,如果是小规模使用,胖AP是最好的,如果是要大规模部署,瘦AP+AC是明智之选。

1.2CAPWAP的起源

既然瘦AP不能单独工作,必须和AC配合使用,那么两者之间总要有一种协议可以让它们能够进行互联和沟通吧。因此,思科老大哥整了一个LWAPP协议,而这个协议正是CAPWAP协议的前身!

但是请大家注意,LWAPP这个东西是人家思科的私有的,其他厂商是不能直接使用,否则就要吃官司……,于是,其他厂商就按照自己的想法也整了一个协议,这样一来就乱了,你整个协议我也整个协议,如果瘦AP和AC都是一样厂商自然没问题,如果要是不易厂商的,就没法通信了……

于是乎,IETF为了解决隧道协议不兼容问题造成的A厂家的AP和B厂家的AC无法进行互通,在2005年成立了CAPWAP工作组以标准化AP和AC间的隧道协议。

capwap学习笔记——初识capwap(一)2

初识CAPWAP2.1CAPWAP简介

说了半天CAPWAP,连全称都还没说,汗……

CAPWAP——ControlAndProvisioningofWirelessAccessPointsProtocolSpecification。其由两个部分组成:CAPWAP协议和无线BINDING协议。

前者是一个通用的隧道协议,完成AP发现AC等基本协议功能,和具体的无线接入技术无关。后者是提供具体和某个无线接入技术相关的配置管理功能。这么说吧,前者规定了各个阶段需要干什么事,后者就是具体到在各种接入方式下应该怎么完成这些事。

CAPWAP协议在2009年4月的RFC5415中发布,无线BINGDING协议目前只出台了接入方式为802.11的RFC,也是2009年4月发布的,RFC编号为5416。

PS:漂移一下,顺带提一下802.11、802.15、802.16、802.20等无线接入方式的区别。

*******************************************************************************目前,IEEE802旗下的无线网络协议一共有802.11、802.15、802.16和802.20等四大种类,这四大类协议中又包含各种不同性能的子协议,显得很混乱的样子……IEEE802.11体系定义的是无线局域网标准(WLAN,WirelessLocalAreaNetwork),针对家庭和企业中的局域网而设计,应用范围一般局限在一个建筑物或一个小建筑物群(如学校、小区等)。IEEE802.15定义的其实是无线个人网络(WPAN,WirelessPersonalAreaNetwork),主要用于个人电子设备与PC的自动互联,这类设备包括手机、MP3播放器、便携媒体播放器、数码相机、掌上电脑等等。IEEE802.16是一种广带无线接入技术(BroadbandWirelessAccess,BWA),主要用于远距离、高速度的通讯环境,定义的是城域网络(MAN,MetropolitanAreaNetwork),性能可媲美Cable电缆、DSL、T1专线等传统的有线技术。IEEE802.16包含802.16和802.16a两项子协议,前者的作用距离为2公里,传输速率在30Mbps至130Mbps之间,而802.16a的传输距离可达到50公里,速率也能达到75Mbps—看得出,在上述各种无线通讯技术中,还没有哪项技术可以在有效范围和性能标准上都盖过IEEE802.16a。IEEE802.20与802.16在特性上有些类似,都具有传输距离远、速度快的特点。不过802.20是一项移动广带接入技术(MobileBroadbandWirelessAccess,MBWR),他更侧重于设备的可移动性,例如在高速行驶的火车、汽车上都能实现数据通讯(802.16无法做到这一点)。**********************************************************************************************************************

CAPWAP协议的主要功能:AP自动发现AC,AC对AP进行安全认证,AP从AC获取软件映像,AP从AC获得初始和动态配置等。此外,系统可以支持本地数据转发和集中数据转发。瘦AP架构让AC具有了对整个WLAN网络的完整视图,为无线漫游、无线资源管理等业务功能的实现提供了基础。

2.2

一些名词¢

无线控制器(AC):网络实体,在网络架构的数据层,控制层,管理层或者联合起来提供WTP到网络的访问服务。¢

CAPWAP控制信道:一个双向信道,由AC的IP地址,WTP的IP地址,AC控制端口,WTP控制端口,传输层协议(UDP或者UDP-Lite)定义,在这之上可以收发CAPWAP的控制报文。¢

CAPWAP数据信道:一个双向信道,由AC的IP地址,WTP的IP地址,AC数据端口,WTP数据端口,传输层协议(UDP或者UDP-Lite)定义,在这之上可以收发CAPWAP的数据报文。¢

STATION:一个包含无线接口的设备¢

无线终端WTP:物理或者网络实体,包含一个射频天线和无线物理层可以传输和接收

STA在无线存取网络的数据。

2.3CAPWAP的模式

CAPWAP协议支持两种模式的操作:SplitMAC和LocalMAC。

SplitMAC:在splitMAC模式下,所有二层的无线数据和管理帧都会被CAPWAP协议封装,然后在AC和WTP之间交换。

如下图中所示,从一个Station收到的无线帧,会被直接封装,然后转发给AC。

LocalMAC:本地转发模式允许数据帧可以用本地桥或者使用802.3的帧形式用隧道转发。在这种情况下,二层无线管理帧在WTP本地已经处理,然后转发给AC。下图显示了本地转发模式,Station传送的无线帧被封装成802.3数据帧,然后转发给AC。

2.4CAPWAP的负载类型CAPWAP协议传输层运输两种类型的负载:¢

数据消息

封装转发无线帧¢

控制消息

管理WTP和AC之间交换的管理消息CAPWAP数据和控制报文基于不同的UDP端口发送,且可以被分段,因此数据和控制报文可以超过MTU长度。2.5CAPWAP会话创建过程CAPWAP协议从发现阶段开始。WTPs发送一个发现请求消息,任何接收到这个请求的AC将会回应一个发现响应报文。接收到发现响应报文,WTP选择一个AC来建立一个

基于DTLS的安全会话。为了建立DTLS安全连接,WTP将需要一个预先提供的数据,将在后面说明。CAPWAP协议报文将会被分段成网络支持的最大长度。一旦WTP和AC完成了DTLS会话建立,两者之间会交换配置,来在版本信息上达成一致。在这个交换过程之间,WTP可能会接收到规定设置,然后会开启这些设置。当WTP和AC之间完成版本和设置的交换,并且WTP已经开启,CAPWAP协议将被使用来封装AC和WTP之间发送的无线数据帧。如果用户数据或者协议控制数据长度超过

WTP和AC之间的MTU会导致CAPWAP协议将L2层帧分片。被分片的CAPWAP报文将会被重新组成原来的封装报文。

capwap学习笔记——初识capwap(二)2.5.1AC发现机制WTP使用AC发现机制来得知哪些AC是可用的,决定最佳的AC来建立CAPWAP连接。WTP的发现过程是可选的。如果在WTP上静态配置了AC,那么WTP并不需要完成AC的发现过程。WTP首先发送一个

DiscoveryRequestmessage给受限的广播地址,或者CAPWAP的多播地址(40),或者是预配置的AC的单播地址。在IPV6网络中,由于广播并不存在,因此使用"AllACsmulticastaddress"(FF0X:0:0:0:0:0:0:18C)来代替。当接收到DiscoveryRequestmessage消息,AC发送一个单播DiscoveryResponsemessage给WTP。WTP可以通过DiscoveryResponsemessage中所带的AC优先级,支持的CAPWAPbinding来选择与哪个AC建立会话。除了上面的发现机制,WTP还可以使用DNS或者DHCP来发现AC。

2.5.2DTLS握手

WTP首先发送一个ClientHello消息来发起握手,说明它支持的密码算法列表、压缩方法及最高协议版本和其他一些需要的消息。AC回复一个HelloVerifyReuqest

消息,client必须重传添加了cookie的ClientHello。server然后验证cookie,如果有效的话才开始进行握手。AC回应一个ServerHello消息,包含服务器选择的连接参数,源自客户端初期所提供的ClientHello,确定了这次通信所需要的算法,然后发过去自己的证书(里面包含了身份和自己的公钥)。Client在收到这个消息后会生成一个秘密消息,用SSL服务器的公钥加密后传过去,SSL服务器端用自己的私钥解密后,会话密钥协商成功,双方可以用同一份会话密钥来通信了。

2.5.3DTLS认证和授权

DTLS支持终端认证方式为:证书(certificate)和预共享密钥(pre-sharedkey)。

CAPWAP认证中使用证书支持的算法是¢

TLS_RSA_WITH_AES_128_CBC_SHA[RFC5246](MUSTSUPPORT)¢

TLS_DHE_RSA_WITH_AES_128_CBC_SHA[RFC5246](SHOULDSUPPORT)¢

TLS_RSA_WITH_AES_256_CBC_SHA[RFC5246](MAYSUPPORT)¢

TLS_DHE_RSA_WITH_AES_256_CBC_SHA[RFC5246]](MAYSUPPORT)

在RFC4279中定义了多种预共享密钥的认证方式,CAPWAP中主要关心下面两种:¢

Pre-SharedKey(PSK)keyexchangealgorithm¢

DHE_PSKkeyexchangealgorithm同样,CAPWAP定义了预共享密钥支持的算法¢

TLS_PSK_WITH_AES_128_CBC_SHA[RFC5246]

(MUSTSUPPORT)¢

TLS_DHE_PSK_WITH_AES_128_CBC_SHA[RFC5246]

(MUSTSUPPORT)¢

TLS_PSK_WITH_AES_256_CBC_SHA[RFC5246]](MAYSUPPORT)¢

TLS_DHE_PSK_WITH_AES_256_CBC_SHA[RFC5246]](MAYSUPPORT)

2.5.4CAPWAP状态机CAPWAP状态机,是被AC和WTP同时使用的。对于每个定义的状态,只有特定的消息才被允许收发。因为WTP只会和单个AC通讯,因此只会有一个CAPWAP的状态机。而AC与WTP有很大差别,因为AC同时和许多WTP通讯。DTLS和CAPWAP的状态机由命令和通告的API接口联系起来。DTLS状态机的变迁由CAPWAP状态机的命令触发。CAPWAP状态机的变迁由DTLS状态机的通告触发

CAPWAP状态机:CAPWAPtoDTLSCommands¢

DTLSStart开启DTLS会话的建立¢

DTLSListen监听DTLS会话请求¢

DTLSAccept允许DTLS会话建立¢

DTLSAbortSession导致正在进行中的DTLS会话的中断¢

DTLSShutdown关闭DTLS会话¢

DTLSMtuUpdate改变DTLS模块的MTU设定大小。默认大小为1468字节

DTLStoCAPWAPNotifications¢

DTLSPeerAuthorizeDTLS会话建立过程中,通知CAPWAP模块来认证会话。¢

DTLSEstablished通知CAPWAP模块DTLS会话已经成功建立¢

DTLSEstablishFailDTLS会话建立失败¢

DTLSAuthenticateFailDTLS会话建立过程由于认证失败而终止。¢

DTLSAborted通知CAPWAP模块它要求的DTLS会话建立过程已经终¢

DTLSReassemblyFailure通知CAPWAP模块DTLS分片组装失败¢

DTLSDecapFailure通知CAPWAP模块发生了一个解码错误¢

DTLSPeerDisconnect通知CAPWAP模块DTLS会话已经关闭

2.5.5AC线程AC使用了三个“线程”(thread)的概念。¢

监听线程:通过DTLSlisten命令,AC监听线程处理DTLS会话建立请求。创建的时候,监听线程开启DTLSSetup状态。当状态机进入Authorize状态,且DTLS会话生效之后,监听线程创建一个指定的WTP指定会话服务线程和状态空间。¢

发现线程:AC的发现线程负责接收和响应发现请求消息。¢

服务线程:AC的服务进程处理每个WTP的状态和每个WTP连接的线程。这个线程在认证后被监听线程创建。一旦创建,服务线程会继承监听线程的一份状态机空间的拷贝。当与WTP之间的通讯完成后,服务线程关闭,所有的资源都会被释放。注意,在这里使用了线程这个术语,但是并不代表实现者就必须使用线程。这只是一个实现AC状态机的可用的方法。

capwap学习笔记——初识capwap(三)2.5.6CAPWAP状态机详解StarttoIdle这个状态变迁发生在设备初始化完成。¢

WTP:

开启CAPWAP状态机。

¢

AC:

开启CAPWAP状态机。

IdletoDiscovery这个状态变迁发生是为了支持CAPWAP发现进程。

¢

WTP:WTP进入发现状态是为了优先去传输第一个DiscoveryRequestmessage。在进入这个状态之前,WTP设置发现DiscoveryIntervaltimer,将DiscoveryCountcounter为0.同时清理以前的发现过程中可能会从AC收到的所有信息。

¢

AC:由发现线程执行,且发生在收到一个发现请求报文的时候。此时,AC需要给这个报文响应一个DiscoveryResponsemessage

DiscoverytoDiscovery在这个发现状态,WTP决定连接哪个AC。

¢

WTP:这个状态变迁发生在发现DiscoveryIntervaltimer触发的时候。对于这个事件的每次变迁,DiscoveryCountcounter会递增。一旦WTP发送了DiscoveryRequestmessage,WTP重启DiscoveryIntervaltimer。

¢

AC:

对于AC来说,这个状态变迁是无效的。

DiscoverytoIdle当发现过程完毕的时候,AC的发现线程将会触发这个变迁。¢

WTP:

对于WTP来说,这个状态变迁是无效的。¢

AC:

这个状态变迁由AC发现线程执行,当发现线程传输了一个给DiscoveryRequest回送了一个DiscoveryResponse的时候,就会触发这个过程。

DiscoverytoSulking当WTP发现AC失败的时候会触发这个状态变迁。¢

WTP:发生在DiscoveryIntervaltimer超时的时候。

且此时DiscoveryCount变量等于MaxDiscoveries

。在进入这个状态之前,WTP必须开启SilentIntervaltimer

。当在Sulking状态的时候,所有收到的CAPWAP协议报文都会被忽略。

¢

AC:对于AC来说,这个状态变迁是无效的。

SulkingtoIdle这个状态变迁发生在WTP需要重新启动发现过程的时候。¢

WTP:当SilentIntervaltimer触发,WTP进入到这个状态。FailedDTLSSessionCount,DiscoveryCount和FailedDTLSAuthFailCount计数器被清零。

¢

AC:

对于AC来说,这是一个无效的状态变迁。

SulkingtoSulkingsulking状态提供安静时段,最小化DOS攻击的危险。¢

WTP:

在sulking状态收到的所有来自AC得报文都会被忽略。

¢

AC:

对于AC来说,这是一个无效的状态变迁

IdletoDTLSSetup这个状态变迁发生在跟对端建立安全的DTLS会话的时候。¢

WTP:

WTP通过调用DTLSStart命令来初始化这个状态变迁,开始与选定AC进行DTLS会话,且开启WaitDTLStimer。此时,忽略了发现过程,假设WTP有本地配置的AC。¢

AC:从start状态进入Idle状态,监听线程自动变迁至DTLSSetup状态,调用DTLSListen命令,并且开启WaitDTLStimer。

DiscoverytoDTLSSetup¢

WTP:

WTP调用DTLSStart命令来初始化这个变迁,开始与指定AC建立DTLS会话。

¢

AC:对于AC来说,这是一个无效的状态变迁。

0DTLSSetuptoIdle当DTLS连接失败的时候发生这个状态变迁。¢

WTP:

此时WTP接收到DTLSEstablishFail通知,并且FailedDTLSSessionCount或者FailedDTLSAuthFailCountcounter

没有达到MaxFailedDTLSSessionRetry值。这个错误通知终止了DTLS会话的建立。当接收到这个通知,FailedDTLSSessionCount计时器会递增。这个状态变迁也会发生在WaitDTLStimer超时的情况下。

¢

AC:对于AC来说,这是一个无效的状态变迁。

1DTLSSetuptoSulking当重复尝试建立DTLS连接失败的时候,会发生此状态变迁。¢

WTP:

当FailedDTLSSessionCount或者FailedDTLSAuthFailCount到达最大值MaxFailedDTLSSessionRetry的时候,WTP进入此状态变迁。进入这个状态,WTP必须开启SilentInterval定时器,且所有接收到的CAPWAP和DTLS协议报文将会被忽略。

¢

AC:对于AC来说,这是一个无效的状态变迁。

2

DTLSSetuptoDTLSSetup当DTLS会话建立失败的时候会发生这个状态变迁。

¢

WTP:对于WTP来说,这是一个无效的状态变迁¢

AC:当接收到一个来自DTLS的DTLSEstablishFail通知,AC监听线程初始化这个状态变迁。当收到这个通告,FailedDTLSSessionCount会递增,监听线程然后调用DTLSListen命令。

3DTLSSetuptoAuthorize这个状态变迁发生在当一个正在建立DTLS会话需要认证才能继续进行的时候。

¢

WTP:

当WTP接收到DTLSPeerAuthorize通告的时候,开始这个状态变迁。在进入这个状态之前,WTP对AC的证书执行一个认证检查。

¢

AC:

当DTLS模块初始化DTLSPeerAuthorize通告的时候,AC监听线程处理这个状态变迁。监听线程fork一个服务线程和一个状态机内容的拷贝,然后,服务线程会对WTP证书执行认证。

4AuthorizetoDTLSSetup当监听线程对新进入的会话开始监听的时候,发生这个状态变迁。

¢

WTP:对于WTP来说,这是个无效的状态变迁¢

AC:当AC监听线程创建WTP内容空间和服务线程后,发生这个状态变迁。监听线程然后调用DTLSListen命令

5AuthorizetoDTLSConnect当通知DTLS栈会话将要建立的时候发生这个状态变迁。

¢

WTP:当AC证书被WTP认证成功的时候,会发生这个状态变迁。调用DTLSAccept命令来完成。

¢

AC:当WTP证书成功通过AC认证的时候发生这个状态变迁。调用DTLSAccept来完成。

6DTLSConnecttoDTLSTeardown当DTLS会话建立失败的时候发生。¢

WTP:当WTP接收到一个DTLSAborted或者DTLSAuthenticateFail通告,告知这个DTLS会话建立不成功的时候,发生这个状态变迁。当因为DTLSAuthenticateFail通告发生的状态变迁,FailedDTLSAuthFailCount会增加,否则,FailedDTLSSessionCount计数器增加。这个状态变迁也在WaitDTLS

定时器超时的时候发生,此时WTP开启DTLSSessionDelete定时器。¢

AC:当WTP接收到一个DTLSAborted或者DTLSAuthenticateFail通告,告知这个DTLS会话建立不成功,此时FailedDTLSAuthFailCount和FailedDTLSSessionCount

不等于MaxFailedDTLSSessionRetry的时候,发生这个状态变迁。

这个状态变迁也在WaitDTLS定时器超时的时候发生。

7DTLSConnecttoJoin当会话成功建立的时候发生。¢

WTP:

当WTP接收到一个DTLSEstablished通告,表明这个DTLS会话成功建立的时候,发生这个状态变迁。当接收到这个通告FailedDTLSSessionCount计时器被设置为0.WTP进入join状态,传输JoinRequest给AC。WTP停止WaitDTLS定时器。

¢

AC:当AC接收到DTLSEstablished通告,表明这个DTLS会话成功建立的时候,发生这个状态变迁。当接收到这个通告,FailedDTLSSessionCount计时器被设置为0.AC停止WaitDTLS定时器,开启WaitJoin定时器。

8JointoDTLSTeardown当Join过程失败的时候发生。¢

WTP:当WTP接收到一个带有错误代码消息单元的Join响应消息,或者在Join响应中由AC提供的Image与WTP现在运行的版本不一样,且WTP的non-volatilememory中有这个请求的版本号.这个导致WTP初始化DTLSShutdown命令。当WTP接收到下面任何一个通告的时候,也会发生这个过程:DTLSAborted,

DTLSReassemblyFailure,orDTLSPeerDisconnect.WTP开启DTLSSessionDelete

定时器。¢

AC:发生在WaitJoin超时或者AC传送了一个带有错误码的JoinResponse的时候。AC初始化DTLSShutdown命令。当AC收到下面任何一个DTLS通告的时候,也会发生这个过程:DTLSAborted,DTLSReassemblyFailure,

DTLSPeerDisconnect。

此时,AC开启DTLSSessionDelete定时器。

9JointoImageDataWTP和AC下载可执行的firmware时使用这个状态变迁。¢

WTP:当WTP收到了一个成功的JoinResponsemessage,告知它当前运行的版本与要求的不一样的时候,发生这个状态变迁。且此时,WTP的non-volatilestorage中也没有要求的image版本。WTP初始化EchoInterval计时器。¢

AC:当AC发送一个JoinResponse给WTP之后,从WTP接受到一个ImageDataRequest报文,发生这个状态变迁。AC停止WaitJoin定时器,发送一个ImageDataResponsemessage给WTP。

0JointoConfigureWTP和AC使用这个状态变迁来交换配置信息。¢

WTP:当WTP收到了一个successfulJoinResponsemessage,且此时当前运行的版本与要求的一致。WTP发送一个ConfigurationStatusRequestmessage给AC,消息中包含了当前配置信息。¢

AC:当从WTP接收到ConfigurationStatusRequestmessage,且消息中包含指定消息元素需要覆盖WTP的配置。AC停止WaitJoin定时器,发送ConfigurationStatusResponsemessage,并且开启ChangeStatePendingTimer定时器。

1ConfiguretoReset这个状态变迁被用来重启连接。这个可能被配置阶段发生的错误导致,或者是WTP决定它有需要来重启让新的配置生效。CAPWAPReset命令用来告诉对端它将会初始化一个DTLSteardown。¢

WTP:WTP接收到ConfigurationStatusResponsemessage告诉它有错误发生或者觉得有需要重新让新配置生效的时候,WTP进入reset

状态。¢

AC:AC接收到一个来自WTP的ChangeStateEventmessage,当这个消息包含了因为AC的策略而不允许WTP提供服务的错误的时候,AC变迁到reset状态。这个状态变迁也会在ChangeStatePendingTimer定时器超时的时候发生。

2AuthorizetoDTLSTeardown这个状态变迁为了通知DTLS会话将要终止。

¢

WTP:当WTP认证失败的时候,发生这个状态变迁。WTP然后调用DTLSAbortSession命令终止这个DTLS会话。这个状态变迁也会发生在WaitDTLS定时器超时的情况下。WTP开启DTLSSessionDelete定时器。

¢

AC:这个状态变迁发生在AC认证失败的时候。AC调用DTLSAbortSession命令终止DTLS会话。这个状态变迁也会发生在WaitDTLS定时器超时的时候。AC开启DTLSSessionDelete定时器。

3ConfiguretoDTLSTeardown这个变迁发生在因为DTLS错误导致的配置过程终止的时候。¢

WTP:当接收到下列任一DTLS通告:DTLSAborted,DTLSReassemblyFailure,

或者DTLSPeerDisconnect,WTP进入这个状态。如果它接收到频繁的DTLSDecapFailure通告,WTP也有可能会终止DTLS会话。此时,WTP开启DTLSSessionDelete定时器。¢

AC:当接收到下列任一DTLS通告:DTLSAborted,DTLSReassemblyFailure,或者DTLSPeerDisconnect,AC进入这个状态。如果它接收到频繁的DTLSDecapFailure通告,WTP也有可能会终止DTLS会话。AC开启DTLSSessionDelete定时器。

4ImageDatatoImageDataimage数据状态在WTP和AC在firmware下载阶段的时候使用。¢

WTP:ü

当WTP接收到一个表明AC有更多数据要发送的ImageDataResponsemessage的时候,WTP进入ImageDatastate。ü

WTP

接收到频繁的ImageDataRequests,此时,它将会重新设置ImageDataStartTimer的时间来保证它接收到下一个来自AC的ImageDataRequest。ü

WTP的EchoInterval

超时的时候,这会导致WTP传输一个EchoRequestmessage,并且重新设置它的EchoInterval定时器。ü

WTP接收到一个来自AC的EchoResponse。¢

AC:ü

当AC在Image数据状态下接收到来自WTP的ImageDataResponsemessage。ü

当AC接收到一个来自WTP的EchoRequest。这个会导致AC用一个EchoResponse来进行响应,然后重新设置EchoInterval定时器。

5ImageDatatoResetWTP下载image后重启,重新设置DTLS连接¢

WTP:ü

当image的下载完成,或者ImageDataStartTimer定时器超时,WTP进入reset状态。ü

接收到一个来自AC的ImageDataResponsemessage消息的时候转入这个状态。¢

AC:当image传输成功完成,或者在传输过程中发生了一个错误的时候,AC进入reset状态。

6ImageDatatoDTLSTeardown当firmware下载过程由于DTLS错误而终止时发生¢

WTP:ü

接收到下面任一DTLS通告:DTLSAborted,DTLSReassemblyFailure,或者DTLSPeerDisconnect的时候ü

收到频繁的DTLSDecapFailure通告的时候关闭DTLS会话。此时WTP开启DTLSSessionDelete计时器。¢

AC:ü

当AC接收到下面任一DTLS通告:DTLSAborted,DTLSReassemblyFailure,或者DTLSPeerDisconnect的时候ü

收到频繁的DTLSDecapFailure通告的时候关闭DTLS会话。此时AC开启DTLSSessionDelete计时器。

7ConfiguretoDataCheck当WTP与AC确认配置信息的时候¢

WTP:

从AC接收到一个成功的ConfigurationStatusResponsemessage的时候,WTP转入DataCheck状态。此时WTP发送一个ChangeStateEventRequestmessage。¢

AC:当AC接收到来自WTP的ChangeStateEventRequestmessage时发生。然后,AC回应一个ChangeStateEventResponsemessage。此时,

AC必须开启DataCheckTimer定时器,关闭ChangeStatePendingTimer定时器。

8

DataChecktoDTLSTeardown当WTP没有完成DataCheck

交互的时候。¢

WTP:ü

当CAPWAP重传定时器超时,WTP仍没有接收到ChangeStateEventResponsemessage。

ü

当RetransmitCount达到MaxRetransmit的时候。

此时,WTP开启DTLSSessionDelete定时器。¢

AC:当DataCheckTimer定时器超时的时候进入这个状态。

此时,AC开启DTLSSessionDelete定时器。

9

DataChecktoRun当控制和数据通道建立的时候¢

WTP:条件:当接收到来自AC的成功ChangeStateEventResponsemessage。动作:WTP初始化一个数据通道,这个数据通道可选择是否由DTLS加密。开启DataChannelKeepAlive定时器,发送一个DataChannelKeep-Alive报文。然后,WTP开启EchoInterval定时器和DataChannelDeadInterval定时器。¢

AC:条件:当AC接收到DataChannelKeep-Alive报文,报文中的sessionId与WTP在JoinRequest中设定的一致。

动作:AC关闭DataCheckTimer定时器。注意,如果AC要求数据通道要加密,那么将会建立一个数据通道的DTLS会话。在接收到DataChannelKeep-Alive报文之前,AC就会发送一个自己的DataChannelKeep-Alive报文。

0RuntoDTLSTeardown当DTLS发生错误的时候¢

WTP:条件:ü

接收到下面任何一个DTLS通告:DTLSAborted,DTLSReassemblyFailure,

或者DTLSPeerDisconnect。

ü

接收到频繁的DTLSDecapFailure通告。

ü

RetransmitCount达到MaxRetransmit值。

动作:

开启DTLSSessionDelete定时器。AC:条件:ü

接收到下面任何一个DTLS通告:DTLSAborted,DTLSReassemblyFailure,

或者DTLSPeerDisconnect。

ü

接收到频繁的DTLSDecapFailure通告。

ü

RetransmitCount达到MaxRetransmit值。

ü

EchoInterval定时器触发。

动作:开启DTLSSessionDelete定时器。

1RuntoRunCAPWAP的常态。¢

WTP:这是WTP常态。在这个状态中,WTP每次发送一个请求给AC的时候,都会设置EchoInterval定时器。

在这个状态中可以发生下面的事件:

ü

ConfigurationUpdate:WTP接收到一个ConfigurationUpdateRequestmessage。此时,WTP必须回应一个ConfigurationUpdateResponse。

ü

ChangeStateEvent:WTP接收到一个ChangeStateEventResponse,或者WTP需要初始化一个ChangeStateEventRequest。

ü

EchoRequest:WTP发送一个EchoRequest或者接受到对应的EchoResponse。

ClearConfigRequest:WTP接收到一个ConfigurationRequest,必须产生一个对应的ClearConfigurationResponse。

ü

WTPEvent:WTP发送一个WTPEventRequest,用于发送一些消息给AC。然后,WTP接收到来自AC的WTPEventResponse。

ü

DataTransfer:WTP发送一个DataTransferRequest或者DataTransferResponse给AC。

ü

StationConfigurationRequest:WTP接收到一个StationConfigurationRequest,需要回应一个StationConfigurationResponse¢

AC:这是AC常态。在这个状态中,AC每次发送一个请求给WTP的时候,都会设置EchoInterval定时器。

ü

ConfigurationUpdate:AC发送一个ConfigurationUpdateRequestmessage给WTP用以更新WTP的配置。然后接收到来自WTP的ConfigurationUpdateResponse。

ü

ChangeStateEvent:AC接收到一个ChangeStateEventRequest,需要回应一个ChangeStateEventResponse。

ü

EchoRequest:AC接收到一个EchoResponse需要回应一个对应的EchoRequest。

ü

ClearConfigRequest:AC发送一个ConfigurationRequest给WTP来清理WTP的配置,然后接收到来自WTP的ClearConfigurationResponse。

ü

WTPEvent:AC接收到一个来自WTP的WTPEventRequest,需要回应一个对应的WTPEventResponse。

ü

DataTransfer:AC发送DataTransferRequest或者DataTransferResponse。AC接收到DataTransferRequest或者DataTransferResponse。

ü

StationConfigurationRequest:AC发送StationConfigurationRequest或者接收到StationConfigurationResponse

2RuntoReset当AC或者WTP关闭连接的时候发生。可以有正常操作导致,也可能由错误导致。¢

WTP:WTP接收到来自AC的ResetRequest¢

AC:AC发送一个ResetRequest给WTP。

3ResettoDTLSTeardownCAPWAPreset关闭DTLS会话。¢

WTP:条件:WTP发送ResetResponse。

动作:WTP不调用DTLSShutdown命令,开启DTLSSessionDelete定时器。¢

AC:条件:当AC接收到ResetResponse。

动作:初始化DTLSShutdown命令,开启DTLSSessionDelete定时器。

4DTLSTeardowntoIdleDTLS会话关闭¢

WTP:WTP成功清理控制层DTLS会话所关联的所有资源,或者DTLSSessionDelete定时器超时。如果存在数据层DTLS会话,那么也需要关闭,被释放所有资源。为这个状态机设置的所有定时器都要被重置。¢

AC:对AC来说是无效状态。

5DTLSTeardowntoSulking重复尝试建立DTLS连接失败¢

WTP:条件:当FailedDTLSSessionCount或者FailedDTLSAuthFailCount计时器达到MaxFailedDTLSSessionRetry值

动作:开启SilentInterval定时器,在Sulking状态,所有接收到的CAPWAP和DTLS协议报文都必须忽略¢

AC:对AC来说是无效状态。

6DTLSTeardowntoDeadDTLS会话被关闭¢

WTP:对WTP来说是无效状态¢

AC:AC成功清理控制层DTLS会话所关联的所有资源,或者DTLSSessionDelete定时器超时。如果存在数据层DTLS会话,那么也需要关闭,被释放所有资源。为这个状态机设置的所有定时器都要被重置。

转发:capwap学习笔记——初识capwap(四)

2.5.7CAPWAP传输机制WTP和AC之间使用标准的UDP客户端/服务器模式来建立通讯。CAPWAP协议支持UDP和UDP-Lite[RFC3828]。¢在IPv4上,CAPWAP控制和数据通道使用UDP。此时CAPWAP报文中的UDP校验和必须设置为0。AC上的CAPWAP控制报文端口为UDP众所周知端口5246,数据报文端口为UDP众所周知端口5247,WTP可以随意选择CAPWAP控制和数据端口。¢在IPv6上,CAPWAP控制通道一般使用UDP,而数据通道可以使用UDP或者UDP-Lite。UDP-Lite为默认的数据通道传输协议。当使用UDP-Lite协议的时候,校验和必须为8.UDP-Lite使用的端口与UDP一致。2.5.8分片、重组、MTU发现CAPWAP协议在应用层上提供IP报文的分配和重组服务,由于使用隧道机制,报文分片中间的传输媒介来说是透明的。因此可以在任何网络架构(防火墙,NAT等)上使用CAPWAP协议。CAPWAP实现的分片机制也有局限和不足,协议RFC4963中详细描述。CAPWAP执行MTU发现来避免分片。一旦WTP发现AC,且想要与这个AC建立一个CAPWAP会话,它必须执行一个PathMTU(PMTU)发现。IPv4的PMTU发现过程在RFC1191中详细描述。IPv6使用RFC4821。2.5.9报文格式CAPWAP协议可靠机制要求消息必须成对,由请求和响应组成。所有的请求消息的消息类型值都为奇数,所有的响应消息类型值都为偶数。如果WTP或者AC接收到了一个不认识的消息,消息类型是奇数,那么会将消息类型值加一,然后响应给发送者,并且在响应中带有“不认识的消息类型”元素。如果不认识的消息类型为偶数,那么这个消息将会被忽略。UDP-Lite协议的简单介绍UDP-Lite协议更加适应于网络的差错率比较大,但是应用对轻微差错不敏感的情况,例如实时视频的播放等。那么它与传统的UDP协议有什么不同呢?传统的UDP协议是对其载荷(Payload)进行完整的校验的,如果其中的一些位(哪怕只有一位)发生了变化,那么整个数据包都有可能被丢弃,在某些情况下,丢掉这个包的代价是非常大的,尤其当包比较大的时候。在UDP-Lite协议中,一个数据包到底需不需要对其载荷进行校验,或者是校验多少位都是由用户控制的,并且UDP-Lite协议就是用UDP协议的Length字段来表示其ChecksumCoverage的,所以当UDP-Lite协议的ChecksumCoverage字段等于整个UDP数据包(包括UDP头和载荷)的长度时,UDP-Lite产生的包也将和传统的UDP包一模一样。事实上,Linux对UDP-Lite协议的支持也是通过在原来的UDP协议的基础上添加了一个setsockopt选项来实现控制发送和接受的checksumcoverage的。CAPWAP报文的简单介绍CAPWAP控制协议包括两个永远不会被DTLS保护的消息:DiscoveryRequest和DiscoveryResponse。报文格式如下:其余的CAPWAP控制协议报文必须被DTLS协议加密,因此包括一个CAPWAPDTLSHeader。CAPWAP协议对数据报文的DTLS加密是可选的。CAPWAP头部格式:¢UDP头:所有的CAPWAP报文都被封装在UDP或者UDP-Lite(ipv6)中。¢CAPWAPDTLS头:所有的被DTLS加密的CAPWAP报文都有该头部前缀。¢DTLS头:DTLS头部为CAPWAP的载荷提供认证和加密服务。DTLS在RFC4347中定义。¢CAPWAP头:所有的CAPWAP协议报文都用同一个头部,该头部位于CAPWAP预判码或者DTLS头之后。¢无线载荷:包含无线载荷的CAPWAP协议报文称为CAPWAP数据报文。CAPWAP协议并没有对无线载荷的格式做强制要求,而是由无线协议标准决定。¢控制头:CAPWAP协议包含一个信号元件,称为CAPWAP控制协议。所有的CAPWAP控制报文都包含一个控制头,CAPWAP数据报文则不包含该头部。¢消息元素:CAPWAP控制报文包含一个或者多个消息元素,这些跟在元素在控制头之后。这些消息元素以TLV格式出现(类型/长度/值).1预判码2种CAPWAP首部的前8位为预判码,用于快速判断此报文是否经过DTLS加密。前4位指明CAPWAP版本,目前的版本号为0;后4位值为1时是CAPWAPDTLS首部,值为0时是CAPWAP首部。001234567+-+-+-+-+-+-+-+-+|Version|Type|

.2CAPWAPDTLS首部标识此报文经过DTLS加密。长度为32位,包括8位预判码和24位预留码。012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|CAPWAPPreamble|Reserved|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+.3CAPWAP首部CAPWAP协议的所有报文都包含CAPWAP首部,在控制信道收到则是控制报文,在数据信道收到则是数据报文,012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|CAPWAPPreamble|HLEN|RID|WBID|T|F|L|W|M|K|Flags|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|FragmentID|FragOffset|Rsvd|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|(optional)RadioMACAddress|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|(optional)WirelessSpecificInformation|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|Payload....|+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+报文各部分组成如下:(1)CAPWAPPreamble:8位预判码。(2)HLEN:5位首部长度,指明CAPWAP首部的长度。(3)RID:5位射频标识符,指明此报文的来源射频。(4)WBID:5位无线帧标识符,指明无线帧类型,有IEEE802.11,IEEE802.16和EPCGlobal3种。(5)T:1位数据帧标识符,值为1时数据帧是由WBID指明的类型,值为0时是IEEE802.3数据帧。(6)F:1位分组标志,值为1时此报文是一个CAPWAP报文分组,需要和其他分组重组成完成的报文。(7)L:1位分组结束标志,值为1时此报文是最后一个分组。(8)W:1位选项标志,值为1时存在WirelessSpecificInformation选项。(9)M:1位选项标志,值为1时存在RadioMACAddress选项。(10)K:1位存活标志,指明此报文用于保持连接存活,不能携带用户数据。(11)Flags:3位预留标志。(12)FragmentID:16位分组标识符,识别不同的报文分组,ID相同的分组属于同一个CAPWAP报文。(13)FragmentOffset:13位分组位移,各分组在该CAPWAP报文中的位置。(14)Reserved:3位预留码。(15)RadioMACAddress:32位射频MAC地址,不足32位以全0填充。指明报文来源射频的MAC地址。(16)WirelessSpecificInformation:32位特殊无线信息,不足32位以全0填充。包含特殊信息,如与IEEE802.11,IEEE802.16和EPCGlobal的关联等。(17)Payload:数据报文是用户数据,控制报文则是控制消息,详细的控制消息定义参见文献[1]。CAPWAP数据报文CAPWAP数据报文有两种类型:CAPWAPDatachannelKeep-Alive报文和DataPayload报文。CAPWAPDatahannelKeep-Alive报文用于同步控制和数据通道,维持数据通道的连接。DataPayload报文用于在AC和WTP之间传输用户数据。.1CAPWAPDataChannelKeep-Alive该报文的目的在于保持通道的可用性。当DataChannelKeepAlive定时器到期,WTP发送该报文,同时设置DataChannelDeadInterval定时器。在报文中,除了HELN字段和K标志位,其余字段和标志位均被置为0。当收到KEEPALIVE报文,AC将回应一个KEEPALIVE报文给WTP。WTP在收到AC回应的KEEPALIVE报文后,取消DataChannelDeadInterval定时器并且重设DataChannelKeepAlive定时器。然后WTP将KEEPALIVE报文当做控制消息进行重发。如果在DataChannelDeadInterval定时器到期时仍然没有收到AC的回应报文,WTP将删除DTLS的控制SESSION,如果存在数据SESSION也同时删除。KEEPALIVE报文格式如下所示:012301234567890123456789012345678901+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+|MessageElementLength|MessageElement[0..N]...+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+报文被封装在CAPWAP报文的payload字段中。MessageElementLength:16bit的长度字段,最大为65535。MessageElement[0..N]:携带的KEPPALIVE报文数据,SEESIONID是必须携带的。.2DataPayloadCAPWAPDataPayload报文封装了需要转发的用户数据,里面可能是802.3帧也有可能是无线数据帧,参见3.2章节。.3DTLS数据通道的建立如果AC和WTP被配置为DTLS隧道传输模式,那么就必须初始化DTLSSESSION。为了避免重新鉴定、认证AC和WTP,DTLS数据通道应该利用TLSSESSION的特征。ACDTLS实现不应该在没有控制通道的情况下初始化数据通道SESSION。CAPWAP控制报文CAPWAP控制报文分为以下几种类型:Discovery:发现网络中的AC,AC位置和能力Join:WTP用于向AC请求服务,AC用于响应WTPControlChannelManagement:维持控制通道WTPConfigurationManagement:AC给WTP发送配置文件。StationSessionManagement:AC发送station策略给WTPDeviceManagementOperations:请求和发送firmware给WTPBinding-SpecificCAPWAPManagementMessages:AC和WTP用于交换协议指定的CAPWAP管理信息。可能交换一个station的连接状态信息。.1CAPWAPDiscoveryOperations¢DiscoveryRequestMessageWTP用DiscoveryRequest来自动发现网络中可用的AC,提供自己的基本性能给AC。¢DiscoveryResponseMessageAC使用DiscoveryResponse,将自己支持的服务告诉给请求服务的WTP。¢PrimaryDiscoveryRequestMessageWTP发送PrimaryDiscoveryRequest用于:判断它首选(或者配置的)的AC是否可用或者执行一个PathMTUDiscovery¢PrimaryDiscoveryResponseAC使用PrimaryDiscoveryResponse告诉WTP自己当前可用,与支持服务。当WTP被配置了一个首选的AC,但是现在却连接在另外一个AC上,此时会发送PrimaryDiscoveryRequest。因为WTP只有一个CAPWAP状态机,WTP在run状态发送PrimaryDiscoveryRequest,AC不传输这个消息.2CAPWAPJoinOperations¢JoinRequest在与AC建立DTLS连接之后,WTP使用JoinRequest来向一个AC请求服务¢JoinResponseAC使用JoinResponse告知WTP是否会向其提供服务.3ControlChannelManagement¢EchoRequest¢EchoResponseEchoRequest和EchoResponse用于在控制报文没有发送的时候,来显式的维持控制通道的连接.4WTPConfigurationManagement¢ConfigurationStatusRequestWTP用于发送自己当前的配置给AC¢ConfigurationStatusResponseAC提供自己的配置数据给WTP,覆盖WTP所请求的配置¢ConfigurationUpdateRequestrun状态的时候,AC发送给WTP用于修改WTP上的配置。¢ConfigurationUpdateResponse响应ConfigurationUpdateRequest¢ChangeStateEventRequest1:当WTP收到来自AC的ConfigurationStatusResponse,WTP使用ChangeStateEventRequest来提供WTPradio的当前状态,确认AC提供的配置已经成功应用2:在run状态下,WTP发送ChangeStateEventRequest来告诉AC,WTPradio发生了意料之外的改变。¢ChangeStateEventResponse:响应ChangeStateEventRequest¢ClearConfigurationRequest:AC用于请求WTP将自己的配置恢复至出厂默认值¢ClearConfigurationResponseWTP恢复出厂默认值后,发送给AC的确认。CAPWAP协议提供弹性的WTP配置管理机制,有两种方法:1:WTP没有任何配置,接受AC提供的任何配置2:WTP保存AC提供的静态内存中的不是默认值的配置数据,然后重启初始化配置。.5DeviceManagementOperations(可选)¢ImageDataRequest在WTP和AC之间交换,用于WTP下载一个新的firmware¢ImageDataResponse响应ImageDataResponse¢ResetRequest要求WTP进行重启。¢ResetResponse响应ResetRequest¢WTPEventRequestWTP用来发送信息给AC。WTPEventRequest可能是阶段性发送,或者是作为一个WTP同步事件的响应。¢WTPEventResponse响应WTPEventRequest¢DataTransferRequest将WTP上的调试信息发送给AC¢DataTransferResponse响应DataTransferRequestWTPEventRequest是WTP发送一些定义好的状态信息,如DecryptionErrorReport,DuplicateIPv4Address等等,也能用于发送VendorSpecificPayloadDataTransferRequest可以由AC发送,也可以由WTP发送。.6CAPWAP定义的firmware下载过程:firmware的下载可以发生在imagedata状态或者run状态。CAPWAP协议并没有提供让AC来识别是否WTP提供的firmware信息是否正确,或者WTP是否正确存储了firmware。.7StationSessionManagement¢StationConfigurationRequestAC用于创建,修改,删除WTP上的staion会话状态¢StationConfigurationResponse响应StationConfigurationRequest

capwap学习笔记——初识capwap(五)

3.CAPWAPBindingforIEEE802.11¢CAPWAP协议本身并不包括任何指定的无线技术。它依靠绑定协议来扩展对特定无线技术的支持。¢RFC5416就是用来扩展CAPWAP对IEEE802.11网络的支持。其中定义了控制消息字段,新的控制消息,消息元素。¢注意,这个协议仅支持IEEE802.11-2007规范,并不支持IEEE802.11-2007standard中定义的adhoc网络模式(即点到点模式,也就是IBSS),也不适用于four-address格式的数据帧(这种数据帧一般用于网桥,在IEEE802.11-2007标准中没有指定这种用法)。协议并不支持IEEE802.11n。一些术语:BasicServiceSet(BSS):基础服务集合(中控型基本服务集)。指由被控制的STA及其控制结构组成的无线网络。IndependentBasicServiceSet(IBSS):独立基础服务集,也称为特别网络,它是由一系列彼此相互连接的,没有基础架构的站点组成的一个802.11网络,是专为点对点连接。IBSS模式没有无线基础设施骨干,但至少需要2台STA。3.1绑定标识符根据RFC5415中4.3章节对CAPWAP头部的描述,其中的WBID字段标识了所绑定的无线技术。针对802.11,该字段取值为1。3.2功能划分由于CAPWAP是与协议无关的,因此当绑定802.11时,就需要将802.11所要求实现的功能进行划分,即将802.11所提供的功能按照提供者(AC还是WTP)来划分,以明晰各自需要实现的功能。简而言之,就是AC和WTP需要各自实现哪些802.11中的功能。3.2.1SplitMAC¢SplitMAC在IEEE802.11中,AC与WTP在splitMAC中的分工如下:由此可知,在splitMAC中,分布和集成服务都在AC来完成,因此所有的用户数据都在WTP和AC之间以隧道传送。但是,所有实时的IEEE802.11服务,包括Beacon和Probe响应帧,都在WTP被处理。关联请求等和802.1x的EAP协议和RNSA密钥管理功能也都在AC上完成。这表明了Authentication,Authorization,和Accounting(AAA)也都在AC上完成。IEEE802.11的控制模块都在AC上完成,实时调度和队列功能都在WTP上完成。注意,这个并不代表AC不能提供额外的策略和调度功能使用802.1X终端用户认证和AdvancedEncryptionStandard-Counter模式与CBC-MAC协议(AES-CCMP)加密。'(-)'代表帧是在WTP上处理。处理过程如下:WTP生成一个IEEE802.11Beacon帧,其中包括RobustSecurityNetworkInformationElement(RSNIE),即支持802.1X和AES-CCMP。WTP处理Probe请求,回应对应的P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论