capwap学习笔记0-5大全_第1页
capwap学习笔记0-5大全_第2页
capwap学习笔记0-5大全_第3页
capwap学习笔记0-5大全_第4页
capwap学习笔记0-5大全_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

公司要做AP和AC,从今天开始学习CAPWAP。1CAPWAP的前世今生11胖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设备的丢失意味着网络配置的丢失,在发现设备丢失前,网络存在入侵隐患,在发现设备丢失后又需要全网重配置。在这种情况下,瘦APAC的组网方式应用而生。其中无线控制器负责无线网络的接入控制,转发和统计、AP的配置监控、漫游管理、AP的网管代理、安全控制;瘦AP负责80211报文的加解密、80211的PHY功能、接受无线控制器的管理、RF空口的统计等简单功能。其组网图如下所示通过无线控制器(AC)来管理多个AP,AP和AC间采用隧道协议进行通讯,无线接入报文的处理在AP和AC间分担实现。瘦APAC的组网方式的优点如下瘦AP的配置保存在无线控制器中,瘦AP启动时会自动从无线控制器下载合适的设备配置信息瘦AP需要能够自动获取IP地址,同时瘦AP需要能够自动发现可接入的无线控制器,并对无线控制器和瘦AP之间的网络拓扑不敏感无线控制器支持瘦AP的配置代理和查询代理,能够将用户对瘦AP的配置顺利传达到指定的瘦AP设备,同时可以实时察看瘦AP的状态和统计信息无线控制器保存瘦AP的最新软件,并负责瘦AP软件的自动更新为了更加清晰的了解胖AP和瘦APAC的特点,简单罗列一下。胖AP的主要特点胖AP是与瘦AP相对来讲的,胖AP将WLAN的物理层、用户数据加密、用户认证、QOS、网络管理、漫游技术以及其他应用层的功能集于一身。胖AP无线网络解决方案可由由胖AP直接在有线网的基础上构成。胖AP设备结构复杂,且难于集中管理。瘦AP的主要特点瘦AP是相对胖AP来讲的,它是一个只有加密、射频功能的AP,功能单一,不能独立工作。整个瘦AP无线网络解决方案由无线控制器和瘦AP在有线网的基础上构成。瘦AP上“零配置”,所有配置都集中到无线交换机上。这也促成了瘦AP解决方案更加便于集中管理,并由此具有三层漫游、基于用户下发权限等胖AP不具备的功能。简而言之,如果是小规模使用,胖AP是最好的,如果是要大规模部署,瘦APAC是明智之选。12CAPWAP的起源既然瘦AP不能单独工作,必须和AC配合使用,那么两者之间总要有一种协议可以让它们能够进行互联和沟通吧。因此,思科老大哥整了一个LWAPP协议,而这个协议正是CAPWAP协议的前身但是请大家注意,LWAPP这个东西是人家思科的私有的,其他厂商是不能直接使用,否则就要吃官司,于是,其他厂商就按照自己的想法也整了一个协议,这样一来就乱了,你整个协议我也整个协议,如果瘦AP和AC都是一样厂商自然没问题,如果要是不易厂商的,就没法通信了于是乎,IETF为了解决隧道协议不兼容问题造成的A厂家的AP和B厂家的AC无法进行互通,在2005年成立了CAPWAP工作组以标准化AP和AC间的隧道协议。2初识CAPWAP21CAPWAP简介说了半天CAPWAP,连全称都还没说,汗CAPWAPCONTROLANDPROVISIONINGOFWIRELESSACCESSPOINTSPROTOCOLSPECIFICATION。其由两个部分组成CAPWAP协议和无线BINDING协议。前者是一个通用的隧道协议,完成AP发现AC等基本协议功能,和具体的无线接入技术无关。后者是提供具体和某个无线接入技术相关的配置管理功能。这么说吧,前者规定了各个阶段需要干什么事,后者就是具体到在各种接入方式下应该怎么完成这些事。CAPWAP协议在2009年4月的RFC5415中发布,无线BINGDING协议目前只出台了接入方式为80211的RFC,也是2009年4月发布的,RFC编号为5416。PS漂移一下,顺带提一下80211、80215、80216、80220等无线接入方式的区别。目前,IEEE802旗下的无线网络协议一共有80211、80215、80216和80220等四大种类,这四大类协议中又包含各种不同性能的子协议,显得很混乱的样子IEEE80211体系定义的是无线局域网标准(WLAN,WIRELESSLOCALAREANETWORK),针对家庭和企业中的局域网而设计,应用范围一般局限在一个建筑物或一个小建筑物群(如学校、小区等)。IEEE80215定义的其实是无线个人网络(WPAN,WIRELESSPERSONALAREANETWORK),主要用于个人电子设备与PC的自动互联,这类设备包括手机、MP3播放器、便携媒体播放器、数码相机、掌上电脑等等。IEEE80216是一种广带无线接入技术(BROADBANDWIRELESSACCESS,BWA),主要用于远距离、高速度的通讯环境,定义的是城域网络(MAN,METROPOLITANAREANETWORK),性能可媲美CABLE电缆、DSL、T1专线等传统的有线技术。IEEE80216包含80216和80216A两项子协议,前者的作用距离为2公里,传输速率在30MBPS至130MBPS之间,而80216A的传输距离可达到50公里,速率也能达到75MBPS看得出,在上述各种无线通讯技术中,还没有哪项技术可以在有效范围和性能标准上都盖过IEEE80216A。IEEE80220与80216在特性上有些类似,都具有传输距离远、速度快的特点。不过80220是一项移动广带接入技术(MOBILEBROADBANDWIRELESSACCESS,MBWR),他更侧重于设备的可移动性,例如在高速行驶的火车、汽车上都能实现数据通讯(80216无法做到这一点)。CAPWAP协议的主要功能AP自动发现AC,AC对AP进行安全认证,AP从AC获取软件映像,AP从AC获得初始和动态配置等。此外,系统可以支持本地数据转发和集中数据转发。瘦AP架构让AC具有了对整个WLAN网络的完整视图,为无线漫游、无线资源管理等业务功能的实现提供了基础。22一些名词无线控制器AC网络实体,在网络架构的数据层,控制层,管理层或者联合起来提供WTP到网络的访问服务。CAPWAP控制信道一个双向信道,由AC的IP地址,WTP的IP地址,AC控制端口,WTP控制端口,传输层协议(UDP或者UDPLITE)定义,在这之上可以收发CAPWAP的控制报文。CAPWAP数据信道一个双向信道,由AC的IP地址,WTP的IP地址,AC数据端口,WTP数据端口,传输层协议(UDP或者UDPLITE)定义,在这之上可以收发CAPWAP的数据报文。STATION一个包含无线接口的设备无线终端WTP物理或者网络实体,包含一个射频天线和无线物理层可以传输和接收STA在无线存取网络的数据。23CAPWAP的模式CAPWAP协议支持两种模式的操作SPLITMAC和LOCALMAC。SPLITMAC在SPLITMAC模式下,所有二层的无线数据和管理帧都会被CAPWAP协议封装,然后在AC和WTP之间交换。如下图中所示,从一个STATION收到的无线帧,会被直接封装,然后转发给AC。LOCALMAC本地转发模式允许数据帧可以用本地桥或者使用8023的帧形式用隧道转发。在这种情况下,二层无线管理帧在WTP本地已经处理,然后转发给AC。下图显示了本地转发模式,STATION传送的无线帧被封装成8023数据帧,然后转发给AC。24CAPWAP的负载类型CAPWAP协议传输层运输两种类型的负载数据消息封装转发无线帧控制消息管理WTP和AC之间交换的管理消息CAPWAP数据和控制报文基于不同的UDP端口发送,且可以被分段,因此数据和控制报文可以超过MTU长度。25CAPWAP会话创建过程CAPWAP协议从发现阶段开始。WTPS发送一个发现请求消息,任何接收到这个请求的AC将会回应一个发现响应报文。接收到发现响应报文,WTP选择一个AC来建立一个基于DTLS的安全会话。为了建立DTLS安全连接,WTP将需要一个预先提供的数据,将在后面说明。CAPWAP协议报文将会被分段成网络支持的最大长度。COMMENT汪汪1一旦WTP和AC完成了DTLS会话建立,两者之间会交换配置,来在版本信息上达成一致。在这个交换过程之间,WTP可能会接收到规定设置,然后会开启这些设置。当WTP和AC之间完成版本和设置的交换,并且WTP已经开启,CAPWAP协议将被使用来封装AC和WTP之间发送的无线数据帧。如果用户数据或者协议控制数据长度超过WTP和AC之间的MTU会导致CAPWAP协议将L2层帧分片。被分片的CAPWAP报文将会被重新组成原来的封装报文。251AC发现机制WTP使用AC发现机制来得知哪些AC是可用的,决定最佳的AC来建立CAPWAP连接。WTP的发现过程是可选的。如果在WTP上静态配置了AC,那么WTP并不需要完成AC的发现过程。WTP首先发送一个DISCOVERYREQUESTMESSAGE给受限的广播地址,或者CAPWAP的多播地址22401140,或者是预配置的AC的单播地址。在IPV6网络中,由于广播并不存在,因此使用“ALLACSMULTICASTADDRESS“FF0X00000018C来代替。当接收到DISCOVERYREQUESTMESSAGE消息,AC发送一个单播DISCOVERYRESPONSEMESSAGE给WTP。WTP可以通过DISCOVERYRESPONSEMESSAGE中所带的AC优先级,支持的CAPWAPBINDING来选择与哪个AC建立会话。除了上面的发现机制,WTP还可以使用DNS或者DHCP来发现AC。252DTLS握手WTP首先发送一个CLIENTHELLO消息来发起握手,说明它支持的密码算法列表、压缩方法及最高协议版本和其他一些需要的消息。AC回复一个HELLOVERIFYREUQEST消息,CLIENT必须重传添加了COOKIE的CLIENTHELLO。SERVER然后验证COOKIE,如果有效的话才开始进行握手。AC回应一个SERVERHELLO消息,包含服务器选择的连接参数,源自客户端初期所提供的CLIENTHELLO,确定了这次通信所需要的算法,然后发过去自己的证书(里面包含了身份和自己的公钥)。CLIENT在收到这个消息后会生成一个秘密消息,用SSL服务器的公钥加密后传过去,SSL服务器端用自己的私钥解密后,会话密钥协商成功,双方可以用同一份会话密钥来通信了。253DTLS认证和授权DTLS支持终端认证方式为证书(CERTIFICATE)和预共享密钥(PRESHAREDKEY)。CAPWAP认证中使用证书支持的算法是TLS_RSA_WITH_AES_128_CBC_SHARFC5246(MUSTSUPPORT)TLS_DHE_RSA_WITH_AES_128_CBC_SHARFC5246SHOULDSUPPORTTLS_RSA_WITH_AES_256_CBC_SHARFC5246MAYSUPPORTTLS_DHE_RSA_WITH_AES_256_CBC_SHARFC5246MAYSUPPORT在RFC4279中定义了多种预共享密钥的认证方式,CAPWAP中主要关心下面两种PRESHAREDKEYPSKKEYEXCHANGEALGORITHMDHE_PSKKEYEXCHANGEALGORITHM同样,CAPWAP定义了预共享密钥支持的算法TLS_PSK_WITH_AES_128_CBC_SHARFC5246(MUSTSUPPORT)TLS_DHE_PSK_WITH_AES_128_CBC_SHARFC5246(MUSTSUPPORT)TLS_PSK_WITH_AES_256_CBC_SHARFC5246MAYSUPPORTTLS_DHE_PSK_WITH_AES_256_CBC_SHARFC5246MAYSUPPORT254CAPWAP状态机CAPWAP状态机,是被AC和WTP同时使用的。对于每个定义的状态,只有特定的消息才被允许收发。因为WTP只会和单个AC通讯,因此只会有一个CAPWAP的状态机。而AC与WTP有很大差别,因为AC同时和许多WTP通讯。DTLS和CAPWAP的状态机由命令和通告的API接口联系起来。DTLS状态机的变迁由CAPWAP状态机的命令触发。CAPWAP状态机的变迁由DTLS状态机的通告触发CAPWAP状态机2541CAPWAPTODTLSCOMMANDSDTLSSTART开启DTLS会话的建立DTLSLISTEN监听DTLS会话请求DTLSACCEPT允许DTLS会话建立DTLSABORTSESSION导致正在进行中的DTLS会话的中断DTLSSHUTDOWN关闭DTLS会话DTLSMTUUPDATE改变DTLS模块的MTU设定大小。默认大小为1468字节2542DTLSTOCAPWAPNOTIFICATIONSDTLSPEERAUTHORIZEDTLS会话建立过程中,通知CAPWAP模块来认证会话。DTLSESTABLISHED通知CAPWAP模块DTLS会话已经成功建立COMMENT汪汪2DTLSESTABLISHFAILDTLS会话建立失败DTLSAUTHENTICATEFAILDTLS会话建立过程由于认证失败而终止。DTLSABORTED通知CAPWAP模块它要求的DTLS会话建立过程已经终DTLSREASSEMBLYFAILURE通知CAPWAP模块DTLS分片组装失败DTLSDECAPFAILURE通知CAPWAP模块发生了一个解码错误DTLSPEERDISCONNECT通知CAPWAP模块DTLS会话已经关闭255AC线程AC使用了三个“线程”(THREAD)的概念。监听线程通过DTLSLISTEN命令,AC监听线程处理DTLS会话建立请求。创建的时候,监听线程开启DTLSSETUP状态。当状态机进入AUTHORIZE状态,且DTLS会话生效之后,监听线程创建一个指定的WTP指定会话服务线程和状态空间。发现线程AC的发现线程负责接收和响应发现请求消息。服务线程AC的服务进程处理每个WTP的状态和每个WTP连接的线程。这个线程在认证后被监听线程创建。一旦创建,服务线程会继承监听线程的一份状态机空间的拷贝。当与WTP之间的通讯完成后,服务线程关闭,所有的资源都会被释放。注意,在这里使用了线程这个术语,但是并不代表实现者就必须使用线程。这只是一个实现AC状态机的可用的方法256CAPWAP状态机详解2561STARTTOIDLE这个状态变迁发生在设备初始化完成。WTP开启CAPWAP状态机。AC开启CAPWAP状态机。2562IDLETODISCOVERY这个状态变迁发生是为了支持CAPWAP发现进程。WTPWTP进入发现状态是为了优先去传输第一个DISCOVERYREQUESTMESSAGE。在进入这个状态之前,WTP设置发现DISCOVERYINTERVALTIMER,将DISCOVERYCOUNTCOUNTER为0同时清理以前的发现过程中可能会从AC收到的所有信息。AC由发现线程执行,且发生在收到一个发现请求报文的时候。此时,AC需要给这个报文响应一个DISCOVERYRESPONSEMESSAGE。2563DISCOVERYTODISCOVERY在这个发现状态,WTP决定连接哪个AC。WTP这个状态变迁发生在发现DISCOVERYINTERVALTIMER触发的时候。对于这个事件的每次变迁,DISCOVERYCOUNTCOUNTER会递增。一旦WTP发送了DISCOVERYREQUESTMESSAGE,WTP重启DISCOVERYINTERVALTIMER。AC对于AC来说,这个状态变迁是无效的。2564DISCOVERYTOIDLE当发现过程完毕的时候,AC的发现线程将会触发这个变迁。WTP对于WTP来说,这个状态变迁是无效的。AC这个状态变迁由AC发现线程执行,当发现线程传输了一个给DISCOVERYREQUEST回送了一个DISCOVERYRESPONSE的时候,就会触发这个过程。2565DISCOVERYTOSULKING当WTP发现AC失败的时候会触发这个状态变迁。WTP发生在DISCOVERYINTERVALTIMER超时的时候。且此时DISCOVERYCOUNT变量等于MAXDISCOVERIES。在进入这个状态之前,WTP必须开启SILENTINTERVALTIMER。当在SULKING状态的时候,所有收到的CAPWAP协议报文都会被忽略。AC对于AC来说,这个状态变迁是无效的。2566SULKINGTOIDLE这个状态变迁发生在WTP需要重新启动发现过程的时候。WTP当SILENTINTERVALTIMER触发,WTP进入到这个状态。FAILEDDTLSSESSIONCOUNT,DISCOVERYCOUNT和FAILEDDTLSAUTHFAILCOUNT计数器被清零。AC对于AC来说,这是一个无效的状态变迁。2567SULKINGTOSULKINGSULKING状态提供安静时段,最小化DOS攻击的危险。WTP在SULKING状态收到的所有来自AC得报文都会被忽略。AC对于AC来说,这是一个无效的状态变迁2568IDLETODTLSSETUP这个状态变迁发生在跟对端建立安全的DTLS会话的时候。WTPWTP通过调用DTLSSTART命令来初始化这个状态变迁,开始与选定AC进行DTLS会话,且开启WAITDTLSTIMER。此时,忽略了发现过程,假设WTP有本地配置的AC。AC从START状态进入IDLE状态,监听线程自动变迁至DTLSSETUP状态,调用DTLSLISTEN命令,并且开启WAITDTLSTIMER。COMMENT汪汪32569DISCOVERYTODTLSSETUPWTPWTP调用DTLSSTART命令来初始化这个变迁,开始与指定AC建立DTLS会话。AC对于AC来说,这是一个无效的状态变迁。25610DTLSSETUPTOIDLE当DTLS连接失败的时候发生这个状态变迁。WTP此时WTP接收到DTLSESTABLISHFAIL通知,并且FAILEDDTLSSESSIONCOUNT或者FAILEDDTLSAUTHFAILCOUNTCOUNTER没有达到MAXFAILEDDTLSSESSIONRETRY值。这个错误通知终止了DTLS会话的建立。当接收到这个通知,FAILEDDTLSSESSIONCOUNT计时器会递增。这个状态变迁也会发生在WAITDTLSTIMER超时的情况下。AC对于AC来说,这是一个无效的状态变迁。25611DTLSSETUPTOSULKING当重复尝试建立DTLS连接失败的时候,会发生此状态变迁。WTP当FAILEDDTLSSESSIONCOUNT或者FAILEDDTLSAUTHFAILCOUNT到达最大值MAXFAILEDDTLSSESSIONRETRY的时候,WTP进入此状态变迁。进入这个状态,WTP必须开启SILENTINTERVAL定时器,且所有接收到的CAPWAP和DTLS协议报文将会被忽略。AC对于AC来说,这是一个无效的状态变迁。25612DTLSSETUPTODTLSSETUP当DTLS会话建立失败的时候会发生这个状态变迁。WTP对于WTP来说,这是一个无效的状态变迁COMMENT汪汪4AC当接收到一个来自DTLS的DTLSESTABLISHFAIL通知,AC监听线程初始化这个状态变迁。当收到这个通告,FAILEDDTLSSESSIONCOUNT会递增,监听线程然后调用DTLSLISTEN命令。25613DTLSSETUPTOAUTHORIZE这个状态变迁发生在当一个正在建立DTLS会话需要认证才能继续进行的时候。WTP当WTP接收到DTLSPEERAUTHORIZE通告的时候,开始这个状态变迁。在进入这个状态之前,WTP对AC的证书执行一个认证检查。AC当DTLS模块初始化DTLSPEERAUTHORIZE通告的时候,AC监听线程处理这个状态变迁。监听线程FORK一个服务线程和一个状态机内容的拷贝,然后,服务线程会对WTP证书执行认证。25614AUTHORIZETODTLSSETUP当监听线程对新进入的会话开始监听的时候,发生这个状态变迁。WTP对于WTP来说,这是个无效的状态变迁AC当AC监听线程创建WTP内容空间和服务线程后,发生这个状态变迁。监听线程然后调用DTLSLISTEN命令。25615AUTHORIZETODTLSCONNECT当通知DTLS栈会话将要建立的时候发生这个状态变迁。WTP当AC证书被WTP认证成功的时候,会发生这个状态变迁。调用DTLSACCEPT命令来完成。AC当WTP证书成功通过AC认证的时候发生这个状态变迁。调用DTLSACCEPT来完成。25616DTLSCONNECTTODTLSTEARDOWN当DTLS会话建立失败的时候发生。WTP当WTP接收到一个DTLSABORTED或者DTLSAUTHENTICATEFAIL通告,告知这个DTLS会话建立不成功的时候,发生这个状态变迁。当因为DTLSAUTHENTICATEFAIL通告发生的状态变迁,FAILEDDTLSAUTHFAILCOUNT会增加,否则,FAILEDDTLSSESSIONCOUNT计数器增加。这个状态变迁也在WAITDTLS定时器超时的时候发生,此时WTP开启DTLSSESSIONDELETE定时器。AC当WTP接收到一个DTLSABORTED或者DTLSAUTHENTICATEFAIL通告,告知这个DTLS会话建立不成功,此时FAILEDDTLSAUTHFAILCOUNT和FAILEDDTLSSESSIONCOUNT不等于MAXFAILEDDTLSSESSIONRETRY的时候,发生这个状态变迁。这个状态变迁也在WAITDTLS定时器超时的时候发生。25617DTLSCONNECTTOJOIN当会话成功建立的时候发生。WTP当WTP接收到一个DTLSESTABLISHED通告,表明这个DTLS会话成功建立的时候,发生这个状态变迁。当接收到这个通告FAILEDDTLSSESSIONCOUNT计时器被设置为0WTP进入JOIN状态,传输JOINREQUEST给AC。WTP停止WAITDTLS定时器。AC当AC接收到DTLSESTABLISHED通告,表明这个DTLS会话成功建立的时候,发生这个状态变迁。当接收到这个通告,FAILEDDTLSSESSIONCOUNT计时器被设置为0AC停止WAITDTLS定时器,开启WAITJOIN定时器。25618JOINTODTLSTEARDOWN当JOIN过程失败的时候发生。WTP当WTP接收到一个带有错误代码消息单元的JOIN响应消息,或者在JOIN响应中由AC提供的IMAGE与WTP现在运行的版本不一样,且WTP的NONVOLATILEMEMORY中有这个请求的版本号这个导致WTP初始化DTLSSHUTDOWN命令。当WTP接收到下面任何一个通告的时候,也会发生这个过程DTLSABORTED,DTLSREASSEMBLYFAILURE,ORDTLSPEERDISCONNECTWTP开启DTLSSESSIONDELETE定时器。AC发生在WAITJOIN超时或者AC传送了一个带有错误码的JOINRESPONSE的时候。AC初始化DTLSSHUTDOWN命令。当AC收到下面任何一个DTLS通告的时候,也会发生这个过程DTLSABORTED,DTLSREASSEMBLYFAILURE,DTLSPEERDISCONNECT。此时,AC开启DTLSSESSIONDELETE定时器。25619JOINTOIMAGEDATAWTP和AC下载可执行的FIRMWARE时使用这个状态变迁。WTP当WTP收到了一个成功的JOINRESPONSEMESSAGE,告知它当前运行的版本与要求的不一样的时候,发生这个状态变迁。且此时,WTP的NONVOLATILESTORAGE中也没有要求的IMAGE版本。WTP初始化ECHOINTERVAL计时器。AC当AC发送一个JOINRESPONSE给WTP之后,从WTP接受到一个IMAGEDATAREQUEST报文,发生这个状态变迁。AC停止WAITJOIN定时器,发送一个IMAGEDATARESPONSEMESSAGE给WTP。25620JOINTOCONFIGUREWTP和AC使用这个状态变迁来交换配置信息。WTP当WTP收到了一个SUCCESSFULJOINRESPONSEMESSAGE,且此时当前运行的版本与要求的一致。WTP发送一个CONFIGURATIONSTATUSREQUESTMESSAGE给AC,消息中包含了当前配置信息。AC当从WTP接收到CONFIGURATIONSTATUSREQUESTMESSAGE,且消息中包含指定消息元素需要覆盖WTP的配置。AC停止WAITJOIN定时器,发送CONFIGURATIONSTATUSRESPONSEMESSAGE,并且开启CHANGESTATEPENDINGTIMER定时器。COMMENT汪汪525621CONFIGURETORESET这个状态变迁被用来重启连接。这个可能被配置阶段发生的错误导致,或者是WTP决定它有需要来重启让新的配置生效。CAPWAPRESET命令用来告诉对端它将会初始化一个DTLSTEARDOWN。WTPWTP接收到CONFIGURATIONSTATUSRESPONSEMESSAGE告诉它有错误发生或者觉得有需要重新让新配置生效的时候,WTP进入RESET状态。ACAC接收到一个来自WTP的CHANGESTATEEVENTMESSAGE,当这个消息包含了因为AC的策略而不允许WTP提供服务的错误的时候,AC变迁到RESET状态。这个状态变迁也会在CHANGESTATEPENDINGTIMER定时器超时的时候发生。25622AUTHORIZETODTLSTEARDOWN这个状态变迁为了通知DTLS会话将要终止。WTP当WTP认证失败的时候,发生这个状态变迁。WTP然后调用DTLSABORTSESSION命令终止这个DTLS会话。这个状态变迁也会发生在WAITDTLS定时器超时的情况下。WTP开启DTLSSESSIONDELETE定时器。AC这个状态变迁发生在AC认证失败的时候。AC调用DTLSABORTSESSION命令终止DTLS会话。这个状态变迁也会发生在WAITDTLS定时器超时的时候。AC开启DTLSSESSIONDELETE定时器。25623CONFIGURETODTLSTEARDOWN这个变迁发生在因为DTLS错误导致的配置过程终止的时候。WTP当接收到下列任一DTLS通告DTLSABORTED,DTLSREASSEMBLYFAILURE,或者DTLSPEERDISCONNECT,WTP进入这个状态。如果它接收到频繁的DTLSDECAPFAILURE通告,WTP也有可能会终止DTLS会话。此时,WTP开启DTLSSESSIONDELETE定时器。AC当接收到下列任一DTLS通告DTLSABORTED,DTLSREASSEMBLYFAILURE,或者DTLSPEERDISCONNECT,AC进入这个状态。如果它接收到频繁的DTLSDECAPFAILURE通告,WTP也有可能会终止DTLS会话。AC开启DTLSSESSIONDELETE定时器。25624IMAGEDATATOIMAGEDATAIMAGE数据状态在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定时器。25625IMAGEDATATORESETWTP下载IMAGE后重启,重新设置DTLS连接WTP当IMAGE的下载完成,或者IMAGEDATASTARTTIMER定时器超时,WTP进入RESET状态。接收到一个来自AC的IMAGEDATARESPONSEMESSAGE消息的时候转入这个状态。AC当IMAGE传输成功完成,或者在传输过程中发生了一个错误的时候,AC进入RESET状态。25626IMAGEDATATODTLSTEARDOWNCOMMENT汪汪6当FIRMWARE下载过程由于DTLS错误而终止时发生WTP接收到下面任一DTLS通告DTLSABORTED,DTLSREASSEMBLYFAILURE,或者DTLSPEERDISCONNECT的时候收到频繁的DTLSDECAPFAILURE通告的时候关闭DTLS会话。此时WTP开启DTLSSESSIONDELETE计时器。AC当AC接收到下面任一DTLS通告DTLSABORTED,DTLSREASSEMBLYFAILURE,或者DTLSPEERDISCONNECT的时候收到频繁的DTLSDECAPFAILURE通告的时候关闭DTLS会话。此时AC开启DTLSSESSIONDELETE计时器。25627CONFIGURETODATACHECK当WTP与AC确认配置信息的时候WTP从AC接收到一个成功的CONFIGURATIONSTATUSRESPONSEMESSAGE的时候,WTP转入DATACHECK状态。此时WTP发送一个CHANGESTATEEVENTREQUESTMESSAGE。AC当AC接收到来自WTP的CHANGESTATEEVENTREQUESTMESSAGE时发生。然后,AC回应一个CHANGESTATEEVENTRESPONSEMESSAGE。此时,AC必须开启DATACHECKTIMER定时器,关闭CHANGESTATEPENDINGTIMER定时器。25628DATACHECKTODTLSTEARDOWN当WTP没有完成DATACHECK交互的时候。WTP当CAPWAP重传定时器超时,WTP仍没有接收到CHANGESTATEEVENTRESPONSEMESSAGE。当RETRANSMITCOUNT达到MAXRETRANSMIT的时候。此时,WTP开启DTLSSESSIONDELETE定时器。AC当DATACHECKTIMER定时器超时的时候进入这个状态。COMMENT汪汪7此时,AC开启DTLSSESSIONDELETE定时器。25629DATACHECKTORUN当控制和数据通道建立的时候WTP条件当接收到来自AC的成功CHANGESTATEEVENTRESPONSEMESSAGE。动作WTP初始化一个数据通道,这个数据通道可选择是否由DTLS加密。开启DATACHANNELKEEPALIVE定时器,发送一个DATACHANNELKEEPALIVE报文。然后,WTP开启ECHOINTERVAL定时器和DATACHANNELDEADINTERVAL定时器。AC条件当AC接收到DATACHANNELKEEPALIVE报文,报文中的SESSIONID与WTP在JOINREQUEST中设定的一致。动作AC关闭DATACHECKTIMER定时器。注意,如果AC要求数据通道要加密,那么将会建立一个数据通道的DTLS会话。在接收到DATACHANNELKEEPALIVE报文之前,AC就会发送一个自己的DATACHANNELKEEPALIVE报文。25630RUNTODTLSTEARDOWN当DTLS发生错误的时候WTP条件接收到下面任何一个DTLS通告DTLSABORTED,DTLSREASSEMBLYFAILURE,或者DTLSPEERDISCONNECT。接收到频繁的DTLSDECAPFAILURE通告。RETRANSMITCOUNT达到MAXRETRANSMIT值。动作开启DTLSSESSIONDELETE定时器。AC条件接收到下面任何一个DTLS通告DTLSABORTED,DTLSREASSEMBLYFAILURE,或者DTLSPEERDISCONNECT。接收到频繁的DTLSDECAPFAILURE通告。RETRANSMITCOUNT达到MAXRETRANSMIT值。ECHOINTERVAL定时器触发。动作开启DTLSSESSIONDELETE定时器。25631RUNTORUNCAPWAP的常态。WTP这是WTP常态。在这个状态中,WTP每次发送一个请求给AC的时候,都会设置ECHOINTERVAL定时器。在这个状态中可以发生下面的事件CONFIGURATIONUPDATEWTP接收到一个CONFIGURATIONUPDATEREQUESTMESSAGE。此时,WTP必须回应一个CONFIGURATIONUPDATERESPONSE。CHANGESTATEEVENTWTP接收到一个CHANGESTATEEVENTRESPONSE,或者WTP需要初始化一个CHANGESTATEEVENTREQUEST。ECHOREQUESTWTP发送一个ECHOREQUEST或者接受到对应的ECHORESPONSE。CLEARCONFIGREQUESTWTP接收到一个CONFIGURATIONREQUEST,必须产生一个对应的CLEARCONFIGURATIONRESPONSE。WTPEVENTWTP发送一个WTPEVENTREQUEST,用于发送一些消息给AC。然后,WTP接收到来自AC的WTPEVENTRESPONSE。DATATRANSFERWTP发送一个DATATRANSFERREQUEST或者DATATRANSFERRESPONSE给AC。STATIONCONFIGURATIONREQUESTWTP接收到一个STATIONCONFIGURATIONREQUEST,需要回应一个STATIONCONFIGURATIONRESPONSEAC这是AC常态。在这个状态中,AC每次发送一个请求给WTP的时候,都会设置ECHOINTERVAL定时器。CONFIGURATIONUPDATEAC发送一个CONFIGURATIONUPDATEREQUESTMESSAGE给WTP用以更新WTP的配置。然后接收到来自WTP的CONFIGURATIONUPDATERESPONSE。CHANGESTATEEVENTAC接收到一个CHANGESTATEEVENTREQUEST,需要回应一个CHANGESTATEEVENTRESPONSE。ECHOREQUESTAC接收到一个ECHORESPONSE需要回应一个对应的ECHOREQUEST。CLEARCONFIGREQUESTAC发送一个CONFIGURATIONREQUEST给WTP来清理WTP的配置,然后接收到来自WTP的CLEARCONFIGURATIONRESPONSE。WTPEVENTAC接收到一个来自WTP的WTPEVENTREQUEST,需要回应一个对应的WTPEVENTRESPONSE。DATATRANSFERAC发送DATATRANSFERREQUEST或者DATATRANSFERRESPONSE。AC接收到DATATRANSFERREQUEST或者DATATRANSFERRESPONSE。STATIONCONFIGURATIONREQUESTAC发送STATIONCONFIGURATIONREQUEST或者接收到STATIONCONFIGURATIONRESPONSE25632RUNTORESET当AC或者WTP关闭连接的时候发生。可以有正常操作导致,也可能由错误导致。WTPWTP接收到来自AC的RESETREQUESTACAC发送一个RESETREQUEST给WTP。25633RESETTODTLSTEARDOWNCAPWAPRESET关闭DTLS会话。WTP条件WTP发送RESETRESPONSE。动作WTP不调用DTLSSHUTDOWN命令,开启DTLSSESSIONDELETE定时器。AC条件当AC接收到RESETRESPONSE。动作初始化DTLSSHUTDOWN命令,开启DTLSSESSIONDELETE定时器。25634DTLSTEARDOWNTOIDLEDTLS会话关闭WTPWTP成功清理控制层DTLS会话所关联的所有资源,或者DTLSSESSIONDELETE定时器超时。如果存在数据层DTLS会话,那么也需要关闭,被释放所有资源。为这个状态机设置的所有定时器都要被重置。AC对AC来说是无效状态。25635DTLSTEARDOWNTOSULKING重复尝试建立DTLS连接失败WTP条件当FAILEDDTLSSESSIONCOUNT或者FAILEDDTLSAUTHFAILCOUNT计时器达到MAXFAILEDDTLSSESSIONRETRY值动作开启SILENTINTERVAL定时器,在SULKING状态,所有接收到的CAPWAP和DTLS协议报文都必须忽略AC对AC来说是无效状态。25636DTLSTEARDOWNTODEADDTLS会话被关闭WTP对WTP来说是无效状态ACAC成功清理控制层DTLS会话所关联的所有资源,或者DTLSSESSIONDELETE定时器超时。如果存在数据层DTLS会话,那么也需要关闭,被释放所有资源。为这个状态机设置的所有定时器都要被重置。257CAPWAP传输机制WTP和AC之间使用标准的UDP客户端/服务器模式来建立通讯。CAPWAP协议支持UDP和UDPLITERFC3828。在IPV4上,CAPWAP控制和数据通道使用UDP。此时CAPWAP报文中的UDP校验和必须设置为0。AC上的CAPWAP控制报文端口为UDP众所周知端口5246,数据报文端口为UDP众所周知端口5247,WTP可以随意选择CAPWAP控制和数据端口。在IPV6上,CAPWAP控制通道一般使用UDP,而数据通道可以使用UDP或者UDPLITE。UDPLITE为默认的数据通道传输协议。当使用UDPLITE协议的时候,校验和必须为8UDPLITE使用的端口与UDP一致。258分片、重组、MTU发现CAPWAP协议在应用层上提供IP报文的分配和重组服务,由于使用隧道机制,报文分片中间的传输媒介来说是透明的。因此可以在任何网络架构(防火墙,NAT等)上使用CAPWAP协议。CAPWAP实现的分片机制也有局限和不足,协议RFC4963中详细描述。CAPWAP执行MTU发现来避免分片。一旦WTP发现AC,且想要与这个AC建立一个CAPWAP会话,它必须执行一个PATHMTUPMTU发现。IPV4的PMTU发现过程在RFC1191中详细描述。IPV6使用RFC4821。259报文格式CAPWAP协议可靠机制要求消息必须成对,由请求和响应组成。所有的请求消息的消息类型值都为奇数,所有的响应消息类型值都为偶数。如果WTP或者AC接收到了一个不认识的消息,消息类型是奇数,那么会将消息类型值加一,然后响应给发送者,并且在响应中带有“不认识的消息类型”元素。如果不认识的消息类型为偶数,那么这个消息将会被忽略。2591UDPLITE协议的简单介绍UDPLITE协议更加适应于网络的差错率比较大,但是应用对轻微差错不敏感的情况,例如实时视频的播放等。那么它与传统的UDP协议有什么不同呢传统的UDP协议是对其载荷(PAYLOAD)进行完整的校验的,如果其中的一些位(哪怕只有一位)发生了变化,那么整个数据包都有可能被丢弃,在某些情况下,丢掉这个包的代价是非常大的,尤其当包比较大的时候。在UDPLITE协议中,一个数据包到底需不需要对其载荷进行校验,或者是校验多少位都是由用户控制的,并且UDPLITE协议就是用UDP协议的LENGTH字段来表示其CHECKSUMCOVERAGE的,所以当UDPLITE协议的CHECKSUMCOVERAGE字段等于整个UDP数据包(包括UDP头和载荷)的长度时,UDPLITE产生的包也将和传统的UDP包一模一样。事实上,LINUX对UDPLITE协议的支持也是通过在原来的UDP协议的基础上添加了一个SETSOCKOPT选项来实现控制发送和接受的CHECKSUMCOVERAGE的。2592CAPWAP报文的简单介绍CAPWAP控制协议包括两个永远不会被DTLS保护的消息DISCOVERYREQUEST和DISCOVERYRESPONSE。报文格式如下其余的CAPWAP控制协议报文必须被DTLS协议加密,因此包括一个CAPWAPDTLSHEADER。CAPWAP协议对数据报文的DTLS加密是可选的。CAPWAP头部格式UDP头所有的CAPWAP报文都被封装在UDP或者UDPLITE(IPV6)中。CAPWAPDTLS头所有的被DTLS加密的CAPWAP报文都有该头部前缀。DTLS头DTLS头部为CAPWAP的载荷提供认证和加密服务。DTLS在RFC4347中定义。CAPWAP头所有的CAPWAP协议报文都用同一个头部,该头部位于CAPWAP预判码或者DTLS头之后。无线载荷包含无线载荷的CAPWAP协议报文称为CAPWAP数据报文。CAPWAP协议并没有对无线载荷的格式做强制要求,而是由无线协议标准决定。控制头CAPWAP协议包含一个信号元件,称为CAPWAP控制协议。所有的CAPWAP控制报文都包含一个控制头,CAPWAP数据报文则不包含该头部。消息元素CAPWAP控制报

温馨提示

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

评论

0/150

提交评论