Cisco Validated Design — Baseline Analysis

Full 802.1X 漫游基线
显微镜级拆解

剥离 802.11r / OKC / CCKM 所有优化,回到第一性原理。在最严苛的 WPA2-Enterprise 基线场景下,用手术刀拆解每一次漫游中发生的 10 个关键步骤。

10
关键步骤
300ms–3s
基线漫游耗时
<150ms
语音容忍极限
4
交互实体
📱 终端 Supplicant 802.1X Client RSSI / SNR 决策 📡 AP-B / WLC Authenticator (NAD) C9800 + CAPWAP EAP ↔ RADIUS 翻译 🛡️ Cisco ISE Authentication Server RADIUS + 策略引擎 AuthC / AuthZ 🏛 AD/CA Identity Store LDAP/CRL/OCSP EAPOL / 802.11 RADIUS:1812 LDAP/RPC 空口 (Over-the-Air) 有线 (Wired Infra) 后端 (Backend)
图 1:Full 802.1X 漫游四大交互实体架构总览
Phase A

射频决策与信道扫描

01

终端离开 AP-A 覆盖(漫游决策期)

Break-before-Make — 漫游的第一性原理

漫游的本质是一个 "先断后连" 的过程。在标准终端(手机/电脑)上,客户端必须先切换信道,再发起对新 AP 的连接。记住铁律:漫游始终是终端(Client)的自主决策,基础设施只能建议或强制踢人。终端基于射频指标而非加速度计来触发扫描。

💡 核心原则:终端并不会因为"你在移动"而扫描。所有漫游判断均来自射频环境的变化。

决策指标与阈值

  • Apple iOS/macOS: RSSI 低于 -70 dBm(iOS)或 -75 dBm(macOS)开始后台扫描。新 AP 需好 8 dB(传输中)或 12 dB(空闲时)
  • Android/Samsung: 通常低于 -75 dBm,或信道利用率 >70% 且 RSSI < -65 dBm。新 AP 需好 10 dB

802.11k / 802.11v 辅助

  • 802.11k (Neighbor Report):AP 返回邻居列表(信道+BSSID),终端缩小扫描范围,极大减少延迟
  • 802.11v (BSS Transition):AP 可主动发送建议列表,甚至通过 Disassociation Imminent 强制漫游,解决粘性客户端问题
AP-A 覆盖 📡 RSSI: -45 dBm 📱 RSSI: -72 dBm ⚠️ 触发后台扫描 移动方向 → AP-B 覆盖 📡 RSSI: -40 dBm 重叠区域 漫游决策发生在此 ΔdB ≥ 8~12 dB 判断因素: ▸ RSSI(接收信号强度) ▸ SNR(信噪比) ▸ Beacon 丢失 >2s ▸ Max Retry Count
图 2:漫游决策触发 — 终端从 AP-A 到 AP-B 的射频判断
02

扫描信道(寻找 AP-B)

Active / Passive Scan — 全信道扫描 vs 子集扫描

终端决定要漫游后,必须通过空口扫描找到目标 AP-B。扫描方式的选择直接决定了漫游的延迟上限。

被动扫描 (Passive Scan)

终端只听不说,停留在某个信道上等待 AP 每 ~102ms 发送一次的 Beacon 帧。最省电,但耗时最长。

主动扫描 (Active Scan)

终端切换信道后广播 Probe Request,AP 在 ~10ms 内回复 Probe Response。耗电,但极快,漫游最常用。

⚠️ DFS 信道雷区:5GHz U-NII-2/2e 属 DFS 信道。法规严禁终端在 DFS 信道主动发包(Probe Request),终端必须先"被动"听到 Beacon 证明无雷达,导致扫描延迟显著增加。
🔴 延迟代价:每信道 Dwell Time 约 10-100ms。无 802.11k 时全信道扫描可达数百毫秒至几秒,远超语音 <150ms 容忍极限。
5 GHz 信道扫描示意 Ch36 ~10ms Ch40 ~10ms Ch44 ~10ms Ch52 DFS 102ms+ Ch100 DFS 102ms+ Ch140 DFS 102ms+ Ch149 目标! ✓ Ch153 ~10ms ← 无 802.11k:逐个信道遍历(全信道扫描) → ✅ 有 802.11k Neighbor Report 终端仅扫描邻居列表中的信道 Ch36 → Ch149 (2 个信道) 延迟:~20ms ✓ ❌ 无 11k 全扫描延迟:~500ms+
图 3:信道扫描流程 — DFS 信道对漫游延迟的致命影响
Phase B

底层 802.11 关联与 EAP 触发

03

与 AP-B 进行 802.11 Authentication & Association

Open System Auth → Reassociation — MAC 层的历史遗留握手

找到 AP-B 后,终端必须完成底层的 802.11 状态机连接。此时双方仅仅是 Layer 2 握手,还不具备数据转发能力

Open System Authentication

历史遗留的"空密码"认证。即使是 WPA2-Enterprise,第一步也必须走此过程:终端发送 Auth Request,AP 回复 Auth Response (Status: Success)。

Reassociation Request

因为是漫游,发送的是 Reassociation Request(非 Association)。关键字段:

  • SSID + Supported Rates
  • RSN IE:声明期望的安全策略(CCMP/AES + 802.1X AKM 00:0f:ac:1
💡 WLC 介入:Local Mode 下 AP 是轻量级的,将 802.11 帧封装进 CAPWAP 控制隧道发给 WLC(C9800 WNCd 进程)。WLC 处理关联逻辑并回复 Reassociation Response。
📱 终端 📡 AP-B WLC (C9800) CAPWAP Tunnel Auth Request (Open System) Auth Response (Success) ~5 ms Reassociation Request (RSN IE) Reassociation Response ~5 ms | WLC 决策
图 4:802.11 Open System Auth + Reassociation 交互(经 CAPWAP 至 WLC)
04

触发 802.1X / EAP 认证

Port-Unauthorized — EAPOL 闸门开启

关联成功后,WLC 发现 SSID 配置了 WPA2-Enterprise,将终端置于 "端口受控状态(Port-Unauthorized)",只允许 EAPOL 报文通过,阻断所有其他数据(DHCP、IP 等)

EAPOL-Start

终端主动发起(可选),表明"我准备好了,开始认证吧"。

EAP-Request / Identity

WLC(Authenticator)向终端询问身份。

EAP-Response / Identity

终端回复用户名(如 DOMAIN\bob 或匿名标识 anonymous)。WLC 封装进 RADIUS 发送给 ISE。

方法协商

ISE 提议 EAP 方法(如 EAP-TLS),终端如不支持则回复 Nak,直到双方就方法达成一致。

📱 终端 Supplicant 🔒 端口受控 Port-Unauthorized 仅放行 EAPOL ❌ DHCP / IP / ARP 全部阻断 EAPOL ✓ WLC Authenticator ISE Auth Server RADIUS
图 5:端口受控状态 — 仅 EAPOL 帧可通过,所有业务数据被阻断
Phase C

完整 EAP 认证(耗时大户)

05

完整的 802.1X / EAP 认证流程

无快速漫游 → 完整重认证 (200ms ~ 1000+ ms)

因为没有快速漫游机制(无 OKC / 11r),终端和 ISE 必须重新执行一次完整、极其耗时的 EAP 认证。这是整个漫游过程中的最大延迟瓶颈。

🔐 EAP-TLS — 双向证书认证(最高安全级别)
由于证书尺寸极大(2200-8000 Bytes),EAP 会进行分片(Fragmentation),导致多次往返。
📱 终端 (Supplicant) 🛡️ ISE (via WLC) 1. EAP-Request / EAP-TLS Start 2. EAP-Response / Client Hello Cipher Suites + 随机数 3. Server Hello + Certificate + CertReq ⚡ 大证书分片!多个 EAP Fragment 4. Client Cert + KeyExchange + Verify ⚡ 终端证书分片!又多个 Fragment 5. Change Cipher Spec + Finished 6. Empty EAP-Response (ACK) 7. ✅ EAP-Success 200 ~ 1000+ ms ⏱ 延迟分析 ▸ 每次 EAP 报文需经 空口(Client↔AP) + CAPWAP(AP↔WLC) + RADIUS(WLC↔ISE) 三段转发 ▸ 证书分片导致报文往返次数可达 10-20 次,每次 RTT 叠加 ▸ ISE 到 AD/CA 的后端查询增加额外 10-50ms
图 6A:EAP-TLS 完整认证序列 — 双向证书交换的分片地狱
🔑 PEAP-MSCHAPv2 — 用户名密码认证(两阶段)
Phase 1 建立单向 TLS 隧道(仅 ISE 出示证书),Phase 2 在加密隧道内执行 MSCHAPv2 质询。
📱 终端 🛡️ ISE Phase 1:外层 TLS 隧道 PEAP Start Client Hello → Server Hello/Cert → Finished 仅 ISE 出示证书,终端无需证书 🔐 TLS 加密隧道已建立 Phase 2:内层 MSCHAPv2(加密隧道内) EAP-Request / Identity (inner) MSCHAPv2 Challenge → Response 密码哈希在加密隧道内传输 ✅ EAP-Success 150 ~ 600ms
图 6B:PEAP-MSCHAPv2 两阶段认证序列 — 外层隧道保护内层密码
Phase D

后端策略与身份校验

06

WLC → RADIUS → ISE 通信细节

翻译官(Authenticator)的底层管道数据流转

WLC 充当 "翻译官"(Authenticator / NAD),将空口 EAP 帧封装在 RADIUS 报文(UDP 1812)中与 ISE 交互。

关键 RADIUS 属性

属性内容作用
User-Name终端的身份标识认证主体
Calling-Station-Id终端 MAC 地址ISE 端点画像与追踪(极度重要)
Called-Station-IdWLC MAC + SSID例如 00-11-22-33:Corp_SSID
NAS-IP-AddressWLC 管理 IPISE NAD 匹配
EAP-MessageEAP 载荷真正的 TLS/PEAP 报文

ISE Authentication Policy

ISE 看到 802.11 流量,匹配无线策略,决定到哪个 Identity Store(如内部用户库或 AD)去查询身份。

ISE Authorization Policy

认证成功后,ISE 根据 AD 组、终端指纹(Profiling)等分配 Authorization Profile(如下发 VLAN、SGT、ACL)。

07

ISE → AD / CA 的交互

ISE 是策略引擎,真实身份源在后端

PEAP → Active Directory

ISE 将终端的 MSCHAPv2 Challenge/Response 通过 DCE/RPCKerberos 传递给 Microsoft AD。AD 校验哈希通过后返回 OK,并附带用户的 AD 组信息(ExternalGroups)供 ISE 做授权。

EAP-TLS → 证书校验

ISE 充当本地验证者。校验终端证书的:

  • CA 信任链(Root/Sub CA)
  • 有效期
  • CRL(证书吊销列表)或 OCSP 在线查询
  • 如含 UPN,可能查询 AD 获取组信息
🛡️ ISE 策略引擎 🏛 Active Directory LDAP / DCE-RPC 🏛 CA / CRL / OCSP 证书校验 📡 WLC (NAD) RADIUS:1812 RADIUS MSCHAPv2 校验 CRL/OCSP 查询 验证通过 → Access-Accept (含 MSK) Access-Accept ⏱ AD 查询 + OCSP 通常额外增加 10-50ms
图 7:ISE 后端交互 — 根据 EAP 方法分流至 AD 或 CA 进行身份裁决
Phase E

密钥体系与四次握手

08

认证成功,生成 PMK(成对主密钥)

安全架构的枢纽环节 — 加密的"种子"诞生

这是整个安全架构的枢纽。只有认证成功,加密的"种子"才会被分发。

独立计算 MSK

终端(Supplicant)和 ISE(Auth Server)利用 TLS 握手材料,各自独立计算出一个 64 字节MSK (Master Session Key)

安全分发 MSK

ISE 将 MSK 打包在最后一个 RADIUS Access-Accept 报文的 MS-MPPE-Send-KeyMS-MPPE-Recv-Key 属性中,通过有线网络发送给 WLC。

🔑 截取 PMK:终端和 WLC 各自截取 MSK 的前 32 字节,即 PMK (Pairwise Master Key)。本次为"完全重认证",所以是全新 PMK,WLC 将其与终端 MAC 绑定存入内存。
MSK (Master Session Key) 64 bytes — 由 TLS 握手材料派生 截取前 32 字节 PMK (Pairwise Master Key) 32 bytes — 会话主密钥 PRF(PMK, ANonce, SNonce, MACs) PTK (Pairwise Transient Key) 单播加密密钥 — 由 4-Way Handshake 协商 KCK KEK TK (加密) MIC 完整性校验 密钥加密 数据帧加密 ISE 计算 → RADIUS 分发 终端 + WLC 各持一份 4-Way Handshake 产物
图 8:密钥派生层级 — MSK → PMK → PTK (KCK + KEK + TK)
09

四次握手 (4-Way Handshake)

PMK → PTK / GTK 协商 — 建立加密通道的最后冲刺

拥有了 PMK(主钥匙),WLC 和终端通过 4 次 EAPOL-Key 报文,协商出用于加密实际数据包的临时钥匙 PTK 和组播密钥 GTK

📱 终端 📡 WLC M1: WLC → 终端 | ANonce (明文) WLC 产生随机数 ANonce 并明文发送 🧮 终端内部计算 PTK PRF(PMK, ANonce, SNonce, MACs) M2: 终端 → WLC | SNonce + MIC 终端发送 SNonce 并用 PTK 签名(MIC)证明持有 PMK 🧮 WLC 计算 PTK + 校验 MIC MIC 验证通过 = PMK 一致 M3: WLC → 终端 | 加密的 GTK + MIC WLC 用 PTK 加密 GTK(组播密钥)发送给终端,附带 MIC M4: 终端 → WLC | ACK 确认 ✅ 双方密钥安装完毕,加密通道就绪 ~20-50 ms
图 9:4-Way Handshake 完整序列 — PTK / GTK 协商与密钥安装
Phase F

数据转发恢复

10

数据转发恢复 (S_CO_RUN)

漫游的漫长黑夜终于结束 — 闸门大开

状态翻转

WLC 将终端状态从 Authenticating / Associated 推进到 Run (S_CO_RUN) 状态。

授权策略落地

ISE 在 Access-Accept 中返回的授权结果此时被 WLC 应用:

  • VLAN ID 绑定
  • Airespace-ACL 下发
  • CTS:Security-Group-Tag (SGT)

闸门大开

WLC 解除"仅允许 EAPOL"阻断。终端后续的 DHCP、ARP、IP 流量全部由底层的 AES-CCMP 芯片级全速硬件加密

Authenticating Associated Key Exchange ✅ RUN S_CO_RUN AES-CCMP 硬件加密 | 数据转发就绪
图 10:WLC 终端状态机推进 — 从 Authenticating 到 RUN 的完整生命周期

⏱️ 漫游总耗时估算 — MSC 全局消息序列图

在无任何快速漫游(11r / OKC)的基线中,每一次漫游都是一场灾难

Client AP-B / WLC ISE AD / CA Phase A: 射频扫描 + L2 关联 (1) Probe Req → Probe Res 10-500+ ms (2) 802.11 Open Auth ~5 ms (3) Reassociation Req / Res ~5 ms 🔒 端口阻塞 — 仅放行 EAPOL Phase C: 完整 EAP 认证 (耗时大户) (4) EAP-Request / Identity (5) EAP-Response / Identity RADIUS Access-Request RADIUS Access-Challenge (6) EAP-TLS 或 PEAP 认证阶段 5 ~ 20 个交互报文(含证书分片往返) Client ←EAPOL→ WLC ←RADIUS→ ISE LDAP / RPC / OCSP AD/CA 返回结果 ⏱ 认证耗时大户 通常 200ms ~ 1000+ ms RADIUS Access-Accept (MSK) MS-MPPE-Send-Key / Recv-Key Phase D: 4-Way Handshake + 密钥安装 (7) EAPOL-Key M1: ANonce (8) EAPOL-Key M2: SNonce + MIC ~20-50 ms (9) EAPOL-Key M3: GTK + MIC (10) EAPOL-Key M4: ACK ✅ ✅ 端口放行 — AES-CCMP 加密就绪 (11) DHCP / ARP / 数据转发 总计 300ms — 数秒
图 11:Full 802.1X 漫游 MSC 全局消息序列 — 四实体交互全貌

🚀 为什么需要 Fast Roaming(802.11r / FT)?

从 MSC 序列可以看出,一次无优化的 802.1X 漫游耗时通常在 300ms 到数秒不等。这远超语音视频(Webex / Teams)所能容忍的 150ms 延迟极限,会导致明显的音频卡顿或通话掉线。


802.11r (Fast Transition) 通过在 AP 之间提前分发派生的密钥(PMK-R0 / PMK-R1),直接砍掉了序列中的 Step 4 ~ Step 7(数百毫秒的 EAP 和 RADIUS 交互),并将四次握手压缩在 Reassociation 帧内完成。这就是我们为什么需要在企业网中部署快速漫游优化机制的根本原因

❌ 无 802.11r(本文基线) Scan Auth Assoc Full EAP + RADIUS + AD/CA (200-1000+ ms) 🔥 4-Way HS RUN ~1-3s ✅ 有 802.11r (Fast Transition) Scan FT Auth + Reassoc (含密钥) RUN ← EAP / RADIUS / AD 全部跳过 → <50ms
图 12:802.11r Fast Transition 对比 — 从秒级降至 50ms 以内