当前位置:首页>弱电技术>网络通信>什么是无线CAPWAP隧道技术(capwap协议详解)

什么是无线CAPWAP隧道技术(capwap协议详解)

前言

CAPWAP是Control And Provisioning of Wireless Access Points Protocol Specification的缩写,意为无线接入点的控制和配置协议,是无线局域网内最重要的技术之一。很多朋友经常会把CAPWAP协议和IEEE 802.11协议混淆在一起,从全局角度来看,IEEE 802.11协议用来解决STA和AP之间的通信,而CAPWAP协议用来解决AP与AC之间的通信。

什么是无线CAPWAP隧道技术(capwap协议详解)

CAPWAP协议简介

在瘦AP场景下,AP不能单独工作,需要与AC配合使用,因此AP和AC之间需要一个通信协议可以让它们进行互联。CAPWAP协议用于AC对其所关联的AP的集中管理和控制,为AP和AC之间的互通性提供了一个通用封装和传输机制。

CAPWAP协议主要具备以下几个功能:

AP对AC的自动发现;

AP和AC的状态机运行和维护;

AC对AP进行管理、业务配置下发;

STA数据封装CAPWAP隧道进行转发。

CAPWAP协议报文介绍

CAPWAP协议有两种类型的报文:CAPWAP控制报文和数据报文。控制报文主要携带的是信息要素,用于AC对于AP工作参数的配置和CAPWAP隧道的维护;数据报文主要携带终端发送的数据报文,用于传输终端的上层数据。控制报文和数据报文分别传输在不同的UDP端口,控制报文使用端口5246,数据报文使用端口5247。

CAPWAP控制报文

不受DTLS保护的CAPWAP控制报文由CAPWAP前导、CAPWAP首部、控制首部、信息要素组成;受DTLS保护的CAPWAP控制报文由CAPWAP前导、DTLS首部、CAPWAP首部、控制首部、信息要素、DTLS尾部组成。是否受DTLS保护是CAPWAP的可选项, DTLS用于对CAPWAP报文进行加密和验证,提高CAPWAP报文的安全性。锐捷无线设备CAPWAP控制报文DTLS保护默认开启,可在ac-controller模式下通过命令no capwap dtls enable关闭用于故障排查(锐捷设备命令行)。

什么是无线CAPWAP隧道技术(capwap协议详解)

不受DTLS保护的CAPWAP控制报文格式

什么是无线CAPWAP隧道技术(capwap协议详解)

受DTLS保护的CAPWAP控制报文格式

CAPWAP前导中只包含Version和Type两个字段,Version始终为0,Type有两个可选参数0(CAPWAP Header)和1(CAPWAP DTLS Header)。CAPWAP前导的作用是通告其后面跟着的载荷类型是CAPWAP首部还是DTLS首部,即通告该CAPWAP报文是否加密。

什么是无线CAPWAP隧道技术(capwap协议详解)

CAPWAP控制报文中的CAPWAP前导

CAPWAP首部,Header Length指出CAPWAP首部大小;Radio ID用于指出此消息与哪个物理无线电设备关联;Wireless Binding ID用于指出与此无线电设备关联的无线分组的类型;Header Flags标志位目前有六位在用,每一位代表不同含义具体可参考《RFC 5415》;Fragment ID和Fragment Offset用于CAPWAP报文分片时使用。

什么是无线CAPWAP隧道技术(capwap协议详解)

CAPWAP控制报文中的CAPWAP首部

控制首部,Message Type用于表示CAPWAP控制报文的类型,目前有26种类型控制报文,每种类型控制报文的作用不同且携带的信息元素也不同,具体请查看本文最后的附录1《CAPWAP协议控制报文类型汇总解析》;Sequence Number序列号,用于匹配Request报文和Response报文,Response报文中序列号与其要回复的Request报文中的序列号相同;Message Element Length指出其后携带的信息要素的大小;Flags始终为0。

什么是无线CAPWAP隧道技术(capwap协议详解)

CAPWAP控制报文中的控制首部

信息要素载荷是由多个独立的信息要素组成,其中包含的信息要素的类型和数量与CAPWAP控制报文类型有关,每个信息要素由Type、Length、Value及其他字段组成。其中Type指出信息要素的类型,其中1-1023是CAPWAP协议信息要素,1024-2047是IEEE 802.11信息要素,具体请查看本文最后的附录2《CAPWAP协议控制报文消息要素类型汇总解析》。

什么是无线CAPWAP隧道技术(capwap协议详解)

CAPWAP控制报文中的信息要素

CAPWAP数据报文

不受DTLS保护的CAPWAP数据报文由CAPWAP前导、CAPWAP首部、数据报文组成;受DTLS保护的CAPWAP数据报文由CAPWAP前导、DTLS首部、CAPWAP首部、数据报文、DTLS尾部组成。是否受DTLS保护是CAPWAP的可选项, DTLS用于对CAPWAP报文进行加密和验证,提高CAPWAP报文的安全性。锐捷无线设备CAPWAP数据报文DTLS保护默认关闭,可通过命令开启。

什么是无线CAPWAP隧道技术(capwap协议详解)

不受DTLS保护的CAPWAP数据报文格式

什么是无线CAPWAP隧道技术(capwap协议详解)

受DTLS保护的CAPWAP数据报文格式

CAPWAP前导和CAPWAP首部在CAPWAP控制报文中和数据报文中格式封装相同此处不在赘述。

什么是无线CAPWAP隧道技术(capwap协议详解)

CAPWAP数据报文格式

CAPWAP协议状态机介绍

CAPWAP协议状态机由AC和AP使用,运行CAPWAP协议的AC和AP一共存在以下15种状态机,其中AC或AP在每一种状态下仅允许发送和接收特定的信息报文。

CAPWAP状态机 状态含义
Start状态 AP开始和AC会话的初始状态
Idle状态 AP初始化完成后的状态
Discovery状态 AP进入发现AC的状态,如果AP指定AC,这个状态可以跳过
DTLS Setup状态 DTLS会话建立
Authorize状态 DTLS会话证书认证
DTLS Connect状态 认证通过后进行连接状态
Join状态 会话连接建立完成
Image Date状态 AP从AC下载一个可执行的版本文件,AP可以进行版本升级,升级完会重启,DTLS会话因此断开
Configure状态 AP从AC获取配置
Data Check状态 AP和AC进行消息交换,确认配置
Run状态 进入正常的运行状态
Reset状态 重启设备
Sulking状态 AP不能和AC进行通信切换到该状态,可以进入Discovery状态重新发现AC
DTLS Teardown状态 关闭DTLS会话
Dead状态 完全清除状态

CAPWAP协议AC和AP的状态机

由于CAPWAP协议使用DTLS,CAPWAP状态机的某些指令会触发DTLS状态机中的状态转换,而DTLS状态机中的某些通知会触发CAPWAP状态机中的状态转换。所以如下图所示CAPWAP状态转换情况较多。

什么是无线CAPWAP隧道技术(capwap协议详解)

CAPWAP完整状态机转换图

CAPWAP隧道建立过程介绍

本小节结合报文交互和状态机变化介绍CAPWAP隧道建立过程,读者在阅读时可结合上两小节CAPWAP协议报文介绍和CAPWAP协议状态机介绍共同理解。

什么是无线CAPWAP隧道技术(capwap协议详解)

CAPWAP隧道建立过程中报文交互和状态机变化

AP启动后状态机处于Idle状态,AP通过多种途径(IPv4单播、IPv4广播、IPv4组播、IPv6组播)明文发送Discovery Request报文,用于发现网络中可用的AC,并提供自己的基本信息给AC。AC收到Discovery Request报文后,使用Discovery Response报文回应,将自己支持的服务告诉给请求AP。因为此时DTLS隧道还未建立,所以Discovery Request报文和Discovery Response报文是使用明文交互的。

随后AP和AC进行DTLS验证建立DTLS加密隧道,隧道建立成功后,之后交互的CAPWAP控制报文全部通过DTLS隧道加密保护,是否受DTLS保护是可选的。

DTLS隧道建立后,AP发出Join Request报文用于申请加入AC。AC收到Join Request报文并回应Join Response报文答复AP是否同意AP加入。

Join Response报文中包括Image Identifier消息要素,指出AC要求AP运行的软件版本。AP收到Join Response报文后,对比当前使用版本和AC要求的版本是否一致,若版本一致状态机进入Configure状态。若版本不一致状态机进入Image Data状态,AP与AC交互Image Data Request报文和Image Data Response报文进行版本传输并升级,升级后AP进行重启,重新与AC进行CAPWAP隧道建立。

AP状态机变为Configure状态后,AP发出Config Status Request报文,用于向AC请求配置文件下发,AC收到Config Status Request报文后回应Config Status Response报文,通知AP按要求进行配置。

AC发送Config Status Response报文下发配置后还需要确认配置是否在AP上执行成功,AP收到Config Status Response后,状态机进入Data Check状态, 并发送Change State Event Request报文报告配置执行情况,AC收到Change State Event Request报文后回应Change State Event Response报文,状态机变为Run状态,至此AP与AC的CAPWAP隧道建立成功。

什么是无线CAPWAP隧道技术(capwap协议详解)

不受DTLS保护的CAPWAP隧道建立过程报文交互

总结

相信读完以上内容,大家对CAPWAP协议的基础理论知识和CAPWAP隧道建立的过程,有了一定的了解。后续的实践篇,作者将从运维的角度,分析在日常工作中最常遇到的CAPWAP隧道无法建立问题的解决思路,敬请期待。附录1:CAPWAP协议控制报文类型汇总解析

CAPWAP控制报文类型 Message Type 作用
Discovery Request 1 AP发送,用于发现网络中可用的AC,并提供自己的基本信息给AC
Discovery Response 2 AC发送,将自己支持的服务告诉给前来请求的AP
Join Request 3 AP发送,用于申请加入AC
Join Response 4 AC发送,用于对AP加入申请的响应
Configuration Status Request 5 AP发送,用于向AC请求配置文件下发
Configuration Status Response 6 AC发送,用于将自己的配置数据同步给AP
Configuration Update Request 7 AC发送,用于同步AP配置更新
Configuration Update Response 8 AP发送,用于告诉AC更新配置文件的执行情况
WTP Event Request 9 AP用来发送信息给AC,WTP Event Request可能是阶段性发送或者是作为一个AP同步事件的响应
WTP Event Response 10 响应WTP Event Request
Change State Event Request 11 当AP收到来自AC的Configuration Status Response,AP使用Change State Event Request来提供Radio的当前状态,确认AC提供的配置已经成功应用;在Run状态下,AP发送Change State Event Request来告诉AC,AP的Radio发生了意料之外的改变
Change State Event Response 12 AC发送,响应Change State Event Request
Echo Request 13 AP和AC之间发送,在控制报文没有发送的时候,用于CAPWAP隧道的维系
Echo Response 14 AP和AC之间响应,在控制报文没有发送的时候,用于CAPWAP隧道的维系
Image Data Request 15 AP发送,用于镜像文件的申请
Image Data Response 16 AC发送,用于对AP镜像文件申请的响应
Reset Request 17 AP重启请求
Reset Response 18 AC对AP重启请求的响应
Primary Discovery Request 19 AP发送,判断他首选(或配置的)AC是否可用或者执行一个Path MTU Discovery
Primary Discovery Response 20 AC发送,告诉AP自己当前可用与支持的服务
Data Transfer Request 21 AP将自己的调试信息发送给AC
Data Transfer Response 22 AC对Data Transfer Request消息的响应
Clear Configuration Request 23 AC发送,用于告诉AP将自己的配置恢复至出厂默认值
Clear Configuration Response 24 AP发送,恢复出厂默认配置之后,发送给AC确认
Station Configuration Request 25 AC用于创建、修改、删除AP上的Station会话状态
Station Configuration Response 26 响应Station Configuration Request

附录2:CAPWAP协议控制报文消息要素类型汇总解析

CAPWAP控制报文信息要素类型 Type 作用
AC Descriptor 1 AC描述符消息要素由AC用于通知它目前的状态
AC IPv4 List 2 AC IPv4列表消息要素用于为AP配置可供AP加入的最新AC列表
AC IPv6 List 3 AC IPv6列表消息要素用于为AP配置可供AP加入的最新AC列表
AC Name 4 AC名称消息要素包含以UTF-8格式表示的AC身份
AC Name with Priority 5 带优先权的AC名称消息要素的AC Name由AC发送给AP,以便配置优先的AC
AC Timestamp 6 AC时间戳消息要素由AC发送,用于同步AP时钟
Add MAC Access Control List (ACL) Entry 7 添加MAC ACL条目消息要素由AC用于在AP上添加MAC ACL列表条目,确保AP不再为该消息中给出的MAC地址提供服务
Add Station 8 添加终端消息要素由AC用于通知AP它应当转发终端的流量
CAPWAP Control IPv4 Address 10 CAPWAP控制IPv4地址消息要素由AC在Discovery处理期间发送给AP,以及由AC用于提供该AC上的可用接口和提供目前连接的AP数量
CAPWAP Control IPv6 Address 11 CAPWAP控制IPv6地址消息要素由AC在Discovery处理期间发送给AP,以及由AC用于提供该AC上的可用接口和提供目前连接的AP数量
CAPWAP Timers 12 CAPWAP计时器消息要素由AC用于配置AP上的CAPWAP计时器
Data Transfer Data 13 数据传输数据消息要素由AP用于提供信息给AC用于调试
Data Transfer Mode 14 数据传输模式消息要素由AP用于指出它正在发送到AC用于调试的数据传输信息类型
Decryption Error Report 15 解密错误报告消息要素的值由AP用于通知解密出错的AC,这些错误是自上次报告以来发生的
Decryption Error Report Period 16 解密错误报告周期消息要素值由AC用于通知AP,它应当多长时间发送一次解密错误报告消息
Delete MAC ACL Entry 17 删除MAC ACL条目消息要素由AC用于在AP上删除MAC ACL条目,确保AP向在该消息中给出的MAC地址提供服务
Delete Station 18 删除终端消息要素由AC用于通知AP,它不应当再对特定终端提供服务。
Discovery Type 20 发现类型消息要素由AP用于简要说明,它是如何最终知道存在一个AC,它正在向该AC发送Discovery Request消息
Duplicate IPv4 Address 21 重复的IPv4地址消息要素由AP用于通知AC,该AP已经检测到另一台设备,该设备使用的IP地址与此AP目前正在使用的相同
Duplicate IPv6 Address 22 重复的IPv6地址消息要素由AP用于通知AC,该AP已经检测到另一台设备,该设备使用的IP地址与此AP目前正在使用的相同
Idle Timeout 23 空闲超时消息要素由AC发送给AP,向其提供Idle Timeout值,AP在它所有激活的站中应当强制执行此值
Image Data 24 映像数据消息要素出现在AC发送的Image Data Request消息中
Image Identifier 25 映像标识符消息要素由AC发送给AP,指出预期将在AP上运行的激活软件版本
Image Information 26 映像信息消息要素出现在由AC发送给AP的Image Data Response 消息中
Initiate Download 27 启动下载消息要素由AP用于通知AC,AC应当发起固件更新
Location Data 28 位置数据消息要素是字节长度可变UTF-8编码串,包含用户定义的位置信息
Maximum Message Length 29 最大消息长度消息要素由AP包括在Join Request消息中,用于告诉AC该AP支持的最大CAPWAP消息长度
CAPWAP Local IPv4 Address 30 CAPWAP本地IPv4地址消息要素由AP在Join Request中发送,或者由AC在Join Response中发送
Radio Administrative State 31 无线电设备管理状态消息要素用于传递特定无线电设备的状态
Radio Operational State 32 无线电设备运行状态消息要素由AP发送给AC,传递无线电设备的运行状态
Result Code 33 结果代码消息要素是32位整数值,包括Request消息结果,该 Request消息对应Response消息中含有的序列号
Returned Message Element 34 返回的消息要素由AP在Change State Event Request消息中发送,用于通知AC它不能在本地使用Configuration Status Response中的哪些消息要素
Session ID 35 会话ID消息要素值包含随机产生的无符号128位整数
Statistics Timer 36 统计量计时器消息要素值由AC用于告诉AP,AP将以此频次收到的它盼望的最新统计数据
Vendor Specific Payload 37 特定供应商净荷消息要素用于在AP和AC间传递特定供应商信息
WTP Board Data 38 AP主板数据消息要素由AP发送给AC,包括目前硬件信息
WTP Descriptor 39 AP描述符消息要素由AP用于传递它目前的硬件和软件(固件)配置
WTP Fallback 40 AP回退消息要素由AC发送给AP,用于AP检测到它的首选AC时,开启或关闭自动CAPWAP回退
WTP Frame Tunnel Mode 41 AP帧隧道模式消息要素使AP能够告诉AC,它支持的隧道化运行模式
WTP MAC Type 44 AP MAC类型消息要素使AP能够将它的运行模式告诉AC
WTP Name 45 AP名称消息要素是可变长度UTF-8编码字节串
WTP Radio Statistics 47 AP无线电设备统计量消息要素由AP发送给AC,传递关于无线电设备行为的统计数据,以及重新设置AP无线电设备的原因
WTP Reboot Statistics 48 AP重启统计量消息要素由AP发送给AC,传递AP发生重新启动的原因
WTP Static IP Address Information 49 AP静态IP地址信息消息要素由AC用于在AP上配置或删除先前配置的静态IP地址
CAPWAP Local IPv6 Address 50 CAPWAP本地IPv6地址消息要素由AP在Join Request中发送,或者由AC在Join Response中发送
CAPWAP Transport Protocol 51 CAPWAP传输协议消息要素如果CAPWAP在IPv6上运行,可以使用UDP-Lite或UDP传输
MTU Discovery Padding 52 MTU发现填充消息要素用作填充,执行MTU发现,必须包含值为0xFF,长度任意的八位位组
ECN Support 53 ECN支持消息要素由AP和AC发送,指出它们支持Explicit Congestion Notification (ECN)位
IEEE 802.11 Add WLAN 1024 由AC发往AP,由AC用来在AP上定义一个新的WLAN
IEEE 802.11 Antenna 1025 由AP向AC通信来提供天线可用信息,同时AC可以使用该消息元素来重新配置AP的天线
IEEE 802.11 Assigned WTP BSSID 1026 是AP在IEEE 802.11 WLAN Configuration Request报文中含有IEEE 802.11 Add WLAN消息元素时进行包含
IEEE 802.11 Delete WLAN 1027 用来告知AP以前建立的一个WLAN被删除
IEEE 802.11 Direct Sequence Control 1028 是一个双向的消息元素,当由AP发送时,包含现在的状态;由AC发送时,AP必须保证AC所提供的值
IEEE 802.11 Information Element 1029 用于传送任何802.11协议中定义的IE。数据字段中里面包含将会存在于IEEE 802.11 MAC管理消息中的原始IE
IEEE 802.11 MAC Operation 1030 由AC发送来设置AP上IEEE 802.11MAC的参数
IEEE 802.11 MIC Countermeasures 1031 由AP发送给AC表明一个MIC失败发生
IEEE 802.11 Multi-Domain Capability 1032 被AC用来告诉AP调整的极限,AC会在每一个频段里发送一个消息元素来表明在该域里面进行调整的范围约束
IEEE 802.11 OFDM Control 1033 是一个双向的消息元素,当由AP发送时,包含当前的状态。当由AC发送时,AP必须支持所接受到的值
IEEE 802.11 Rate Set 1034 由AC发送,包含了所支持的速率
IEEE 802.11 RSNA Error Report From Station 1035 被AP用来向AC发送RSN错误报告,如果没有错误,AP不需要任何报告
IEEE 802.11 Station 1036 伴随着Add Station消息元素,用来从AC向AP发送IEEE 802.11 STA策略,最新的IEEE 802.11消息元素会覆盖之前接受到的任何消息元素
IEEE 802.11 Station QoS Profile 1037 含STA可能用到的最大的IEEE 802.11e优先级标识符
IEEE 802.11 Station Session Key 1038 用于AC决定STA加密必须在AP上执行
IEEE 802.11 Statistics 1039 由AP发送,用来传输自己当前的统计信息
IEEE 802.11 Supported Rates 1040 由AP发送,来表示他支持的速率
IEEE 802.11 Tx Power 1041 当由AP发送时,是Radio的当前功率;当由AC发送时,包含AP必须要支持的功率
IEEE 802.11 Tx Power Level 1042 由AP发送,包含所有支持的不同的功率
IEEE 802.11 Update Station QoS 1043 用来在AP上改变一个指定STA的服务质量策略
IEEE 802.11 Update WLAN 1044 由AC来使用在AP上来定义一个无线局域网
IEEE 802.11 WTP Quality of Service 1045 由AC发向AP,用于通信QOS的配置信息
IEEE 802.11 WTP Radio Configuration 1046 由AC用来在AP上配置一个Radio;或者AP用来发送其Radio配置信息给AC
IEEE 802.11 WTP Radio Fail Alarm Indication 1047 是由AP在检测到一个Radio错误发送给AC
IEEE 802.11 WTP Radio Information 1048 用来为AP里的每个Radio传递Radio信息

本文由 @徒行者 发布于弱电智能网 。

题图来自Unsplash,基于CC0协议

内容观点仅代表作者本人,弱电智能网平台仅提供信息存储空间服务。

如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

文章名称:《什么是无线CAPWAP隧道技术(capwap协议详解)》

文章链接:https://www.ruodian360.com/tech/networking/39113.html

添加微信ydian188免费入群,记得备注“弱电智能网”。

给TA打赏
共{{data.count}}人
人已打赏
网络通信

锐捷推荐的几个园区网络ARP安全防护方案

2023-1-7 17:04:37

网络通信

一台新的未配置的海康交换机如何进入管理界面?

2023-1-8 3:01:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
搜索