<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>快速漫游 on Zero Day Notes</title>
        <link>https://blog.5772447.xyz/tags/%E5%BF%AB%E9%80%9F%E6%BC%AB%E6%B8%B8/</link>
        <description>Recent content in 快速漫游 on Zero Day Notes</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh</language>
        <lastBuildDate>Thu, 12 Nov 2026 09:00:00 +0800</lastBuildDate><atom:link href="https://blog.5772447.xyz/tags/%E5%BF%AB%E9%80%9F%E6%BC%AB%E6%B8%B8/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>漫游断五秒：802.11r 密钥域不一致</title>
            <link>https://blog.5772447.xyz/posts/32083ef1/</link>
            <pubDate>Thu, 12 Nov 2026 09:00:00 +0800</pubDate>
            <guid>https://blog.5772447.xyz/posts/32083ef1/</guid>
            <description>&lt;h2 id=&#34;问题背景&#34;&gt;&lt;a href=&#34;#%e9%97%ae%e9%a2%98%e8%83%8c%e6%99%af&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;问题背景&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;公司办公楼共 6 层，部署了 48 台吸顶 AP，由无线控制器统一管理。办公 SSID 使用 802.1X EAP-TLS 认证，终端连上后由 RADIUS 下发 VLAN 和权限。日常办公、视频会议、无线话机都跑在这个网络上。&lt;/p&gt;&#xA;&lt;p&gt;AP 是分批建设的：3 层和 4 层最早由一家集成商实施，其余楼层是后来扩容时另一家做的。两批 AP 都开了 802.11r 快速漫游，控制器界面上看都是“已启用”。但员工反馈，拿着笔记本从 3 层走到 4 层、或者从 4 层走到 5 层时，视频会议会卡住三五秒，无线话机通话直接断掉；在同一层内走动反而基本正常。&lt;/p&gt;&#xA;&lt;h2 id=&#34;故障现象&#34;&gt;&lt;a href=&#34;#%e6%95%85%e9%9a%9c%e7%8e%b0%e8%b1%a1&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;故障现象&#xD;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;跨楼层漫游时，终端重新关联要 3–5 秒，期间 ping 丢包、视频冻结、通话中断。&lt;/li&gt;&#xA;&lt;li&gt;同层漫游偶尔也有 1 秒左右抖动，但比跨层轻得多。&lt;/li&gt;&#xA;&lt;li&gt;控制器日志里能看到 &lt;code&gt;FT authentication failed&lt;/code&gt;、&lt;code&gt;mobility domain mismatch&lt;/code&gt;、&lt;code&gt;R0KH not found&lt;/code&gt; 之类记录。&lt;/li&gt;&#xA;&lt;li&gt;抓包看漫游过程，终端走的是完整的 EAP-TLS 认证，而不是 802.11r 的 FT 认证；认证完成后还要重新走一次 DHCP。&lt;/li&gt;&#xA;&lt;li&gt;受影响的终端不分品牌，笔记本、手机、无线话机都有；但都集中在跨 AP 组的漫游路径上。&lt;/li&gt;&#xA;&lt;li&gt;有线网络、固定位置办公完全正常，问题只在“移动中切换 AP”。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;排查过程&#34;&gt;&lt;a href=&#34;#%e6%8e%92%e6%9f%a5%e8%bf%87%e7%a8%8b&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;排查过程&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;第一步确认漫游耗时花在哪。在终端上持续 ping 网关，同时拿着设备从 3 层走到 4 层，记录丢包时间段；再用无线分析工具抓漫游前后的管理帧，看到终端先断开关联、重新扫描、发起完整的 802.1X 认证，整个 EAP-TLS 握手加上 DHCP 拿地址，正好三到五秒。&lt;/p&gt;&#xA;&lt;p&gt;第二步看是不是 802.11r 没生效。抓包里的认证算法字段是 Open（0），不是 FT（3）；重关联请求里也没有 FTIE。也就是说，终端和 AP 都退回了普通漫游，快速切换根本没有发生。&lt;/p&gt;&#xA;&lt;p&gt;第三步查控制器日志。跨组漫游时日志出现 &lt;code&gt;mobility domain mismatch&lt;/code&gt; 和 &lt;code&gt;R0KH not found&lt;/code&gt;：前者说明两个 AP 组的移动域标识不一致，后者说明目标 AP 找不到源 AP 的 R0KH 密钥持有者。802.11r 的 FT 依赖同一个移动域内共享的 PMK-R0/R1 密钥材料；移动域不同、R0KH 标识不同，终端就无法复用之前的认证结果，只能重新做一次完整认证。&lt;/p&gt;&#xA;&lt;p&gt;第四步对比 AP 组配置。把 3/4 层和 5/6 层的 AP 组配置逐项导出对比：移动域 ID 一个是 &lt;code&gt;0x1122&lt;/code&gt;，另一个是 &lt;code&gt;0x3344&lt;/code&gt;；R0KH-ID 一个是控制器地址，另一个是集成商自定义的字符串；有一组还关掉了 11k 邻居报告。三处不一致叠加，跨组漫游必然失败。&lt;/p&gt;&#xA;&lt;p&gt;第五步做对照实验。先把 5/6 层 AP 组的移动域和 R0KH-ID 改成与 3/4 层一致，只改这一项，再走一次跨层漫游：抓包里出现 FT 认证（算法 3）和 FTIE，漫游耗时降到 100–200ms，ping 只丢一个包，视频会议不再冻结。再把 11k 打开，终端扫描邻居的时间进一步缩短。&lt;/p&gt;&#xA;&lt;p&gt;第六步确认客户端侧。部分老款无线话机不支持 802.11r，这类终端即使网络侧配置正确也只能走完整认证；把它们固定到 5G 频段、减少跨组漫游路径，并在话机侧开启 11k/v 支持（如果厂商提供），把中断控制在可接受范围。&lt;/p&gt;&#xA;&lt;h2 id=&#34;解决方案&#34;&gt;&lt;a href=&#34;#%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;解决方案&#xD;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;统一移动域与密钥域&lt;/strong&gt;：同一个 ESS 内所有 AP 组的移动域 ID、R0KH-ID、R1KH-ID 必须一致，R0KH 密钥要能互相分发；这是 802.11r 生效的前提，不是“每台 AP 打开开关”就行。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;统一 11k/v&lt;/strong&gt;：打开 802.11k 邻居报告和 802.11v BSS 过渡管理，让终端在漫游前就知道目标 AP、减少扫描时间；11r 负责快速认证，11k/v 负责快速发现和决策，三者配合才顺。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;按 ESS 规划 AP 组&lt;/strong&gt;：不要按“施工批次”划分 AP 组，按 ESS/楼层/区域划分；同一 ESS 内配置模板统一，扩容时从模板复制而不是重新填。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;客户端分类处理&lt;/strong&gt;：支持 11r 的终端走 FT；不支持的终端用 OKC（机会密钥缓存）或接受完整认证，并通过 AP 布放减少跨组漫游；无线话机优先固定 5G、靠近 AP。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;验收加漫游测试&lt;/strong&gt;：上线前用终端在相邻 AP 间来回走动，抓包确认 FT 认证、记录漫游时延和丢包；验收标准可以是漫游中断小于 200ms、ping 丢包不超过 1 个。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;监控与告警&lt;/strong&gt;：控制器侧采集漫游失败、FT 失败、R0KH 错误计数，按 AP 组聚合；跨组漫游失败率升高时提前排查，不等用户报会议卡顿。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;根因分析&#34;&gt;&lt;a href=&#34;#%e6%a0%b9%e5%9b%a0%e5%88%86%e6%9e%90&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;根因分析&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;直接根因是 &lt;strong&gt;两批 AP 分属不同的移动域、R0KH 标识不一致，802.11r 的 FT 认证无法跨组复用密钥，终端每次跨层漫游都退化成完整的 EAP-TLS 认证加 DHCP，耗时 3–5 秒&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;更深一层，是把 802.11r 当成了“每台 AP 上的一个开关”。快速漫游不是单机功能，而是一个域级能力：移动域 ID 定义了“谁和谁是一伙的”，R0KH 密钥域决定了“能不能复用之前的认证”。开关都打开、但域不一致，等于每家店都挂了“连锁”招牌，却互相不认会员卡。&lt;/p&gt;&#xA;&lt;p&gt;还有一层是建设方式留下的债。AP 分批、由不同集成商实施，配置模板没有统一，验收只测了“能连上、能上网”，没有测“走动时断多久”。静态办公场景完全正常，移动场景才暴露，问题因此藏了很久。&lt;/p&gt;&#xA;&lt;h2 id=&#34;预防措施&#34;&gt;&lt;a href=&#34;#%e9%a2%84%e9%98%b2%e6%8e%aa%e6%96%bd&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;预防措施&#xD;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;无线配置基线化：同一 ESS 的移动域、R0KH/R1KH、11k/v、安全套件全部写入模板，扩容和改造只能从模板派生。&lt;/li&gt;&#xA;&lt;li&gt;验收必须包含移动性测试：相邻 AP 间往返漫游、跨楼层漫游、不同终端类型各测一遍，记录时延和丢包。&lt;/li&gt;&#xA;&lt;li&gt;AP 组按 ESS/区域划分，不按施工批次划分；控制器上定期对比各组配置差异，发现漂移及时收敛。&lt;/li&gt;&#xA;&lt;li&gt;监控控制器漫游日志与 FT 失败计数，按 AP 组和终端类型聚合，异常升高时告警。&lt;/li&gt;&#xA;&lt;li&gt;对不支持 11r 的终端建立清单，评估 OKC、固件升级或 AP 布放优化，不把“兼容性”留给用户感知。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;总结&#34;&gt;&lt;a href=&#34;#%e6%80%bb%e7%bb%93&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;总结&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;802.11r 的“开”不是每台 AP 各自打开一个开关，而是所有 AP 在同一个移动域里共享同一套密钥。域不一致时，终端看起来还能漫游，实际上每次都在重新做一遍完整认证；三五秒的中断，足够让一场视频会议卡成幻灯片。把移动域、R0KH 和 11k/v 作为一套基线来管，把漫游时延纳入验收，无线网络才真正“走得动”。&lt;/p&gt;&#xA;&lt;h2 id=&#34;延伸阅读&#34;&gt;&lt;a href=&#34;#%e5%bb%b6%e4%bc%b8%e9%98%85%e8%af%bb&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;延伸阅读&#xD;&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.5772447.xyz/posts/04006cb8/&#34; &gt;EAP-TLS 证书过期：全公司 802.1X 掉线&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://blog.5772447.xyz/posts/4561423f/&#34; &gt;802.1X 认证后终端拿不到 IP 的排查&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item></channel>
</rss>
