capwap协议特性.docx

上传人:b****8 文档编号:9357126 上传时间:2023-02-04 格式:DOCX 页数:34 大小:101.12KB
下载 相关 举报
capwap协议特性.docx_第1页
第1页 / 共34页
capwap协议特性.docx_第2页
第2页 / 共34页
capwap协议特性.docx_第3页
第3页 / 共34页
capwap协议特性.docx_第4页
第4页 / 共34页
capwap协议特性.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

capwap协议特性.docx

《capwap协议特性.docx》由会员分享,可在线阅读,更多相关《capwap协议特性.docx(34页珍藏版)》请在冰豆网上搜索。

capwap协议特性.docx

capwap协议特性

Capwap协议特性草案10学习理解

一.名词解释

1.AccessController(AC):

为WTP提供在数据平面、控制平面和管理平面上接入集中式结构网络的实体

2.CAPWAPControlChannel:

一个双向的数据流。

由AC的IP、WTP的IP、AC的控制埠、WTP的控制端口以及传输层协议(UDP或者UDP-Lite)这个五元组决定,负责收发CAPWAP控制报文。

3.CAPWAPDataChannel:

一个双向的数据流。

由AC的IP、WTP的IP、AC的控制埠、WTP的控制端口以及传输层协议(UDP或者UDP-Lite)这个五元组决定,负责收发CAPWAP数据报文。

4.Station(STA):

包含连接到无线介质接口的设备

5.WirelessTerminationPoint(WTP):

包含射频天线和无线物理介质,可以发送和接受无线接入网的基站流量的设备。

二.协议综述

CAPWAP协议主要是通过特定的传输机制对AC和WTP之间的通讯进行定义。

CAPWAP协议目前仍然是一个草案,没有确定的规则。

从概念上说,CAPWAP其实是一类管理功能的综合体现,这些功能包括:

1.必须实现的:

Ø逻辑组管理:

将WTP按照BSSID分成组进行管理和控制

Ø流量分类:

将控制信息和数据报文分开处理

Ø无线终端透明:

WTP不需要知道CAPWAP协议的存在,也不需要认识

Ø配置一致性:

CAPWAP应该能交换WTP和AC之间的常规信息,比如WTP的运行状态,内存使用率等,这样AC可以很好的了解诸多WTP当前情况,进行管理

Ø固件触发:

AC必须支持触发和更新WTP的固件

Ø监控和交换系统范围内的资源状态:

CAPWAP应该允许交换WLAN的信息,比如统计数据、拥塞状况等。

Ø资源控制:

CAPWAP应该可以将802.11eQoS优先级映像到等价的在交换上应用的QoS优先级

Ø协议安全性:

CAPWAP必须支持WTP和AC之间的相互认证,比如保证信息交互是完整和保密的,不可阻止使用非对称的认证。

Ø系统范围的安全性:

CAPWAP不允许WLAN之外的实体进入系统

Ø802.11i支持

Ø互操作:

CAPWAP必须支持对Split-Mac和Local-Mac两种模式的WTP进行协商

Ø协定特性:

所有供货商实现CAPWAP的时候,都必须按照特性来,以方便不同厂商之间产品的相互操作

Ø供货商独立性:

对WTP硬件修改,应该不会对AC端使用产生影响

Ø供货商灵活性:

CAPWAP不应该限制WTP供货商使用Split-Mac或者Local-Mac,而是应该都支持

ØNAT穿越

CAPWAP的控制报文,也许还包括数据报文,都是用数据传输层安全协议DTLS保障的。

CAPWAP协议的传输层包含了两种载荷:

控制信息和数据信息。

数据信息封装了要转发的无线帧。

控制信息则是在一个WTP和AC之间的管理信息的交换。

数据信息和控制信息,使用不同的UDP埠,可以分片。

CAPWAP协议开始会有个发现的过程。

WTP发送一个DiscoveryRequest信息,AC收到之后就会响应一个DiscoveryResponse信息。

收到DR信息之后,WTP会试图和AC建立一个DTLS的会话session。

WTP和AC建立完DTLSsession之后,双方的版本信息统一,并开始交换配置信息。

WTP会收到实现的设置,完毕就可以工作了。

WTP开始工作之后呢,AC和WTP之间就可以依靠CAPWAP协议,把无线帧进行封装。

CAPWAP提供一些命令,可以让AC传给WTP,以便于对连接到WTP的Station进行管理。

也许会包括一些WTP本地数据结构的创建信息,或者WTP和Station之间通讯的一个统计。

同时,AC也可以得到WTP收集到的一些统计信息。

AC和WTP之间,会有一个Keeplive机制,一旦WTP失去了和AC的联系,它会试图寻找一个新的AC。

2.1CAPWAPSession建立过程

========================

WTPAC

========================

[-----------Beginoptionaldiscovery------------]

DiscoverRequest

------------------------------------>

DiscoverResponse

<------------------------------------

[-----------Endoptionaldiscovery------------]

(--BeginDTLShandshake--)

ClientHello

------------------------------------>

HelloVerifyRequest(withcookie)

<------------------------------------

ClientHello(withcookie)

------------------------------------>

ServerHello,

Certificate,

ServerHelloDone*

<------------------------------------

(--WTPcalloutforACauthorization--)

Certificate(optional),

ClientKeyExchange,

CertificateVerify(optional),

ChangeCipherSpec,

Finished*

------------------------------------

(--ACcalloutforWTPauthorization--)

ChangeCipherSpec,

Finished*

<------------------------------------

(--DTLSsessionisestablishednow--)

JoinRequest

------------------------------------>

JoinResponse

<------------------------------------

[--JoinStateComplete--]

(--Assumeimageisuptodate--)

ConfigurationStatusRequest

------------------------------------>

ConfigurationStatusResponse

<------------------------------------

[--ConfigureStateComplete--]

ChangeStateEventRequest

------------------------------------>

ChangeStateEventResponse

<------------------------------------

[--DataCheckStateComplete--]

(--EnterRUNstate--)

EchoRequest

------------------------------------>

EchoResponse

<------------------------------------

:

:

EventRequest

------------------------------------>

EventResponse

<------------------------------------

:

状态机变迁(借用别人的精美图片了)

附带其精妙的解说:

●在一个WTP初始化完成后,它就会从Idle状态Discovery状态:

这是WTP就会发送一个DiscoveryRequest信息来发现AC,这个消息的帧格式为

IPHeader

UDPHeader

CAPWAPHdr

ControlHdr

Messageelement

在这个CAPWAP控制信息包里,它缺少相应的DTLS保护,无法确保信息包的认证和加密,所以这样的CAPWAP控制信息包的组帧方式只有用在前期的Discovery状态的请求和回应里

但是我们如何得知AC的IP地址呢?

CAPWAP为我们提供了四种机制:

1、在WTP的内存中存储了一个ACIP的静态分配

2、通过设置DHCP服务器作一个AC的DHCP,通过它向WTP发送AC的IP列表

3、为AC做一个DNS的注册,让WTP通过域名解析获得AC的地址

4、在发现一个AC的情况下,AC在回复响应时回附带一个ACIPList,向WTP提供更多的可用AC的IP信息

WTP初始化完成后,进入Discovery状态,同时开启DiscoveryInterval定时器,设DiscoveryCount计数器为0,WTP在等待一个小于MaxDiscoveryInterval的随机时间后发送了DiscoveryRequest信息,其每发送一个这样信息的都要等待一个小于MaxDiscoveryInterval的随机时间。

如果在发送了最大数量的DiscoveryRequest信息后仍没有收到Response信息,那么WTP就要进入Sulking状态,在该状态它要等待一个SilentInterval的时间间隔后才能重新发送Request信息,而且在此期间收到的信息全部忽略

当AC收到一个DiscoveryRequest信息时,它会向该WTP发送一个DiscoveryResponse信息,WTP收到该响应信息后必须在等待一个不小于DiscoveryInterval的时间来接收其他的Response信息,当DiscoveryInterval定时器到期后就会进入DTLS-Init并选择它收到Response信息的AC的其中一个作为主AC,并发送DTLS握手信息

●接着WTP就从Discovery状态DTLSsetup来创建一个安全的DTLSsession,WTP这时会调用DTLSStart命令开始与选择的AC创建DTLS连接。

与此同时AC则会调用DTLSListen命令,该命令来通知DTLS协议栈监听一个接入的session

如果DTLS建立失败WTP就会收到一个DTLSEstablishFail的通知,该错误通知会中止DTLS的建立,这时WTP就会从DTLSsetupIdle状态。

●如果DTLSsession建立成功,那么就会从DTLSsetupAuthorize状态,这个状态是在DTLS连接建立下,DTLS协议栈需要后续session建立的授权的时候发生。

在这个阶段,WTP和AC都会收到DTLSPeerAuthorize通知,这是他们会执行一个对对方信任的授权检查。

●如果WTP和AC都放弃检查或者都通过对方的授权检查是他们会调用DTLSAccept命令向DTLS发送一个session可以建立的通知,这时AuthorzeDTLSConnect状态。

但是如果在WTP或AC中有任何一方无法对对方的信任状做授权,都会调用DTLSAbortSession命令通知DTLS协议栈终止session,这时AuthorizeDTLSTeardown状态

●当DTLSSession建立成功后,WTP和AC就会收到一个DTLSEstablished通知表明DTLSsession建立成功,同时它们会将FailedDTLSSessionCount计数器置0,同时AC会开启WaitJoin定时器,这时DTLSConnectJoin状态,在Join状态,WTP发送JoinRequest信息来请求AC提供服务,当AC收到JoinRequest后就会对JoinRequest里的信息进行处理,如果信息无误,他就会清除WaitJion定时器并发送给WTP一个JoinResponse的成功说明,并进入Configure状态,如果在WaitJoin期满后AC就会中断握手,调用DTLSAbort命令来终止session

●当WTP与AC的session建立成功后就要双方就要对配置信息进行交互,这就是Joinconfigure状态。

在configure状态时,WTP会将自己的配置状态信息提交给AC,信息中带有WTP现有功能的描述,当AC收到此信息后就会给WTP发送配置状态响应信息,AC用这个信息来覆盖掉WTP请求配置,对WTP做配置管理。

接着WTP收到该响应信息后就会做配置的相应修改,并通过ChangStateEventRequest向AC报告对WTPRadio的操作状态的更新并确认AC提供的配置已经应用成功。

AC在收到此请求后回复一个ChangStateEventResponse,当这一切成功后,这时DataCheckRun状态,WTP和AC的交互开始真正运作起来

在CAPWAP中有两种信息数据:

控制信息和数据信息

在信息数据里又分两种:

●第一种控制信息包由于是在DTLS建立前使用的,没有任何安全保护机制,只用来做DiscoveryRequest/Response

其帧格式:

IPHeader

UDPHeader

CAPWAPHdr

ControlHdr

Messageelement

●第二种是在DTLS建立后,有了DTLS协议保护的信息包帧格式:

IPHdr

UDPHdr

CAPWAPDTLSHdr

DTLSHdr

CAPWAPHeader

ControlHeader

MessageElement

DTLSTrLr

|-------------------------------authenticated-----------------------------|

|---------------------------encryted------------------------------------|

在数据信息中也分为两种帧格式,根据AC的策略选用不同的格式

●CAPWAP纯文本数据包:

IPHeader

UDPHeader

CAPWAPHeader

Wirelesspayload

●基于DTLS安全CAPWAP数据报;

IPHdr

UDPHdr

CAPWAPDTLSHdr

DTLSHdr

CAPWAPHeader

WirelessPayload

DTLSTrLr

|-------------------------------authenticated----------------------|

|-----------------------encryted---------------------------------|

在数据报中,我们要考虑CAPWAP协议和IEEE802.11的绑定相关问题:

●分离MAC问题:

就是要将802.11的MAC功能做分割,实时功能由WTP处理,而所有MAC管理功能的数据交由AC处理:

FunctionLocation

DistributionServiceAC

IntegrationServiceAC

BeaconGenerationWTP

ProbeResponseGenerationWTP

PowerMgmt/PacketBufferingWTP

Fragmentation/DefragmentationWTP/AC

Assoc/Disassoc/ReassocAC

IEEE802.11QOS

ClassifyingAC

SchedulingWTP/AC

QueuingWTP

IEEE802.11RSN

IEEE802.1X/EAPAC

RSNAKeyManagementAC

IEEE802.11Encryption/DecryptionWTP/AC

下图可以对整个的MAC功能分配做一个说明:

ClientWTPAC

Beacon

<-----------------------------

ProbeRequest

----------------------------(-)------------------------->

ProbeResponse

<-----------------------------

802.11AUTH/Association

<--------------------------------------------------------->

StationConfigurationRequest

[AddStation(StationMessage

Elements)]

<-------------------------->

802.1XAuthentication&802.11KeyExchange

<--------------------------------------------------------->

StationConfigurationRequest

[AddStation(AES-CCMP,

PTK=x)]

<-------------------------->

802.11ActionFrames

<--------------------------------------------------------->

802.11DATA

(1)

<---------------------------(-)------------------------->

以上说明其实只是状态机的一部分,所有的状态迁移加起来内容非常复杂,有兴趣的可以自己去看这个draft的2.3节。

2.2CAPWAP传输过程概述

CAPWAP的传输,是建立在AC和WTP的一个UDPServer/Client架构上的,可以利用UDP或者UDPLite完成。

后者是个新鲜东西,报文类型是136,在rfc3828中得到定义,可以视为一个轻量级的UDP(LightWeight)。

UDPLite的产生是因为一些应用程序对报文能否到达最为关心,至于报文是否有错并不是最重要的实情。

传统IP报文对出错的检测比较严格,一个报文任何地方出错都会影响校验和,但是UDPLite中定义了一个Checksumcoverage域,用于限定需要做校验和处理的敏感区域,非敏感区域出错,是无所谓的。

实际上,在这个draft中规定,UDPLite在Ipv6的环境中是CAPWAP默认的数据信道方式,如果是Ipv4到Ipv6的网关存在的话,则需要使用UDP了。

AC发现阶段允许WTP知道AC都藏在哪儿,哪些可以用,然后选择一个最好的建立一个CAPWAP连接。

如果WTP上预先配置了AC的信息,那么它可以不用经过这个阶段了。

这个主要是用来动态的发现AC的。

WTP试图找寻AC的时候,就会发送一个DiscoveryRequestMessage报文,这个报文可以是广播(255.255.255.255)或者是多播,也可以是某个AC的单播地址。

如果是Ipv6网络,则使用一个全体AC多播地址。

AC则回应一个单播报文,无视DiscoveryRequest的报文形式。

如果WTP发送的是单播报文到AC,那么有几种可能。

一个是WTP上配置了AC的信息,第二个是利用DHCP的机制发现AC,第三个就是通过DNS解析了。

当然,还有一种情况是某个AC很慷慨的告诉WTP一些候选的AC的Ipv4和Ipv6的地址列表,然后WTP就可以得到更多的选择了。

但是WTP只能按照AC所给的AC列表顺序选择AC,当然WTP会有一定的选择标准,这会用到很多其他的信息。

WTP发现它心仪的AC之后,就要在建立CAPWAP会话之前,进行一个PathMTU发现的行动。

这个是为了DTLS的建立使用的,而其他非DTLS的信息将会根据实际需要进行分片。

WTP会周期性的重新估计一下MTU的值

2.3CAPWAP报文格式

CAPWAP协议报文,包括一个或者多个CAPWAP传输层报文头。

它可以是包含信号的控制报文,也可以是包含用户负荷的数据报文。

CAPWAP的实现,必须能够接收长度为4096的重组报文。

CAPWAP的控制帧包含两个绝对不会被DTLS加密的信息:

发现请求报文和发现回应报文:

CAPWAPControlPacket(DiscoveryRequest/Response):

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

|IP|UDP|CAPWAP|Control|Message|

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

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

其他的控制信息都必须在DTLS保护之下传送的,这样的报文都会包含一个DTLS头部

CAPWAPControlPacket(DTLSSecurityRequired):

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

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

|Hdr|Hdr|DTLSHdr|Hdr|Header|Header|Element(s)|Trlr|+------------------------------------------------------------------+

\----------authenticated-----------/

\-------------encrypted------------/

CAPWAP数据报文的格式如下,和控制报文很像:

CAPWAPPlainTextDataPacket:

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

|IP|UDP|CAPWAP|Wireless|

|Hdr|Hdr|Header|Payload|

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

DTLSSecuredCAPWAPDataPacket:

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

|IP

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1