「WLAN」- 漫游技术(WLAN Roaming)

  CREATED BY JENKINSBOT

问题描述

为了满足实际业务的需求,需要对 BSS 的覆盖范围进行扩展。同时用户从某个 BSS 移动到另个 BSS 时,不能感知到 SSID 的变化,并保证业务不中断。

解决方案

WLAN Roming(WLAN 漫游,无线漫游)便是用来实现这种需求的技术,其是指 STA 在不同 AP 覆盖范围间移动,且保持用户业务不中断的行为。

原理简述

ESS(扩展服务集,Extend Service Set):由多个使用相同 SSID 的 BSS 组成,即由采用相同的 SSID 的多个 BSS 组成的更大规模的虚拟 BSS。

在 STA 移动过程中,如果逐渐远离接入 AP,则链路的信号质量也会逐步下降。当 STA 感知到信号质量降低一定程度(漫游门限)时,STA 会主动漫游到附近 AP 来提高信号质量。

如图所示,Roming 一般包括如下动作:
1)STA 已经与AP1建链,STA 在各种信道中发送 Probe Request 报文。AP2在信道6(AP2使用的信道)中收到请求后,通过在信道6中发送应答来进行响应。STA 收到应答后,对其进行评估,确定同哪个AP关联最合适。此时通过评估,STA 与AP2关联最合适。
2)STA 通过信道6向AP2发送关联请求,AP2使用关联响应做出应答,建立用户与AP2间的关联(至此期间,用户与AP1的关联一直保持)
3)删除用户与AP1现有的关联。STA 通过信道1(AP1使用的信道)向AP1发送802.11解除关联信息,解除用户与AP1间的关联。

特性说明

实现 WLAN Roming 的多个 AP 必须:
1)使用相同的 SSID 和安全模板(安全模板名称可以不同,但是安全模板下的配置必须相同)
2)认证模板的认证方式和认证参数也要配置相同。

应用场景

WLAN漫游策略主要解决以下问题:
1)避免漫游过程中的认证时间过长导致丢包甚至业务中断。
2)保证用户授权信息不变。
3)保证用户 IP 地址不变。

概念术语

AC 内漫游:如果漫游过程中关联的是同个 AC,这次漫游就是 AC 内漫游;
AC 间漫游:如果漫游过程中关联的非同个 AC,这次漫游就是 AC 间漫游;

AC 间隧道:为了支持 AC 间漫游,漫游组内的所有 AC 需要同步每个 AC 管理的 STA 和 AP 设备的信息,所在 AC 间建立隧道作为数据同步和报文转发的通道。AC 间隧道也是利用 CAPWAP 协议创建的。如图所示,AC1 和 AC2 间建立 AC 间隧道进行数据同步和报文转发。

漫游组服务器

1)STA 在 AC 间进行漫游,通过选定一个 AC 作为漫游组服务器,在该 AC 上维护漫游组的成员表,并下发到漫游组内的各 AC,使漫游组内的各 AC 间相互识别并建立 AC 间隧道。
2)漫游组服务器既可以是漫游组外的 AC,也可以是漫游组内选择的一个 AC;
3)一个 AC 可以同时作为多个漫游组的漫游组服务器,但是自身只能加入一个漫游组。
4)漫游组服务器管理其他 AC 的同时不能被其他的漫游组服务器管理。也就是说如果一个AC是作为漫游组服务器角色负责向其他AC同步漫游配置的,则它无法再作为被管理者接受其他AC向其同步漫游配置(即配置了漫游组就不能再配置漫游组服务器)。
5)漫游组服务器作为一个集中配置点,不需要有特别强的数据转发能力,只需要能够和各个AC互通即可。

家乡代理

能够和 STA 家乡网络的网关二层互通的一台设备。为了支持 STA 漫游后仍能正常访问家乡网络,需要将 STA 的业务报文通过隧道转发到家乡代理,再由家乡代理中转。STA 的家乡代理由 HAC 或 HAP 兼任。如图所示,用户可以选取 AC1 或 AP1 作为 STA 的家乡代理。

漫游类型

二层漫游

STA 在多个 AP 间来回切换连接无线,前提是这些 AP 都绑定的是同个 SSID 并且 Service VLAN 都在同个 VLAN 内(在同个 IP 地址段)。在漫游切换的过程中,无线客户端的接入属性(比如无线客户端所属的 Service VLAN、获取的IP地址等属性)不会有任何变化,直接平滑过渡,在漫游的过程中不会有丢包和断线重连的现象。

三层漫游

在漫游前后 SSID 的 Service VLAN 不同,AP 所提供的业务网络为不同的三层网络,对应不同的网关。

此时,为保持漫游用户 IP 地址不变的特性,需要将用户流量迂回到初始接入网段的 AP(即 HAP),实现跨 VLAN 漫游。

Q:什么时候会出现「VLAN 不同,但是 SSID 相同」的场景?我们的配置不都是「同个 SSID 同个 VLAN」吗?
A:WIP

Q:两个 Service VLAN 的 VLAN ID 相同,但是这两个子网又属于不同的子网,会发生什么呢?
A:此时为了避免系统仅仅依据 VLAN ID 将用户在两个子网间的漫游误判为二层漫游,需要通过漫游域来确定设备是否在同一个子网内:只有当 VLAN 相同,且漫游域也相同的时候才是二层漫游,否则是三层漫游。

漫游流量转发模型

根据 WLAN 数据转发类型以及跨三层与否,可将漫游流量转发模型划分为四种:

二层漫游,直接转发

由于二层漫游后,STA 仍然在原来的子网中,所以FAP/FAC对二层漫游用户的流量转发和平台新上线的用户没有区别,直接在FAP/FAC本地的网络转发,不需要通过隧道转发回家乡代理中转。

漫游前:
STA发送业务报文给HAP。
HAP接收到业务报文后经由网关(交换机)发送给上层网络。

漫游后:
STA发送业务报文给FAP。
FAP接收到业务报文后经由网关(交换机)发送给上层网络。

二层漫游,隧道转发

对于 AC 间二层漫游隧道转发与直接转发流量走向类似,流量由 AC 负责转发,不再赘述。

三层漫游,直接转发

在直接转发模式下,HAP 和 HAC 间的业务报文不通过 CAPWAP 隧道封装,无法判定 HAP 和 HAC 是否在同个子网内,此时设备默认报文需返回到 HAP 进行中转。

如果 HAP 和 HAC 在同一个子网时,可以将家乡代理设置为性能更强的 HAC,减少 HAP 的负荷并提高转发效率。

HAP 为家乡代理

漫游前:
STA发送业务报文给HAP。
HAP接收到业务报文后直接将业务报文经过交换机发送给上层网络。

漫游后:
STA发送业务报文给FAP。
FAP接收到STA发送的业务报文并通过CAPWAP隧道发送给FAC。
FAC通过HAC和FAC之间的AC间隧道将业务报文转发给HAC。
HAC通过CAPWAP隧道将业务报文发送给HAP。
HAP直接将业务报文发送给上层网络。

HAC 为家乡代理

漫游前:
STA 发送业务报文给 HAP;
HAP 接收到业务报文后直接将业务报文经过交换机发送给上层网络。

漫游后:
STA发送业务报文给FAP。
FAP接收到STA发送的业务报文并通过CAPWAP隧道发送给FAC。
FAC通过HAC和FAC之间的AC间隧道将业务报文转发给HAC。
HAC直接将业务报文发送给上层网络。

三层漫游,隧道转发

在隧道转发模式下,在 HAP 和 HAC 间的业务报文通过 CAPWAP 隧道封装,此时可以将 HAP 和 HAC 看作在同个子网内,所以报文无需返回 HAP,可直接通过HAC中转到上层网络。

当三层漫游时,用户漫游前后不在同一个子网中,为了使用户漫游后仍能正常访问漫游前的网络,需要将用户流量通过隧道中转到原来的子网。

漫游前:
1)STA 发送业务报文给 HAP;
2)HAP 接收到业务报文后通过 CAPWAP 隧道发送给 HAC;
3)HAC 直接将业务报文经过交换机发送给上层网络。

漫游后:
1)STA发送业务报文给FAP。
2)FAP接收到业务报文后通过CAPWAP隧道发送给FAC 。
3)FAC通过HAC和FAC之间的AC间隧道将业务报文转发给HAC。
4)HAC直接将业务报文经由交换机发送给上层网络。

配置示例

// 1)向漫游组中添加成员,此处添加的AC的IP地址为AC的源IP地址。
// 2)创建漫游组
[AC-wlan-view] mobility-group name group-name	                                
[AC-mc-mg-group-name] member { ip-address ipv4-address | ipv6-address ipv6-address } [ description description ]

配置漫游组:如果指定了漫游组服务器,则需要在漫游组服务器上配置漫游组;如果没有指定漫游组服务器,则各成员AC均需配置漫游组;

常见问题

Q:两个 BSS 重叠,且STA 设备在重叠区,此时设备是向距离近信号强 AP 发送数据,还是向原来那个 AP 发送数据?
A:通常 AP 是无法检测 STA 远近的,这需要在 STA 中进行配置 ⇒ Windows,网卡驱动属性,Roaming Aggressiveness
Why devices are not connecting to the closest AP?
How To Improve Wi-Fi Reception By Boosting Roaming Aggressiveness