WIFI无线网络之DFS简述

概述

DFS(Dynamic Frequency Selection,动态频率选择) 是一项强制性的技术机制,要求使用 5GHz 频段中与气象雷达、军事雷达等共用信道的 WiFi 设备,能够自动检测雷达信号,并在检测到后迅速切换信道,避免对雷达系统造成干扰。

DFS 是国际电信联盟(ITU)和各国无线电管理机构(如 FCC、ECC、SRRC)强制要求的功能,所有在 5GHz 频段工作的商用 WiFi 设备(AP、路由器、网桥等)必须遵守。

IEEE 802.11标准演进与DFS

标准 年份 DFS相关增强
802.11h 2003 首次引入DFS+TPC,面向欧洲5GHz合规
802.11n 2009 支持40MHz信道,需跨信道雷达检测
802.11ac 2013 80/160MHz宽信道,雷达检测复杂度指数增长
802.11ax 2019 OFDMA调度与DFS协同,减少切换延迟
802.11be (Wi-Fi 7) 2024 MLO多链路操作,实现”零等待”信道切换

5GHz 相关信道列表

信道范围 频率 (MHz) 中国 (MIIT) 美国 (FCC) 欧盟 (ETSI) 日本 (MIC) 备注
36-48 5180-5240 ✅ 非DFS ✅ 非DFS ✅ 非DFS ✅ 非DFS UNII-1,全球通用
52-64 5260-5320 ✅ DFS ✅ DFS ✅ DFS ✅ DFS UNII-2A,需CAC+TPC
100-144 5500-5720 ✅ DFS ✅ DFS ✅ DFS ✅ DFS UNII-2C
149-165 5745-5825 ✅ 非DFS ✅ 非DFS ❌ 禁用 ✅ 非DFS UNII-3,欧盟禁止室外使用
169-177 5845-5925 ❌ 禁用 ❌ 禁用 ✅ 非DFS ❌ 禁用 仅欧盟部分国家开放

⚠️ 中国特殊限制:

  • 6GHz频段 (5925-7125 MHz) 全部划归5G/6G移动通信,不开放给WiFi

为什么需要 DFS?

频段共享背景

5GHz 频段并非全部免费开放给 WiFi。其中部分频率(尤其是 5.25-5.35GHz 和 5.47-5.725GHz)原本分配给:

  • 气象雷达(天气监测)
  • 军用雷达(空中交通管制、舰载雷达)
  • 地球探测卫星(遥感)

这些雷达系统具有主要用户(Primary User)地位,WiFi 作为次要用户(Secondary User)不得对其产生有害干扰。

如果不使用 DFS

  • WiFi 设备可能在雷达使用的同一频率上持续发射,完全淹没雷达回波信号,影响航空安全、天气预报准确性。
  • 各国监管机构会禁止在该频段使用 WiFi,或要求设备强制关闭。

因此 DFS 是实现 频谱共享 的关键技术。

DFS 工作原理

核心流程

DFS 的工作可分为四个阶段:

┌─────────────┐
│ 1. 信道检测  │ ← 启动前强制静默监听 60 秒(CAC)
└──────┬──────┘
       ↓
┌─────────────┐
│ 2. 正常运行  │ ← 持续监测雷达脉冲
└──────┬──────┘
       ↓ (检测到雷达)
┌─────────────┐
│ 3. 信道切换  │ ← 在指定时间内(通常 ≤10 秒)停止发射并跳转
└──────┬──────┘
       ↓
┌─────────────┐
│ 4. 信道停用  │ ← 将原信道列入黑名单一段时间(30 分钟)
└─────────────┘

相关概念及机制

阶段 名称 描述 时间要求
CAC Channel Availability Check AP 在某个 DFS 信道启动前,必须静默监听至少 60 秒(欧洲部分国家要求 10 分钟),确认无雷达信号。期间不发送任何 WiFi 帧。 ≥ 60 秒
ISM In-Service Monitoring 正常工作期间,AP 持续对当前信道进行雷达脉冲检测。 持续
Move Channel Move 一旦检测到雷达,AP 必须在规定时间内停止该信道上所有发射,并通知关联的 STA 切换信道。 ≤ 10 秒
Non-Occupancy 非占用期 被雷达占用的信道在 30 分钟 内不得再被使用。 30 分钟

其他概念:

  • NOL:非占用列表,指那些已知近期有雷达脉冲、因而无法使用的信道。
  • CSA (Channel Switch Announcement):信道切换公告。802.11h标准动态切换信道的能力,在管理帧中加入CSA信息元素,警告网络中的工作站即将变换信道。

Linux中的DFS

相关文档描述

802.11协议中DFS的基本工作原理是:主控802.11设备必须先在DFS信道上持续监测一段时间,以确认是否存在雷达脉冲。只有在确认无雷达脉冲后,设备才能正式启用该信道进行通信。一旦开始使用某个信道,设备必须定期检查雷达脉冲。如果检测到与雷达信号匹配的脉冲模式,主控设备需通知所有已连接的客户端立即切换信道,并在规定时间内完成信道切换。此外,主控设备还需确保在一段特定时间之内不再重新使用该信道;在此之后,该信道可被列入白名单并最终再次启用。

为此,我们需要以下软件支持:

  • 管理近期出现过雷达脉冲的信道,并设置相应的清理定时器;
  • 向已连接的客户端通报信道切换信息;
  • 提供算法以帮助识别下一个最佳信道——具体需求是随机选择一个信道。
  • 硬件方面,我们需要雷达探测功能。所有这些功能都需要软件来实现。

来源内核文档https://wireless.docs.kernel.org/en/latest/en/developers/dfs.html#dfs-dynamic-frequency-selection

相关工具和操作

国家码监管域:

# 当前监管域设置
global
country CN: DFS-FCC
	(2400 - 2483 @ 40), (N/A, 20), (N/A)
	(5150 - 5350 @ 80), (N/A, 20), (0 ms), DFS, AUTO-BW  # DFS信道标记
	(5725 - 5850 @ 80), (N/A, 33), (N/A)
	(57240 - 59400 @ 2160), (N/A, 28), (N/A)
	(59400 - 63720 @ 2160), (N/A, 44), (N/A)
	(63720 - 65880 @ 2160), (N/A, 28), (N/A)

# 手动设置区域码
$ sudo iw reg set CN
$ sudo iw dev wlan0 set channel 36 HT40+  # 优先使用非DFS信道

# 监管数据库
git clone https://git.kernel.org/pub/scm/linux/kernel/git/wens/wireless-regdb.git

之前介绍监管域的文章:https://notes.z-dd.online/2025/10/27/WIFI%E6%97%A0%E7%BA%BF%E7%BD%91%E7%BB%9C%E4%B9%8B%E6%97%A0%E7%BA%BF%E7%9B%91%E7%AE%A1%E5%9F%9F/

hostapd配置:

# hostapd.conf 推荐配置 
country_code=CN
ieee80211d=1              # 启用802.11d广播区域信息
ieee80211h=1              # 启用DFS/TPC支持
channel=36                # 首选非DFS信道
hw_mode=a                 # 5G 

# DFS信道备用策略
chanlist=36 40 44 48 149 153 157  # 仅包含中国开放信道

信道扫描与分析:

# 扫描当前环境5GHz信道 (含DFS标记)
$ sudo iw dev wlan0 scan freq 5180 5200 5220 5240 5260 5280 5300 5320 | grep -E "freq:|DFS"

# 查看物理层支持能力,可能包括 radar detection 字段
$ iw phy0 info

# 实时监控DFS事件 (未验证)
$ dmesg -w | grep -E "radar|DFS|channel.*switch"