华为无线网络DHCP中继排障全记录一次从AP无法上线到全网打通的完整实战
一、背景概述
在搭建企业无线网络环境时,采用以下拓扑结构:
text
AP(接入点)
│
▼
LSW汇聚交换机
│
▼
AC(无线控制器)—— DHCP中继角色
│
▼
LSW核心交换机(10.0.8.1)
│
▼
AR3路由器(10.0.8.3)—— DHCP服务器

需求:AP从AR3路由器获取管理IP地址,与AC建立CAPWAP隧道并上线。
二、问题现象
-
AP启动后无法上线,始终处于
Idle状态。 -
AC上抓包能看到AP发来的DHCP Discover广播报文。
-
AC上行口抓包看不到任何发往DHCP服务器的单播报文。
-
DHCP服务器(AR3)收到Discover但无Offer回应。
-
AR3持续发送ARP广播询问
192.168.1.1(AC的Vlanif101 IP),无人应答。
三、排障过程
第一阶段:AC侧——中继功能未生效
现象:AC收到Discover广播,但未“翻译”成单播转发给AR3。
根因分析:
-
AC只有
Vlanif1(IP为169.254.1.1,链路本地地址),缺少AP管理VLAN对应的三层接口。 -
交换机端口PVID=100,AP报文被打上VLAN 100标签,但AC设置的是
Vlanif101接口来做中继
关键点:dhcp select relay和dhcp relay server-ip两条命令缺一不可。
第二阶段:路由侧——静态路由下一跳错误(最终Boss)
现象:AR3收到Discover后尝试回复Offer,但持续发送ARP广播“Who has 192.168.1.1?”,无人应答。
根因分析:
AR3上配置了两条默认路由:
bash
ip route-static 0.0.0.0 0.0.0.0 GigabitEthernet0/0/0 # ❌ 指向物理端口 ip route-static 0.0.0.0 0.0.0.0 10.0.8.1 # ✅ 指向下一跳IP
当AR3要给AC(192.168.1.1)回复Offer时:
-
查路由表无192.168.1.0/24明细路由,命中默认路由。
-
默认路由负载分担或等价路由机制生效,部分流量匹配了指向物理端口的那条。
-
路由器认为“目标192.168.1.1就在GigabitEthernet0/0/0的对端”,直接在物理口发ARP广播寻找192.168.1.1。
-
但192.168.1.1(AC的Vlanif101)在另一个广播域(VLAN 101),根本收不到该ARP请求。
-
Offer包因无法完成二层封装而被丢弃。
为什么“指向物理端口”在以太网上是错误的?
| 链路类型 | 指定出接口行为 | 结果 |
|---|---|---|
| 点对点链路(PPP/HDLC/Serial) | 对端唯一,直接发送 | ✅ 正确 |
| 以太网(Ethernet) | 广播域内有多台设备,需先ARP解析下一跳 | ❌ 错误 |
解决方案:
bash
# 删除指向物理端口的错误默认路由 undo ip route-static 0.0.0.0 0.0.0.0 GigabitEthernet0/0/0 # 保留指向下一跳IP的正确默认路由(已存在) # ip route-static 0.0.0.0 0.0.0.0 10.0.8.1
核心原理:指向下一跳IP时,路由器只会在直连网段内ARP解析网关(10.0.8.1),而非目标IP(192.168.1.1)。网关负责将包继续转发,完成跨网段通信。
四、最终完整配置清单
1. LSW汇聚交换机(连接AP和AC)
bash
# AP接入端口 interface GigabitEthernet0/0/0 port hybrid tagged vlan 2 to 4094 lldp dot3-tlv power 802.3at # AC连接端口 interface GigabitEthernet0/0/2 port link-type trunk port trunk pvid vlan 100 port trunk allow-pass vlan 100 to 101
2. AC(无线控制器,DHCP中继)
bash
# 管理VLAN三层接口 vlan batch 100 101 interface Vlanif100 ip address 192.168.100.1 255.255.255.0 dhcp select relay dhcp relay server-ip 10.0.8.3 interface Vlanif101 ip address 192.168.1.1 255.255.255.0 dhcp select relay dhcp relay server-ip 10.0.8.3
3. AR3路由器(DHCP服务器)
bash
# 全局DHCP服务 dhcp enable # 地址池 ip pool vlan100 gateway-list 192.168.100.1 network 192.168.100.0 mask 255.255.255.0 dns-list 8.8.8.8 ip pool vlan101 gateway-list 192.168.1.1 network 192.168.1.0 mask 255.255.255.0 dns-list 8.8.8.8 # 物理接口绑定地址池 interface GigabitEthernet0/0/0 ip address 10.0.8.3 255.255.255.0 dhcp select global # ✅ 正确的默认路由(指定下一跳IP,而非物理口) ip route-static 0.0.0.0 0.0.0.0 10.0.8.1
4. LSW核心交换机
bash
# 回指路由(将Offer包从AR3转发给AC) ip route-static 192.168.100.0 255.255.255.0 192.168.100.1 ip route-static 192.168.1.0 255.255.255.0 192.168.1.1
五、排障工具与验证命令
| 设备 | 命令 | 用途 |
|---|---|---|
| AC | display dhcp relay interface Vlanif100 |
检查中继配置状态 |
| AC | display ap all |
查看AP上线状态 |
| AR3 | display ip pool name vlan100 |
查看地址池分配情况 |
| AR3 | display ip routing-table |
检查路由表 |
| AR3 | ping -a 10.0.8.3 192.168.1.1 |
验证回程路由 |
| LSW | display ip routing-table |
检查回指路由 |
| 通用 | display current-configuration | include dhcp |
快速检查DHCP配置 |
抓包要点
| 抓包位置 | 预期看到的报文 | 含义 |
|---|---|---|
| AC下行口(接AP) | DHCP Discover(目的255.255.255.255) | AP→AC链路正常 |
| AC上行口(接核心) | DHCP Discover(目的10.0.8.3,单播) | 中继生效 |
| AR3物理口 | DHCP Discover + DHCP Offer | 服务器正常响应 |
六、核心经验总结
1. DHCP中继的两个必要条件
bash
interface Vlanif100 dhcp select relay # 开启中继功能 dhcp relay server-ip x.x.x.x # 指定DHCP服务器
缺一不可!
2. VLAN三层接口必须与物理端口PVID对应
-
交换机Trunk口PVID=100 → AC必须创建
Vlanif100 -
交换机Trunk口PVID=101 → AC必须创建
Vlanif101
3. DHCP服务器必须绑定地址池
物理接口下必须执行dhcp select global或dhcp select interface,否则地址池不生效。
4. 静态路由:以太网禁止只指定出接口
| ✅ 正确写法 | ❌ 错误写法 |
|---|---|
ip route-static 0.0.0.0 0.0.0.0 10.0.8.1 |
ip route-static 0.0.0.0 0.0.0.0 GigabitEthernet0/0/0 |
原因:指定下一跳IP时,路由器只ARP解析网关;指定出接口时,路由器会ARP解析目标IP本身。目标IP不在直连广播域时,ARP永远得不到响应。
5. 排障思维导图
text
AP无法获取IP
│
├─ 二层/VLAN排查
│ ├─ 交换机端口PVID是否正确?
│ └─ Trunk是否放行了管理VLAN?
│
├─ AC(中继)排查
│ ├─ 是否存在对应的Vlanif接口?
│ ├─ Vlanif接口IP是否与地址池网关一致?
│ ├─ 是否配置了 dhcp select relay?
│ └─ 是否配置了 dhcp relay server-ip?
│
└─ DHCP服务器排查
├─ 全局 dhcp enable 是否开启?
├─ 物理接口是否绑定了 dhcp select global?
├─ 是否存在匹配的地址池?
└─ 是否有去往 giaddr 网段的回程路由?
七、结语
这次排障让我深刻体会到,DHCP中继看似简单,实则涉及二层VLAN透传、三层接口配置、中继功能开启、地址池绑定、静态路由下一跳选择等多个环节。任何一个环节的疏忽,都会导致“能抓到包但就是不通”的诡异现象。
特别是静态路由下一跳指向物理端口这个坑,在点对点链路上是正确用法,但在以太网环境下却会导致ARP广播风暴和跨网段通信失败——正是这个细节,让我多花了数小时才定位到根因。
希望这份排障记录能给遇到类似问题的同行一些启发。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)