第135篇:无线 LAN 基础:AP、AC、CAPWAP 隧道
关键词:WLAN、AP、AC、CAPWAP、瘦AP、无线控制器、DHCP Option 43、DNS 发现、华为 AirEngine
一、引言
无线 LAN(WLAN)已成为园区网的核心组成部分。从手机到笔记本,从 IoT 设备到视频会议终端,几乎所有终端都通过 Wi-Fi 接入网络。但在 Wi-Fi 的便捷背后,是一个复杂的基础设施体系:无线接入点(AP)、无线控制器(AC)、CAPWAP 隧道、无线漫游、信道规划……
本篇作为无线技术系列的第一篇,从最基础的概念入手,介绍 AP、AC 的架构模型和它们之间的 CAPWAP 隧道技术。
二、核心概念
2.1 WLAN 架构组成

| 组件 | 全称 | 功能 |
|---|---|---|
| STA | Station | 无线终端(手机、笔记本、平板等) |
| AP | Access Point | 无线接入点,提供射频覆盖 |
| AC | Access Controller | 无线控制器,集中管理 AP 和漫游 |
| FAT AP | 胖 AP | 独立运行,自行处理所有无线功能 |
| FIT AP | 瘦 AP | 依赖 AC 管理,仅负责射频收发 |
2.2 瘦 AP 模式数据流

2.3 CAPWAP 隧道
CAPWAP(Control And Provisioning of Wireless Access Points,RFC 5415)是 AC 和 AP 之间的标准隧道协议。
| 特性 | 说明 |
|---|---|
| 传输协议 | UDP 5246(DTLS 加密隧道,可选) |
| 控制报文 | UDP 5247 |
| 隧道类型 | 三层隧道(跨 VLAN/子网传输) |
| 承载内容 | 管理报文 + 数据报文 |
| DTLS 加密 | 可选,保护 AP-AC 间通信 |
三、技术细节
3.1 CAPWAP 报文类型
| 报文类型 | 方向 | 说明 |
|---|---|---|
| Discovery Request | AP → 广播 | AP 上线时广播寻找 AC |
| Discovery Response | AC → AP | AC 回复自身信息(IP、优先级、AP 数) |
| Join Request | AP → AC | AP 选择 AC 后发起加入 |
| Join Response | AC → AP | AC 接受/拒绝加入 |
| Configure Request | AC → AP | AC 下发配置(SSID、射频参数、安全策略) |
| Configure Response | AP → AC | AP 确认配置 |
| Data | AP ↔ AC | 用户数据(STA 的业务流量) |
| Keepalive | AP ↔ AC | 心跳维持隧道 |
3.2 AP 发现 AC 的四种方式

| 方式 | 配置位置 | 说明 | 适用场景 |
|---|---|---|---|
| DHCP Option 43 | DHCP 服务器 | DHCP 应答中携带 AC IP 地址列表 | 最常用,集中管理 |
| DNS 域名解析 | DNS 服务器 | AP 查询 _capwap-ctrl._udp.domain |
大型部署,AC 负载均衡 |
| 广播发现 | 无需额外配置 | AP 发送广播 Discovery Request | 仅限同一子网 |
| 本地配置 | AP 本身 | 手动指定 AC IP | 测试/应急 |
3.3 AP 选择 AC 的优先级
AP 可能收到多个 AC 的回复,选择规则:
- AC 优先级(Priority):AC 在 Discovery Response 中通告优先级(0-255),AP 选择优先级最高的
- AP 数量:如果优先级相同,选择已关联 AP 数最少的 AC(负载均衡)
- AC IP 地址:如果以上都相同,选择 IP 地址最大的
3.4 CAPWAP 隧道建立流程

四、实战配置/案例分析
4.1 AC + FIT AP 完整配置
# ========== AC 侧配置 ==========
# Step 1: 全局使能 WLAN
[AC] wlan enable
# Step 2: 配置 AP 管理 VLAN 和数据 VLAN
[AC] vlan batch 100 200
[AC] vlan 100
[AC-vlan100] description AP-MGMT
[AC-vlan100] quit
[AC] vlan 200
[AC-vlan200] description STA-DATA
[AC-vlan200] quit
# Step 3: 配置 AP 管理地址源接口
[AC] interface Vlanif 100
[AC-Vlanif100] ip address 10.10.100.1 24
# Step 4: 配置 AC 源 IP
[AC] wlan
[AC-wlan-view] ap-mgmt source-ip 10.10.100.1
# Step 5: 配置 AP 组
[AC-wlan-view] ap-group name office-group
[AC-wlan-ap-group-office-group] ap-id 1 ap-mac 00e0-fc01-0002
[AC-wlan-ap-group-office-group] ap-id 2 ap-mac 00e0-fc01-0003
[AC-wlan-ap-group-office-group] quit
# Step 6: 创建射频模板
[AC-wlan-view] radio-template name office-radio
[AC-wlan-radio-template-office-radio] 5ghz band-width auto 40 20
[AC-wlan-radio-template-office-radio] txpower fixed 20
[AC-wlan-radio-template-office-radio] channel auto
[AC-wlan-radio-template-office-radio] quit
# Step 7: 创建安全模板
[AC-wlan-view] security-profile name office-sec
[AC-wlan-security-profile-office-sec] security wpa-wpa2 psk pass-phrase Huawei@WLAN cipher aes
[AC-wlan-security-profile-office-sec] quit
# Step 8: 创建 VAP 模板
[AC-wlan-view] vap-profile name office-vap
[AC-wlan-vap-profile-office-vap] forward proxy-arp
[AC-wlan-vap-profile-office-vap] service-vlan vlan-id 200
[AC-wlan-vap-profile-office-vap] ssid office-wifi
[AC-wlan-vap-profile-office-vap] security-profile office-sec
[AC-wlan-vap-profile-office-vap] quit
# Step 9: 创建 AP 模板
[AC-wlan-view] ap-template name office-ap
[AC-wlan-ap-template-office-ap] radio 1 radio-template office-radio
[AC-wlan-ap-template-office-ap] radio 2 radio-template office-radio
[AC-wlan-ap-template-office-ap] max-clients 64
[AC-wlan-ap-template-office-ap] quit
# Step 10: 绑定模板到 AP 组
[AC-wlan-view] ap-group name office-group
[AC-wlan-ap-group-office-group] ap-template office-ap
[AC-wlan-ap-group-office-group] vap-profile office-vap wlan 1 radio all
[AC-wlan-ap-group-office-group] quit
[AC-wlan-view] quit
# ========== DHCP 服务器配置(为 AP 分配 IP + Option 43) ==========
[AC] ip pool ap-pool
[AC-ip-pool-ap-pool] network 10.10.100.0 mask 24
[AC-ip-pool-ap-pool] gateway 10.10.100.1
[AC-ip-pool-ap-pool] option 43 sub-option 3 hex 030000010a0a6401
# Option 43 中的 AC IP = 10.10.100.1 (0a 0a 64 01)
[AC-ip-pool-ap-pool] quit
[AC] interface Vlanif 100
[AC-Vlanif100] dhcp select global
# ========== 验证 ==========
[AC] display ap all
[AC] display vap-profile
[AC] display radio-template
4.2 DHCP Option 43 编码规则
# Option 43 编码格式(华为格式):
# 子选项 3(Sub-option 3),后接 AC IP 列表
# 单个 AC(10.10.100.1)的十六进制:03 07 03 05 01 0a 0a 64 01
| 字节偏移 | 十六进制 | 字段名 | 说明 |
|---|---|---|---|
| 0 | 03 | Option 43 代码 | 标识为 DHCP Option 43 |
| 1 | 07 | Option 43 总长度 | 后续字节总数(7 字节) |
| 2 | 03 | Sub-option 类型 | 华为子选项 3(AC IP 列表) |
| 3 | 05 | AC 列表长度 | AC 数量 + AC IP 地址总字节数 |
| 4 | 01 | AC 数量 | 列表中 AC 的地址个数(1 个) |
| 5-8 | 0a 0a 64 01 | AC IP 地址 | 10.10.100.1(每字节一个十进制段) |
# 多个 AC(10.10.100.1 / 10.10.100.2 / 10.10.100.3):
# 03 0d 03 0b 03 0a 0a 64 01 0a 0a 64 02 0a 0a 64 03
# (三个 AC 的 IP 依次拼接,AC 数量字段为 03)
4.3 故障案例:AP 无法上线
场景:新部署的 FIT AP 通电后指示灯橙色闪烁,始终无法上线到 AC。
排查:
# 1. 在 AC 上查看 AP 状态
[AC] display ap all
# 无任何 AP 显示
# 2. 在 AP 侧(如果有 Console 口)查看
[AP] display current-configuration | include capwap
# 未找到 AC 地址
# 3. 检查 DHCP 分配
[AC] display ip pool ap-pool
# 地址池正常
# 4. 抓包查看 AP 发出的 Discovery Request
# 发现 AP 发送的是广播 Discovery Request
# 但 AC 和 AP 不在同一子网,广播无法到达 AC
# 5. 检查 Option 43
[AC] display ip pool ap-pool verbose
# 发现 Option 43 未配置或编码错误
根因:AP 与 AC 不在同一子网,广播发现方式不可用;同时 DHCP Option 43 编码错误,AP 无法获取 AC 的单播地址。
处理:
# 修正 Option 43 编码
[AC] ip pool ap-pool
[AC-ip-pool-ap-pool] option 43 sub-option 3 hex 030000010a0a6401
4.4 故障案例:CAPWAP 隧道建立失败
场景:AP 能发现 AC(display ap all 显示状态为 Unauthorized),但无法完成隧道建立。
排查:
[AC] display ap name AP-01
# State: Unauthorized
# 状态卡在建链阶段
# 检查 AC 的 AP 授权模式
[AC] display current-configuration | include authorization-mode
# ap-mgmt authorization-mode mac-authen
# 使用了 MAC 地址认证模式
# 但 AP 的 MAC 地址未在 AC 上注册
根因:AC 配置了 MAC 地址认证模式,但新 AP 的 MAC 地址未在 AC 的白名单中。
处理:
# 方式1:将 AP 加入 AP 组(自动注册)
[AC] wlan
[AC-wlan-view] ap-group name office-group
[AC-wlan-ap-group-office-group] ap-id 1 ap-mac 00e0-fc01-0002
# 方式2:改为开放模式(不推荐生产环境)
[AC-wlan-view] ap-mgmt authorization-mode open
五、总结
| 项目 | 说明 |
|---|---|
| AP 模式 | 胖 AP(独立)vs 瘦 AP(依赖 AC) |
| AC 功能 | 集中管理、配置下发、漫游控制、射频优化 |
| CAPWAP | AC 与 AP 之间的标准隧道协议(UDP 5246/5247) |
| AP 发现 AC | DHCP Option 43(最常用)、DNS、广播、本地配置 |
| AC 选择 | 优先级 > AP 数量 > IP 地址 |
| 隧道建立 | Discovery → Join → Configure → 就绪 |
| 数据转发 | 隧道转发(到 AC 解封装)vs 本地转发(AP 直接上联交换机) |
| 华为产品 | AirEngine 系列 AP + AC6760/CloudEngine 交换机内置 AC |
思考
-
CAPWAP 隧道默认使用 UDP 5246 端口。如果企业防火墙阻断了 5246 端口,AP 还能上线吗?如何解决?
-
瘦 AP 模式下,所有用户数据都要经 CAPWAP 隧道转发到 AC。如果 AC 距离接入交换机很远(跨广域网),这对用户延迟有什么影响?有没有替代方案?
-
AP 发现 AC 时,DHCP Option 43 是最常用的方式。但如果 DHCP 服务器本身由 AC 提供,Option 43 还需要配置吗?
下篇预告:第136篇:无线漫游:二层漫游与三层漫游