拿着笔记本在楼里走动WiFi到AP边界就断?华为VLAN内漫游IP不变平滑交接
无线漫游最基础的形态是什么?整层楼同一个 SSID、同一个业务 VLAN,人拿着笔记本从 AP1 的覆盖区走到 AP2 的覆盖区,终端在两台 AP 之间切换,IP 地址不变、业务不断。这叫 VLAN 内漫游,是二层漫游。之前写过进阶版——跨 VLAN 的三层漫游,员工按区域划进不同子网,漫游时照样保 IP 保会话。但多数中小网络的现实是全网一个业务 VLAN,先把 VLAN 内漫游这一层做扎实才是正经事。这篇就按华为官方示例把单 AC、同 VLAN 的漫游全流程过一遍。
先看官方组网。企业用户通过 WLAN 接入网络,满足移动办公的最基本需求,且在覆盖区域内移动发生漫游时,不影响用户的业务使用。组网形态:AC 旁挂二层组网;DHCP 分两处——AC 作为 DHCP 服务器为 AP 分配 IP 地址,汇聚交换机 SwitchB 作为 DHCP 服务器为 STA 分配 IP 地址,STA 的默认网关为 10.23.101.2(在 Router 上);业务数据转发方式为隧道转发。数据规划里 AP 管理 VLAN100、STA 业务 VLAN101,两个地址池分别是 10.23.100.2~10.23.100.254 和 10.23.101.3~10.23.101.254。配置注意事项里有条隧道转发的硬约束值得记下:隧道转发模式下,管理 VLAN 和业务 VLAN 不能配置为同一 VLAN,且 AP 和 AC 之间只能放通管理 VLAN,不能放通业务 VLAN。
配置步骤
第一步,配周边设备。接入交换机 SwitchA 三个口全进 VLAN100,连 AP 的两个口(GE0/0/1、GE0/0/3)配 PVID 并做端口隔离:
<HUAWEI> system-view
[HUAWEI] sysname SwitchA
[SwitchA] vlan batch 100
[SwitchA] interface gigabitethernet 0/0/1
[SwitchA-GigabitEthernet0/0/1] port link-type trunk
[SwitchA-GigabitEthernet0/0/1] port trunk pvid vlan 100
[SwitchA-GigabitEthernet0/0/1] port trunk allow-pass vlan 100
[SwitchA-GigabitEthernet0/0/1] port-isolate enable
[SwitchA-GigabitEthernet0/0/1] quit
[SwitchA] interface gigabitethernet 0/0/2
[SwitchA-GigabitEthernet0/0/2] port link-type trunk
[SwitchA-GigabitEthernet0/0/2] port trunk allow-pass vlan 100
[SwitchA-GigabitEthernet0/0/2] quit
[SwitchA] interface gigabitethernet 0/0/3
[SwitchA-GigabitEthernet0/0/3] port link-type trunk
[SwitchA-GigabitEthernet0/0/3] port trunk pvid vlan 100
[SwitchA-GigabitEthernet0/0/3] port trunk allow-pass vlan 100
[SwitchA-GigabitEthernet0/0/3] port-isolate enable
[SwitchA-GigabitEthernet0/0/3] quit
汇聚交换机 SwitchB 放通 VLAN100 和 VLAN101,Router 的 GE1/0/0 进 VLAN101 起 VLANIF101(10.23.101.2/24)作 STA 网关,均为标准 trunk 互联配置。
第二步,AC 互通加 DHCP。AC 的 GE0/0/1 放通 VLAN100 和 VLAN101,VLANIF100 配 10.23.100.1 并接口地址池给 AP 发地址:
[AC] dhcp enable
[AC] interface vlanif 100
[AC-Vlanif100] ip address 10.23.100.1 24
[AC-Vlanif100] dhcp select interface
[AC-Vlanif100] quit
SwitchB 的 VLANIF101(10.23.101.1/24)接口地址池给 STA 发地址,网关指向 Router:
[SwitchB] dhcp enable
[SwitchB] interface vlanif 101
[SwitchB-Vlanif101] ip address 10.23.101.1 24
[SwitchB-Vlanif101] dhcp select interface
[SwitchB-Vlanif101] dhcp server gateway-list 10.23.101.2
[SwitchB-Vlanif101] quit
第三步,AP 上线。创建 AP 组 ap-group1、域管理模板配国家码 cn 并在 AP 组引用,源接口指向 VLANIF100:capwap source interface vlanif 100。V200R021C00 版本开始,配置 CAPWAP 源接口或源地址时会检查和安全相关的配置是否已存在(DTLS 加密的 PSK、AC 间 DTLS 加密的 PSK、登录 AP 的用户名和密码、全局离线管理 VAP 的登录密码),均已存在才能成功配置。然后离线导入两台 AP——00e0-fc76-e360 命名 area_1,00e0-fc04-b500 命名 area_2,都进 ap-group1:
[AC] wlan
[AC-wlan-view] ap auth-mode mac-auth
[AC-wlan-view] ap-id 0 ap-mac 00e0-fc76-e360
[AC-wlan-ap-0] ap-name area_1
Warning: This operation may cause AP to go offline and then online. Continue? [Y/N]:y
[AC-wlan-ap-0] ap-group ap-group1
Warning: This operation may cause AP to go offline and then online. If the country code changes, it will clear channel, power and antenna gain configurations of the radio, Whether to continue? [Y/N]:y
[AC-wlan-ap-0] quit
area_2 的导入命令相同,ap-id 1、ap-mac 00e0-fc04-b500。display ap all 看到 State 为 nor 即上线正常。
第四步,配 WLAN 业务参数。安全模板 WPA-WPA2+PSK+AES,SSID 模板 wlan-net,VAP 模板按隧道转发、业务 VLAN101:
[AC-wlan-view] vap-profile name wlan-net
[AC-wlan-vap-prof-wlan-net] forward-mode tunnel
[AC-wlan-vap-prof-wlan-net] service-vlan vlan-id 101
[AC-wlan-vap-prof-wlan-net] security-profile wlan-net
[AC-wlan-vap-prof-wlan-net] ssid-profile wlan-net
[AC-wlan-vap-prof-wlan-net] quit
AP 组引用 VAP 模板,射频 0 和射频 1 都用:
[AC-wlan-view] ap-group name ap-group1
[AC-wlan-ap-group-ap-group1] vap-profile wlan-net wlan 1 radio 0
[AC-wlan-ap-group-ap-group1] vap-profile wlan-net wlan 1 radio 1
[AC-wlan-ap-group-ap-group1] quit
之后还有一段开启射频调优的步骤——使能信道和功率自动调优、配调优信道集合、建空口扫描模板(扫描间隔 60000 毫秒、持续时间 60 毫秒)并在射频模板引用、手动触发后改定时调优。这套是 AP 之间互相发现邻居、为漫游创造良好射频环境的前提,完整命令此前射频调优专文里逐条写过,这里不重复贴。
验证
漫游配置完成后看三组回显。先是 VAP 状态,display vap ssid wlan-net 四个射频的 Status 都是 ON:
[AC-wlan-view] display vap ssid wlan-net
Info: This operation may take a few seconds, please wait.
WID : WLAN ID
--------------------------------------------------------------------------------
AP ID AP name RfID WID BSSID Status Auth type STA SSID
--------------------------------------------------------------------------------
0 area_1 0 1 00E0-FC76-E360 ON WPA/WPA2-PSK 0 wlan-net
0 area_1 1 1 00E0-FC76-E370 ON WPA/WPA2-PSK 0 wlan-net
1 area_2 0 1 00E0-FC74-9640 ON WPA/WPA2-PSK 0 wlan-net
1 area_2 1 1 00E0-FC74-9650 ON WPA/WPA2-PSK 0 wlan-net
-------------------------------------------------------------------------------
Total: 4
STA 先在 AP1 覆盖范围内接入,display station ssid wlan-net 看到它关联到 area_1,IP 是 10.23.101.254。当 STA 从 AP1 的覆盖范围移动到 AP2 的覆盖范围时,再看同一条命令:
[AC-wlan-view] display station ssid wlan-net
Rf/WLAN: Radio ID/WLAN ID
Rx/Tx: link receive rate/link transmit rate(Mbps)
----------------------------------------------------------------------------------------
STA MAC AP ID Ap name Rf/WLAN Band Type Rx/Tx RSSI VLAN IP address
----------------------------------------------------------------------------------------
00e0-fcc7-1e08 1 area_2 1/1 5G 11n 46/59 -58 101 10.23.101.254
----------------------------------------------------------------------------------------
Total: 1 2.4G: 0 5G: 1
AP name 变成了 area_2,VLAN 还是 101,IP 还是 10.23.101.254——这就是 VLAN 内漫游的核心特征。最后一条命令直接看漫游轨迹:
[AC-wlan-view] display station roam-track sta-mac 00e0-fcc7-1e08
Access SSID:wlan-net
Rx/Tx:link receive rate/link transmit rate(Mbps)
c:PMK Cache Roam r:802.11r Roam s:Same Frequency Network
------------------------------------------------------------------------------
L2/L3 AC IP AP name Radio ID
BSSID TIME In/Out RSSI Out Rx/Tx
------------------------------------------------------------------------------
-- 10.23.100.1 area_1 1
00E0-FC76-E370 2016/01/12 16:52:58 -51/-48 46/13
L2 10.23.100.1 area_2 1
00E0-FC74-9650 2016/01/12 16:55:45 -58/- -/-
------------------------------------------------------------------------------
Number: 1
轨迹行首的 L2 就是二层漫游的标记,AC IP 一列前后都是 10.23.100.1——单 AC 内部交接,终端无感知。下次如果排查"走两步就掉线",先看这条 roam-track:有 L2 记录说明漫游正常,问题在别处;一条记录都没有,就该回头查 SSID 是否统一、射频环境是否够干净了。贵州诚鑫致达科技在交付无线网络后做验收时,拿真人拿着终端走一圈看漫游轨迹,是固定动作。你的楼里漫游轨迹能拉出来几条?评论区聊聊。