第136篇:无线漫游:二层漫游与三层漫游
关键词:无线漫游、二层漫游、三层漫游、Fast Roam、802.11r、PMK 缓存、锚点 AP、FMPC、华为漫游
一、引言
在第135篇中,我们学习了 AP、AC 和 CAPWAP 隧道的基础架构。但一个完整的企业 WLAN 部署中,用户会在大楼内移动:从会议室走到走廊、从一楼走到二楼、甚至从一个建筑走到另一个建筑。在这个过程中,手机和笔记本需要从一个 AP 切换到另一个 AP——这就是无线漫游。
如果漫游处理不当,会导致通话中断、视频卡顿、甚至重新认证耗时数秒。本文将深入探讨二层漫游和三层漫游的原理与配置。
二、核心概念
2.1 漫游的基本流程

2.2 二层漫游与三层漫游
| 特性 | 二层漫游(L2 Roam) | 三层漫游(L3 Roam) |
|---|---|---|
| 漫游范围 | 同一 VLAN/同一子网 | 不同 VLAN/不同子网 |
| IP 地址 | 不变 | 需要重新获取或保持 |
| 数据路径 | 直接在接入层交换 | 需要隧道转发或重新锚定 |
| 切换时间 | 短(< 100ms) | 较长(受认证影响) |
| 场景 | 同楼层 AP 间切换 | 跨楼层/跨楼栋切换 |

2.3 快速漫游技术
| 技术 | 标准 | 说明 | 漫游延迟 |
|---|---|---|---|
| PMK 缓存 | 802.11i | 在 AC 内缓存 PMK,漫游时复用 | < 100ms |
| 802.11r (FT) | 802.11r | 预认证,在漫游前完成密钥协商 | < 50ms |
| 802.11k | 802.11k | 邻区报告,STA 快速选择目标 AP | 辅助 |
| 802.11v | 802.11v | BSS 过渡,AC 引导 STA 漫游 | 辅助 |
三、技术细节
3.1 二层漫游数据转发
二层漫游最简单:STA 从一个 AP 漫游到同 VLAN 的另一个 AP,IP 地址不变,数据流直接在二层交换。
| 步骤 | 说明 |
|---|---|
| 1 | STA 检测到新 AP 信号更强 |
| 2 | STA 向新 AP 发送 Re-Association Request |
| 3 | 新 AP 通过 CAPWAP 通知 AC |
| 4 | AC 在 PMK 缓存中查找 STA 的密钥(无需重新认证) |
| 5 | AC 更新 STA 的绑定关系(旧 AP → 新 AP) |
| 6 | AC 向旧 AP 发送卸载指令 |
| 7 | 后续数据直接由新 AP 转发 |
3.2 三层漫游数据转发
三层漫游复杂得多,STA 跨子网漫游后需要解决 IP 可达性问题:

| 方案 | 说明 | 适用场景 |
|---|---|---|
| 重新获取 IP | STA 重新 DHCP,获得新子网 IP | 可容忍断线的应用(网页浏览) |
| 锚点隧道(Mobility Anchor) | 漫游后的数据通过隧道回传到原 AP(锚点) | 实时业务(语音/视频) |
| 无状态三层漫游 | AC 在数据面建立二层隧道,对网络透明 | AC 统一管理,推荐方案 |
| FMPC 方案 | 转发移动感知控制器集中转发 | 大规模跨 AC 漫游 |
3.3 三层漫游的华为实现(无状态三层漫游)
华为 AC 支持无状态三层漫游(Stateless L3 Roaming),其核心思想是:AC 在所有 AP 间建立二层隧道,对上层网络透明。

四、实战配置/案例分析
4.1 二层漫游配置
# ========== 二层漫游:同 VLAN 内 AP 间漫游 ==========
# AC 侧配置
[AC] wlan
[AC-wlan-view] roam
[AC-wlan-view-roam] enable
# 配置漫游组(同一漫游组内 AP 支持二层漫游)
[AC-wlan-view] roam-group name roam-group-1
[AC-wlan-view-roam-group-roam-group-1] roam-domain 1
[AC-wlan-view-roam-group-roam-group-1] quit
# 配置 PMK 缓存(快速漫游)
[AC-wlan-view] pmk-cache
[AC-wlan-view-pmk-cache] pmkcache age-time 1440
[AC-wlan-view-pmk-cache] pmkcache max-entry 4096
[AC-wlan-view-pmk-cache] quit
# 在 AP 组中绑定漫游组
[AC-wlan-view] ap-group name office-group
[AC-wlan-ap-group-office-group] roam-group roam-group-1
[AC-wlan-ap-group-office-group] quit
[AC-wlan-view] quit
# 验证
[AC] display roam-group name roam-group-1
[AC] display pmkcache all
4.2 三层漫游配置
# ========== 三层漫游:跨 VLAN/子网的 AP 间漫游 ==========
# AC 侧配置
# Step 1: 创建漫游域
[AC] wlan
[AC-wlan-view] roam
[AC-wlan-view-roam] enable
[AC-wlan-view-roam] roam-domain-id 1
[AC-wlan-view-roam] l3-roam enable
[AC-wlan-view-roam] quit
# Step 2: 配置二层漫游组(同 VLAN 内)
[AC-wlan-view] roam-group name floor1-group
[AC-wlan-view-roam-group-floor1-group] roam-domain 1
[AC-wlan-view-roam-group-floor1-group] vlan 200
[AC-wlan-view-roam-group-floor1-group] quit
[AC-wlan-view] roam-group name floor2-group
[AC-wlan-view-roam-group-floor2-group] roam-domain 1
[AC-wlan-view-roam-group-floor2-group] vlan 201
[AC-wlan-view-roam-group-floor2-group] quit
# Step 3: 绑定 AP 组到漫游组
[AC-wlan-view] ap-group name floor1-group
[AC-wlan-ap-group-floor1-group] roam-group floor1-group
[AC-wlan-ap-group-floor1-group] quit
[AC-wlan-view] ap-group name floor2-group
[AC-wlan-ap-group-floor2-group] roam-group floor2-group
[AC-wlan-ap-group-floor2-group] quit
# Step 4: 配置无状态三层漫游隧道
[AC-wlan-view-roam] tunnel source-ip 10.10.1.1
[AC-wlan-view-roam] quit
# Step 5: 配置 802.11r 快速漫游
[AC-wlan-view] security-profile name office-sec
[AC-wlan-security-profile-office-sec] ftm mode ckpm
[AC-wlan-security-profile-office-sec] ft over-the-ds enable
[AC-wlan-security-profile-office-sec] ft overwrite r0-key-id
[AC-wlan-security-profile-office-sec] ft overwrite pmk-id
[AC-wlan-security-profile-office-sec] quit
# 验证
[AC] display roam-group all
[AC] display l3-roam statistics
4.3 故障案例:漫游后通话中断
场景:IP 电话用户在楼层内移动时,从 AP-01 漫游到 AP-02 后通话立即中断。
排查:
# 1. 查看 STA 漫游历史
[AC] display station mac 0011-2233-4455
# Station 关联在 AP-02
# 之前关联在 AP-01
# 2. 检查漫游组配置
[AC] display roam-group all
# AP-01 和 AP-02 不在同一漫游组
# roam-group-1 包含 AP-01
# roam-group-2 包含 AP-02
# 跨漫游组漫游退化为重新关联,非快速漫游
# 3. 检查 PMK 缓存
[AC] display pmkcache all
# 跨漫游组没有 PMK 缓存
根因:AP-01 和 AP-02 属于不同漫游组,不支持 PMK 缓存复用,漫游退化为完整 4 次握手认证。
处理:将两个 AP 加入同一漫游组:
[AC] wlan
[AC-wlan-view] roam-group name office-roam
[AC-wlan-view-roam-group-office-roam] roam-domain 1
[AC-wlan-view-roam-group-office-roam] quit
[AC-wlan-view] ap-group name office-group
[AC-wlan-ap-group-office-group] ap-id 1 ap-mac 00e0-fc01-0001
[AC-wlan-ap-group-office-group] ap-id 2 ap-mac 00e0-fc01-0002
[AC-wlan-ap-group-office-group] roam-group office-roam
4.4 故障案例:三层漫游后无法上网
场景:用户从一楼(VLAN 200)走到二楼(VLAN 201)后,WiFi 连接显示正常,但无法上网。
排查:
# 1. 查看 STA 状态
[AC] display station mac 0011-2233-4455
# STA 关联在二楼 AP
# Service VLAN: 201
# IP Address: 10.10.200.10 (旧 IP,仍属于 VLAN 200)
# 2. 检查 VLAN 201 的网关
[AC] display ip interface brief | include Vlanif201
# Vlanif201 存在,IP 10.10.201.1
# 3. 检查三层漫游隧道状态
[AC] display l3-roam tunnel
# 三层漫游隧道未建立
根因:三层漫游配置不完整,STA 漫游后仍使用旧 VLAN 的 IP 地址,但数据从新 VLAN 发出,导致路由不可达。
处理:启用无状态三层漫游,确保 AC 建立隧道转发。
五、总结
| 项目 | 说明 |
|---|---|
| 二层漫游 | 同 VLAN 内 AP 间切换,IP 不变,延迟 < 100ms |
| 三层漫游 | 跨 VLAN AP 间切换,需要隧道转发或重新获取 IP |
| 快速漫游 | PMK 缓存(复用密钥)、802.11r(预认证) |
| 漫游组 | 同一漫游组内的 AP 支持快速漫游 |
| 华为实现 | roam-group + pmk-cache + l3-roam tunnel |
| 关键配置 | 漫游域、漫游组、AP 组绑定、PMK 缓存 |
| 语音漫游 | 延迟要求 < 50ms,需要 802.11r + PMK 缓存 |
| 辅助标准 | 802.11k(邻区报告)、802.11v(BSS 过渡) |
思考
-
二层漫游中 PMK 缓存的作用是什么?如果 AC 重启后 PMK 缓存丢失,漫游延迟会增加多少?
-
三层漫游使用隧道转发时,数据包会绕行(从新 AP → AC → 锚点 → 原网关)。这种绕行对延迟和带宽有什么影响?在什么场景下可以接受?
-
802.11r(FT)要求所有 AP 使用相同的 PMK 派生密钥。如果 AC 有多个 SSID,每个 SSID 是否需要单独配置 802.11r?
下篇预告:第137篇:无线信道规划与 5G/2.4G 差异