WLAN笔记(五)

2019-05-31

FAT AP能够独自承担无线用户接入、用户数据加密和转发等功能,而FIT AP必须依赖于AC才能共同完成这些功能。AC在协同FIT AP共同工作之前,必先要实现FIT AP在AC中上线的过程。FIT AP就必须到DHCP Server获取IP地址。

AP获取IP地址:
AP的IP地址可以是静态配置的,也可以是通过DHCP动态获取的。如果是静态配置的,AP的IP地址立即就确定了,这一步也就结束了。如果是通过DHCP动态获取,AP不知道谁是DHCP Server,会以广播discovery报文的方式去发现DHCP Server,所有收到这个广播信息的DHCP Server都会单播offer回应AP。AP只接收第一个到达的offer,并广播request告诉所有人,我已经选择好了一个DHCP Server了,其他人不需要再准备为我提供DHCP Server服务了。AP选择的DHCP Server会把AP的IP地址、租期日期、网关地址、DNS Server的IP地址等信息用ACK报文反馈给AP。值得注意的是这个ACK报文里面有个option43字段,里面可以用来填充AC的IP地址。作用就是直接告诉AP有AC的IP地址可用。有的时候AP与DHCP Server不在同一个VLAN中,AP通过广播discovery报文不能直接发现DHCP Server,这个时候,可以通过DHCP Relay来发现DHCP Server。AP获取IP地址的流程就变成原来只需要直接和DHCP Server交流,现在变成了和DHCP Relay直接交流,由DHCP Relay将AP的请求单播给DHCP Server,DHCP Server回复给AP的消息也要通过DHCP Relay来转达。

AP发现AC:

静态方式:
AP上是支持静态配置AC的IP地址的,如果静态配置了AC的IP地址,AP就会向所有配置的AC单播发送发现请求报文,然后根据AC的回复,根据优先级,选择一个AC,准备进行下一个阶段的建立CAPWAP隧道。

动态方式:
如果AP上没有配置AC的IP地址,AP会根据当前的情况来决定是使用单播方式还是广播方式来发现AC。首先,AP会查看AP获取IP地址阶段中DHCP Server回复的ACK报文中的option43字段是否存在AC的IP地址,这个字段是可选择配置的,如果有AC的IP地址,AP就会向这个地址单播发送发现请求报文。在AC和网络都正常的情况下,AC会回应AP的请求,至此,AP就完成了发现AC的过程。我们可以把这种发现AC的方式称为DHCP方式。与DHCP方式类似的还有DNS方式,与DHCP方式不同的是,DNS方式中,DHCP Server回复的ACK报文中存放的不是AC的IP地址,而是AC的域名和DNS服务器的IP地址,并且报文中携带的option15字段用来存放AC的域名,AP先通过获取的域名和DNS服务器进行域名解析,获取AC IP地址,然后向AC单播发送发现请求。之后的过程就和DHCP方式一致了。无论是DHCP方式还是DNS方式,都是属于单播方式,AP都是发送的单播报文给AC。

如果AP上没有配置静态的AC IP地址、DHCP Server回复的ACK报文中没有AC的信息、或者AP单播发送的发现请求报文都没有响应,此时AP就会通过广播报文来发现AC。和AP处于同一个网段的所有AC都会响应AP的请求,AP会选择优先级最高的AC来作为待关联的AC,如果优先级相同,则继续比较AC的负载,负载轻的作为待关联AC,如果负载也相同,则选择IP地址小的作为待关联AC。然后准备进行下一阶段的CAPWAP隧道建立。

注:Option 43在AC和AP间的网络是二层的场景下,存在的作用不明显,因为通过单播发现不了AC,可以再次通过广播来发现,但是如果AC和AP间的网络是三层的,广播报文是无法直接传递到AC的,所以必须要通过Option43来告知AP要找的AC是哪个。

CAPWAP隧道建链:

CAPWAP全称是Control And Provisioning of Wireless Access Points,中文名叫无线接入点控制与规范,CAPWAP是由RFC5415协议定义的实现AP和AC之间的互通的通用封装和传输机制。CAPWAP隧道又细分为控制隧道和数据隧道。控制隧道是用来传输AC管理控制AP的报文、业务配置以及AC与AP间的状态维护报文;数据隧道则只有在隧道转发(又称集中转发)方式下才用来传输业务数据。AP发现了AC后,就可以开始CAPWAP隧道的建立了。

AP接入控制:

不是每一个AP都是符合入门要求的AP。为了保证入门AP的合法性,防止有外人或间谍(非法AP)混入,AC设置了一系列的考核要求进行检验,AP在找到AC后,会向AC发送加入请求,(如果配置了CAPWAP隧道的DTLS加密功能,会先建立DTLS链路,此后CAPWAP控制报文都要进行DTLS加解密。)请求的内容中会包含AP的版本和胖瘦模式信息。AC收到AP的加入请求后,会判断是否允许AP接入,然后AC进行回应。如果AC上有对应的升级配置,则AC还会在回应的报文中携带AP的版本升级信息(升级版本、升级方式等)。

AC判断AP是否能够接入的流程:

第一关,首先查看AP是否被列入了黑名单,如果在黑名单中能匹配上AP,则不允许AP接入,然后就没有然后了。如果很幸运,没有匹配上黑名单,那么将进入第二关。

第二关,判断AP的认证模式,如果AC上对AP上线要求不严格,认证方式为不认证,则到这一关的AP都将闯关成功,允许接入。实际使用场景还是建议使用MAC或SN认证,严格控制AP的接入。如果是MAC或SN认证,还需要继续闯关。

第三关,本关MAC或SN认证分别要验证MAC或SN对应的AP是否离线添加,如果已添加,则允许AP接入,否则进入下一关。

第四关,查看AP的MAC或SN是否能在白名单中匹配上,如果匹配上,则允许接入,否则AP被放入到未认证列表中。

第五关,未认证列表中的AP可以通过手动配置的方式,允许其接入,如果不对其进行手动确认,AP也无法接入。

AP版本升级:

AP收到前一阶段AC回应的报文后,如果发现里面有指定了AP的版本,并且指定的版本与AP当前的版本不一致,会进行AP版本升级。升级完成后,AP自动重新启动,并且重复之前的所有上线过程。如果AP发现AC回应的报文里面指定的AP版本和自身的版本一致,或者没有指定AP的版本,则AP不需要进行版本升级。直接进入下一个阶段。

CAPWAP隧道维持:

根据CAPWAP协议的要求,AP和AC间还需要进行一些其它报文的交互,然后AP和AC间开始通过keepalive和echo报文来检测数据隧道和控制隧道的连通性。Keepalive报文的出现,标志着数据隧道已经建立起来,echo报文的出现,则标志着控制隧道的已经建立。配置下发,CAPWAP隧道建立完成后,AC就可以把配置下发给AP了。AP收到AC的配置信息后,就能以AC上配置的业务来展开WLAN业务了。


留言: