AC的设计和实现
AC的设计和实现
摘要:
本文针对集中式WLAN组网进行分析,研究CAPWAP通信协议。通过对CAPWAP协议分析,介绍了CAPWAP在MIPS单板板上的实现,介绍了AC实现的硬件架构、软件架构、控制面的数据处理流程、转发面的数据处理流程。
AC概述
自1997年IEEE 802.1l标准提出以来,无线局域网(WLAN)从IEEE 802.11a/b/g/n标准的相继提出极大地推动了WLAN发展。随着需求的发展,WLAN已经逐渐大规模发展,传统的WLAN体系(胖AP模式)已经不能够满足大规模组网需求。2005年IETF成立CAPWAP工作组,基于Csico的LAWPP协议,研究大规模WLAN的解决方案以及标准化AP和AC的隧道协议。
无线网络控制器可以实施统一管理和控制,可同时管理多个AP,并为无线接入提供安全策略、QoS 策略、射频管理、无线终端移动管理功能。无线AP支持802.11g(54Mbps/27m)和802.11b(11Mbps/49m),可提供机载天线或扩展天线,扩大覆盖范围。无线网络控制系统软件(WCS)实施整个系统的可视化管理和控制。
CAPWAP工作组对目前主流的WLAN解决方案进行研究后,把WLAN体系结构分成3种:自治式,集中式,分布式。
自主式管理架构是WLAN的传统方式,在这种架构下一个无线终端、Ⅳ1P即完成了AP全部的逻辑功能,可以说,这种架构下WrP与传统的AP的概念是一致的。一方面,802.1l的所有服务都在w印中实现;另一方面,每一个WTP独立完成工作参数的配置。
集中式wLAN是本文的讨论重点,这种架构中出现了访问控制点AC(AccessPoint)。AC能够对多个、n.P进行管理,控制和配置,这正是集中式wLAN的名的原因。集中式WLAN的特点是访问控制点AC与无线终端WTP协调分担802.11的各种服务,并且由AC对多个WTP进行集中配置。
这种架构的局域网能够更好的解决管理,协调配置,射频控制,安全等各方面的问题,使得规模较大的、礼AN更易于管理。
集中式WLAN又可以根据AC和WTP对802.1l功能的分担情况分为三种:分隔型、本地型、远端型。
分布式WLAN又被称为无线网状网或METH。在这种架构中,无线节点自动相互协调组成分布式网络。此外,无线节点可以同时作为AP和路由器,网络中的每个节点都可以发送和接收信号,每个节点都可以与一个或者多个对等节点进行直接通信。在分布式局域网中,数据可以自动重新选择路由。经由通信流量较小的邻近节点进行传输。
Capwap协议介绍
CAPWAP协议定义了AP与AC之间如何通信,为实现AP和AC之间的互通性提供一个通用封装和传输机制。
CAPWAP协议是基于UDP传输层的应用层协议,协议传递的信息分为两类:控制信息和数据信息。控制信息负责AC与WTP之间的管理的交互操作。数据信息是封装后转发的无线数据。两类信息分别使用不同的UDP端口号。CAPWAP信息在WTP与AC间交互时使用DTLS加密机制,保证通信的安全性。
CAPWAP协议支持两种模式的操作:Split MAC和LocalMAC。
Split MAC:在split MAC模式下,所有二层的无线数据和管理帧都会被CAPWAP协议封装,然后在AC和WTP之间交换。
如下图中所示,从一个Station收到的无线帧,会被直接封装,然后转发给AC。
Local MAC:本地转发模式允许数据帧可以用本地桥或者使用802.3的帧形式用隧道转发。在这种情况下,二层无线管理帧在WTP本地已经处理,然后转发给AC。
下图显示了本地转发模式,Station传送的无线帧被封装成802.3数据帧,然后转发给AC。
CAPWAP协议数据承载2类数据信息:数据消息和控制消息。。这两类消息对应WTP与AC通信所使用的两个消息通道:数据通道和控制通道。CAPWAP数据通道和控制通道基于不同的UDP端口建立,且可以被分段,因此数据和控制报文可以超过MTU长度。
在数据通道中,WTP与AC交互的信息是被CAPWAP封装转发的802.11无线数据以及保持该通道的信息。在控制通道中,传递的控制信息既包括Ac对WTP进行工作参数配置的控制信息,又包括对CAPWAP会话进行维护的控制信息。
报文格式
CAPWAP协议规定AC和WTP的通信分为控制报文和数据报文,控制报文只在AC和WTP之间传输,实现配置、管理、监控等功能,数据报文则是将被转发的用户数据帧。2种报文通过不同的UDP端口进行传输,控制报文中除“发现请求,应答”是明文传输以外,其他的强制使用DTLS保护,而数据报文可选择是否使用DTLS。
报文结构如下图:
CAPWAP头部报文格式:
(1)CAPWAP Preamble:8 位预判码。
(2)HLEN:5 位首部长度,指明CAPWAP 首部的长度。
(3)RID:5 位射频标识符,指明此报文的来源射频。
(4)WBID:5 位无线帧标识符, 指明无线帧类型, 有 IEEE802.11, IEEE802.16 和 EPCGlobal 3 种。
(5)T:1 位数据帧标识符,值为 1 时数据帧是由 WBID指明的类型,值为 0 时是 IEEE802.3 数据帧。
(6)F:1 位分组标志,值为 1 时此报文是一个 CAPWAP报文分组,需要和其他分组重组成完成的报文。
(7)L:1 位分组结束标志,值为 1 时此报文是最后一个分组。
(8)W:1 位选项标志,值为 1 时存在 Wireless Specific Information 选项。
(9)M:1 位选项标志,值为 1 时存在 Radio MAC Address选项。
(10)K:1 位存活标志,指明此报文用于保持连接存活,不能携带用户数据。
(11)Flags:3 位预留标志。
(12)Fragment ID:16 位分组标识符,识别不同的报文分组,ID 相同的分组属于同一个CAPWAP 报文。
(13)Fragment Offset:13 位分组位移,各分组在该CAPWAP 报文中的位置。
(14)Reserved:3 位预留码。
(15)Radio MAC Address:32 位射频 MAC 地址,不足32 位以全 0 填充。指明报文来源射频的 MAC 地址;
(16)Wireless Specific Information:32 位特殊无线信息,不足 32 位以全 0 填充; (17)Payload:数据报文是用户数据,控制报文则是控制消息;
组网方式
AC的连接网络可以划分为2种不同的组网方式:
AC为网关和AC为L2设备
硬件架构
这里不详细描述,容易分析出公司产品。
软件架构:
AC通过层次化、模块化的系统架构建立简单的
CLI:命令行界面访问,通过界面命令,访问AC Shell触发内部访问;
SNMP:SNMP软件通过AC Shell进行AC内部访问
TR069:TR069软件访问,通过ACShell进行AC内部访问;
WEB:WEB接入,通过AC Shell进行AC内部访问;
AAA认证:验证用户的身份与可使用的网络服务;授权(Authorization):依据认证结果开放网络服务给用户;计帐(Accounting):记录用户对各种网络服务的用量,并提供给计费系统;
Radius:Radius认证;
MAC认证:MAC接入认证主要为客户端以自己的MAC地址作为身份凭据到设备端进行认证;
Portal认证:即WEB认证,是一种三层认证方式用户通过主动访问位于WEB服务器上的认证页面(主动认证),或用户试图通过HTTP访问其他外网被强制重定向到WEB认证页面后(强制认证),输入用户帐号信息,提交WEB页面后,WEB服务器获取用户帐号信息。
组播控制:二层组播业务控制,实现二层组播的IGMP Snooping业务;
DHCP地址管理与分配:IP地址分配管理;
MAC管理:二层MAC地址管理;
VLAN管理:二层Vlan管理;
FIB管理:IP地址管理;
WLAN业务管理:WLAN的业务管理模块,提供AP业务、STA业务的处理;
WLAN安全管理:WLAN安全管理模块,提供WLAN中的安全处理,包括物理地址(MAC)过滤、服务区标识符(SSID)匹配、有线对等保密(WEP)、端口访问控制技术(IEEE802.1x)、WPA(Wi-Fi Protected Access)、IEEE 802.11i等;
WLAN射频管理:提供AP射频管理功能;
AP设备管理:提供接入AP的管理功能;
CAPWAP管理:CAPWAP隧道管理,提供隧道建立和维护、隧道控制管理功能;
WLAN QOS管理:组要处理WMM QOS处理;
软件管理:版本加载,升级;
WLAN接入:STA接入管理;
STA管理:接入完成的STA的管理,如接入STA的MAC地址管理等;
根据上图WLAN处理模块为核心建立一个层次化的架构,该架构将CAPWAP的控制通道与数据通道分成2部分。控制通道的部分的处理,完成AP、STA的接入、安全协商、认证、流量统计等功能;转发部分完成数据通道部分的处理,数据通道的数据直接在转发模块完成,不需要CAPWAP隧道控制面进行处理,直接在转发模块完成后,转发到相应的出端口处理。
AC处理过程
AP接入过程
1、预先在无线控制器上配置AP的配置信息,在DHCP server上配置域名,在DNS server上配置无线控制器的域名对应的IP地址,其中无线控制器的域名和用户在DHCP Server上配置的域名相同。
2、AP启动以后会通过DHCP获取获取IP地址、DNS server、域名。
3、AP发出二层广播的发现请求报文试图联系一个无线控制器。
4、如果长时间没有响应AP会认为在自己相同的子网内没有合适的无线控制器可以接入,AP会从DNS server获取相应的IP地址,AP向该IP地址发送发现请求。
5、接收到发现请求报文的无线控制器会检查该AP是否有接入本机的权限,如果有则回应发现响应。
6、无线控制器和AP间建立CAPWAP隧道 。
WLAN用户接入过程
WLAN客户端有两种方式可以发现WLAN服务,目前SPU的WLAN同时支持这两种方式:
服务发现成功后进入链路认证过程。
当前802.11的链路认证支持两种认证方式:开放认证(Open System Authentication)和Shared-Key认证(Shared Key Authentication)。两种认证方式都是在IEEE802.11中定义,802.11链路认证通过Authentication报文实现。
其中开放认证其实是不认证、不加密,只要WLAN服务端支持该认证方式,WLAN客户端就可以链路认证成功。
Shared Key认证是指客户端和服务端配置相同的共享密钥,WLAN服务端在链路认证过程验证两边的密钥配置是否相同,如果一致,则认证成功,否则认证失败。
终端关联过程实质上是链路服务协商的过程。完成了802.11的链路认证后,WLAN客户端会继续发起802.11链路服务协商,具体的协商通过Association报文或者Re-association报文实现。
在WLAN服务发现过程中,WLAN客户端已经获得了当前服务的配置和参数(WLAN服务端会在Beacon和Probe Response报文中携带,例如接入认证算法以及加密密钥)。WLAN客户端在发起的Association或者Re-association请求时,会携带WLAN客户端自身的各种参数,以及根据服务配置选择的各种参数(主要包括支持的速率,支持的信道,支持的QoS的能力,以及选择的接入认证和加密算法)。
WLAN客户端和WLAN服务端成功完成链路服务协商,表明两个设备成功建立了802.11链路。对于没有使能接入认证的服务,客户端已经可以访问WLAN网络;如果WLAN服务使能了接入认证,则WLAN服务端会发起对客户端的接入认证。
用户接入认证实现了对接入用户的身份认证,为网络服务提供了安全保护。SPU接入认证主要有802.1X认证、MAC认证以及 Portal认证。其中802.1x接入认证、MAC接入认证、Portal认证可以支持对有线用户和WLAN无线接入用户进行身份认证。
WLAN服务应用中,对于WPA(Wi-FiProtected Access)用户或者WPA2用户需要进行EAPOL-Key密钥协商。根据WLAN协议服务定义,对于WPA服务,需要和802.1x接入认证以及PSK接入认证配合使用:在802.11链路协商的过程中,可以确定用户使用的接入认证算法;并且在链路协商成功后触发对用户的接入认证;随后需要为该接入用户的协商密钥;之后WLAN客户端才可以访问WLAN网络。
密钥协商为数据安全提供有力保障,为了保证WLAN数据的安全,IEEE802.11i和IEEE 802.1X定义了EAPOL-Key密钥协商机制(也称4-Way Handshake),WLAN就是用该机制实现WLAN服务端和WLAN客户端的密钥协商,协商出来的密钥将作为802.11数据传输过程中的加密/解密密钥。
对于支持WPA和RSN(robustsecurity network)服务的WLAN,需要进行EAPOL-Key密钥协商。密钥协商过程在逻辑上可以看作接入认证的一部分,所以只有在EAPOL-Key密钥协商成功以后,接入认证才会打开端口,允许用户的报文通过。
WLAN密钥协商主要包括四次握手密钥协商和组密钥协商过程,这两种密钥协商都通过EAPOL-Key报文协商实现。WLAN客户端和WLAN服务端使用四次握手机制协商该客户端的单播数据报文使用的密钥,而WLAN服务端可以通过组密钥协商过程将广播和组播使用的密钥通知所有的WLAN客户端。
数据转发流程
在多核CPU中,控制核与转发核也是分离的,在我们的2个CPU中,一个主CPU中的主核作为控制核,其他的核作为转发核进行数据的转发。数据转发核进行快速的数据转发处理,对于是本机的控制报文发送给控制核进行相应协议处理。控制核所有接收的报文来自于转发核,发送报文也发送给转发核发送到相应的端口。
二层处理:
接收到的以太报文,检查报文的合法性,如源MAC地址正确、报文的类型正确等;检测完成之后,判断报文目的MAC地址是否单播报文,如果不是单播报文,进行多播报文的转发处理;否则取出报文的Vlan,查找MAC地址表,从MAC地址表中判断是否三层转发,如果三层转发,进行三层转发处理;否则根据报文的出接口Vlan信息封装报文,发送报文出端口。
三层处理:
查找完MAC地址表后,根据MAC地址表的结果判断是三层转发,检查报文的IP头的合法性,取出IP地址查找FIB表,根据FIB表结果,判断报文是否本机报文,如果是本机报文,判断协议是否UDP报文并且端口是否5246,如果是上送报文到控制CPU;不是再次判断报文是否UDP报文并且端口是否5247,如果不是上送报文到控制CPU;否则是CAPWAP隧道数据通道报文,进行隧道QOS处理,删除隧道头,将报文发送到二层处理报文,重新再次将报文发送到二层处理,进行完成的报文转发处理。
结束语
本文描述方案在多核CPU上的实现,为了在多核CPU最大利用CPU的效率,最好的转发性能。同时该方案考虑了足够的移植性,为了以后的移植其他硬件平台提供了方便。
参考文献:
【1】Bob O’Hara,Pat Calhoun,Rohit Suri,at a1.Control And Provisioning of Wireless AccessPoints(CAPWAP)ProtocolSpecification[EB/OL].http:l/www.ietf.org/rfc/rfc5415.txt.2009.05.
【2】Control and Provisioning ofWireless Access Points(CAPWAP)Protocol Binding forIEEE 802.11(RFC 5416)[EB/OL].http://www.ietf.org/rfc/rfc5416.txt.2009.05.
【3】刘乃安.无线局域N(WLAN卜原理、技术与应用[M】.西安:西安电子科技大学出版社。2004.04.1.27.