传统的WLAN网络都是为家庭内少许移动用户的接入而组建的。所以,只须要一个无线路由器(AP)就能够搞定了,无线路由器承担了全部的网络配置和转发的做用,功能丰富,这种无线路由器成为胖AP,例如如今家用的无线路由器就是胖AP。胖 AP将WLAN的物理层、用户数据加密、用户认证、QoS、网络管理、漫游技术以及其余应用层的功能集于一身,功能全,结构复杂。安全
随着无线网络的发展,如今须要部署无线设备的地方愈来愈多,胖AP的弊端也随之显现出来:服务器
WLAN建网时须要对成百上千的AP进行逐一配置:网管IP地址、SSID和加密认证方式等无线业务参数、信道和发射功率等射频参数、ACL和QOS等服务策略,很容易因误配置而形成配置不一致。网络
为了管理AP,须要维护大量AP的IP地址和设备的映射关系,每新增长一批AP设备都须要进行地址关系维护。架构
接入AP的边缘网络须要更改VLAN、ACL等配置以适应无线用户的接入,为了可以支持用户的无缝漫游,须要在边缘网络上配置全部无线用户可能使用的VLAN和ACL。less
察看网络运行情况和用户统计时须要逐一登陆到AP设备才能完成察看。在线更改服务策略和安全策略设定时也须要逐一登陆到AP设备才能完成设定。ide
升级AP软件没法自动完成,维护人员须要手动逐一对设备进行软件升级,费时费力加密
AP设备的丢失意味着网络配置的丢失,在发现设备丢失前,网络存在***隐患,在发现设备丢失后又须要全网重配置。spa
在这种状况下,瘦AP+AC的组网方式应用而生。瘦AC和AC功能职责代理
无线接入控制器(AC设备)负责:无线网络的接入控制,转发和统计、AP的配置监控、漫游管理、AP的网管代理、安全控制;接口
瘦AP负责:802.11报文的加解密、802.11的PHY功能、接受无线控制器的管理、RF空口的统计等简单功能。
基于瘦AP+AC的无线网络架构以下所示:
图 1 无线网络架构
实线方框为一个企业级大型WLAN的网络拓扑结构。
全部的无线接入终端,如:智能手机、笔记本等称为STA。STA根据本身的位置选择最佳的无线接入点(AP)进行接入,STA和AP经过802.11无线网络进行互联互通。
每一个AP都经过有线网络同AC设备相连,由AC完成对AP和STA的配置,如IP分配,STA是否容许访问外网等。每一个AP同AC设备经过CAPWAP报文进行交互联通,CAPWAP协议是在传统的IP报文上封装CAPWAP隧道头造成的,因此AP和AC交互的这个有线线路被称为CAPWAP隧道。AP只负责802.11无线报文和CAPWAP报文的转换和转发工做。从而能够看出,AP的功能单1、独立,因此称之为瘦AP。
每一个AP对应一个BSS,BSSID通常配置为AP设备的IP地址。AP设备向外广播的无线网络名称叫作SSID,如上图中虚线所示。一个AP设备根据设备参数,可配置多个SSID。每一个SSID就至关于一个局域网,对应AC设备上的一个VLAN,是一个彻底隔离的局域网络。经过SSID能够将一个企业内网分割企业不一样的部门,如财务部、销售部、外来用户等,彻底进行隔离保护。能够将多个瘦AP配置为一个SSID,如SSID1;也能够将一个瘦AP单独配置为一个SSID,如SSID2。如SSID1中,有2个AP设备,就至关于有2个BSSID,那么在此SSID内广播的报文会被复制广播到两个AP设备上,即广播到SSID下全部的BSS上。
无线接入控制器(AccessController)位于整个网络架构的核心位置,同全部的内部服务器和AC设备相连。AC完成WLAN内部设备的配置和管理,如经过DHCP服务器完成AP和STA的IP分配,经过PORTAL服务器完成对STA的广告推送,经过认证服务器完成AP和STA接入认证等。同时WLAN的全部数据报文的转发工做,如内网有线网络的互通,同外部Internet的互通等通讯,均由AC完成全部报文的转发。AC是全部AP复杂功能提取集中,是整个大型WLAN的大脑和制高点,对整个WLAN进行控制和策略配置。
CAPWAP是Control AndProvisioning ofWireless AccessPoints ProtocolSpecification的缩写,意为无线接入点的控制和配置协议。CAPWAP是一个通用的隧道协议,完成AP发现AC等基本协议功能,和具体的无线接入技术无关。CAPWAP协议定义了如何对接入点进行管理、业务配置,包含的主要内容有:
AP对AC的自动发现及AP&AC的状态机运行、维护
AC对AP进行管理、业务配置下发
STA数据封装CAPWAP隧道进行转发
CAPWAP是由IETF(互联网工程任务组)标准化组织于2009年3月定义。CAPWAP协议在2009年3月的RFC5415[1]中发布。CAPWAP协议是整个WLAN的南向接口协议,至关于OpenFlow协议的角色。
CAPWAP报文是在传统TCP/IP报文基础上封装CAPWAP隧道头造成,使用UDP协议做为基础。CAPWAP报文细分为:
CAPWAP控制报文:完成如STA上下线配置、STA IP地址配置等工做,经过CAPWAP控制隧道转发。
CAPWAP数据报文:内部封装STA上网的数据报文。数据报文经过CAPWAP数据隧道进行转发。
CAPWAP保活报文:STA和AP可能随时掉线,经过定时发送keep alive报文,AC能够得知STA和AP的情况,从而更新内部的转发表项。保活报文应该算是控制报文的一种,比较特殊的是,CAPWAP保活报文经过CAPWAP数据隧道进行转发,这在后面的实现里会有特殊的处理流程。
CAPWAP报文构成以下图所示:
图 2 CAPWAP报文构成
CAPWAP报文组成以下:
CAPWAP DATA: 若是是CAPWAP数据报文,传统的TCP/IP报文做为CAPWAP DATA;若是是CAPWAP控制报文,WLAN的状态变化等控制信息做为CAPWAPDATA,即CONTORL H,这部分能够按照标准CAPWAP协议定义,也能够是厂商自定义。 在CAPWAP DATA基础上封装CAPWAP隧道头就造成了CAPWAP报文。
CAPWAP H:CAPWAP头,记录CAPWAP协议相关信息
UDP:CAPWAP经过UDP协议进行通讯,根据UDP的端口号指明CAPWAP的隧道类型。端口5246是CAPWAP控制隧道,端口5247是CAPWAP数据隧道。
IP:CAPWAP目的设备的IP地址,经过IP指明目的AP设备或目的AC设备。
ETH:CAPWAP目的设备的MAC地址。
基于CAPWAP报文总体转发模型以下所示
图 3 CAPWAP报文转发整体模型
转发模型主要流程以下:
CAPWAP数据隧道转发流程:STA经过802.11网络将数据报文发送给AP,AP将802.11报文转换为传统TCP/IP报文,封装CAPWAP隧道头后经过CAPWAP数据隧道(UDP 5247)转发至AC设备,AC设备去除CAPWAP隧道头,提取TCP/IP报文后发送给目标服务器。AC收到目标服务器响应报文,在响应报文基础上封装CAPWAP隧道头后经过CAPWAP数据隧道(UDP 5247)转发给AP,AP去掉CAPWAP隧道头,将响应报文转换为802.11格式后发送给STA。STA数据协议报文,CAPWAP保活报文均经过CAPWAP数据隧道转发。
CAPWAP控制隧道转发流程:AP收到STA状态变化信息,如上下线等。AP造成标准控制信息内容,在控制信息前部封装CAPWAP隧道头造成CAPWAP控制报文。AP经过CAPWAP控制隧道(UDP 5246)将控制报文转发至AC设备,AC接收到控制报文后对内部的转发表项进行相应的处理。若是AC须要返回相应报文,一样封装CAPWAP控制报文头,以后经过CAPWAP控制隧道(5246)转发至目标AP。AP去掉CAPWAP控制报文头,在内部进行响应处理。若是AP须要返回响应报文,造成802.11控制信息后发送给STA设备。
AP自身数据报文转发流程:AP设备造成传统TCP/IP报文,并不进行CAPWAP隧道封装,经过传统以太网络转发至AC设备。
CAPWAP隧道的创建流程以下图所示
图 4 CAPWAP隧道创建流程
按照前面拓扑所示,DHCP服务器和AC设备有线相连,AP设备同AC设备有线相连。
协议的具体细节和状态变化不是本文关心的重点,本文主要关心转发过程。隧道创建过程当中,主要转发流程以下:
AP造成DHCP报文后,不封装CAPWAP隧道头,直接将DHCP报文经过AP自身数据报文转发流程广播给直连的AC设备。注意此时AP设备不知道AC设备的IP地址,只是采用广播形式进行广播。AC设备将DHCP报文转发给DHCP服务器。
DHCP服务器进行DHCP响应,发送DHCP响应报文给AC设备,报文中带有AC设备的IP地址和分配给AP设备的IP地址。AC设备将DHCP响应报文直接转发给AP设备,不进行CAPWAP封装。AP设备收到DHCP响应报文,配置自身IP地址,而后记录AC设备的IP地址。此时AP已经发现了AC设备的IP地址。
AP设备开始根据AC设备的IP地址,造成CAPWAP控制报文,经过CAPWAP控制隧道(UDP 5246)发送给AC设备,完成AP的配置上线过程。AC收到控制报文后进行响应,更新响应的路由流表,而后造成CAPWAP控制报文进行响应,一样经过CAPWAP控制隧道(UDP 5246)发送给AP设备。此过程当中,由于互相知道对方IP地址,均为单播形式。如上图所示,从discovery request到configurationupdate response均是AP配置上线过程的CAPWAP隧道报文,遵循CAPWAP控制隧道转发流程。