AC的DHCP池里Option 43配错导致AP无法上线问题排查过程
AC的DHCP池里Option 43配错导致AP无法上线问题排查过程
本文详细描述了一个AC(无线控制器)的DHCP池中Option 43配置错误导致AP(无线接入点)无法上线的问题排查过程。通过抓包分析和配置检查,最终定位并解决了问题。
问题描述
AP手动设置AC的IP地址可以正常注册上线,但通过DHCP获取IP地址和AC地址后却无法在AC上注册成功。
组网结构
AC采用旁路结构,路由器LAN口地址为172.16.1.1,开启DHCP服务,Option 43提供AC的地址172.16.1.206,地址池范围为172.16.1.100-172.16.1.200,网关IP为172.16.1.1。
解决过程
初始排查
DHCP分配情况检查
AP上电后,查看DHCP分配情况,发现分配地址为172.16.1.200,但在AC 172.16.1.206上看不到AP上线。
手动配置测试
在AP上手动配置AC地址为172.16.1.206,并在路由器4口抓包,发现AC上可以看到AP上线。
抓包分析
使用tcpdump
命令抓取AP的CAPWAP消息(UDP端口5246),发现AP能够正常与AC通信。
tcpdump -i eth4 -nnev udp port 5246 -c 20
抓包结果显示,AP的MAC地址为6c:ef:c6:65:ab:c0,IP地址为172.16.1.200,AC的IP地址为172.16.1.206,MAC地址为64:c3:41:b2:18:21。
重新配置测试
删除AP上手动配置的AC地址,改为从DHCP的Option 43中获取AC地址,重启AP后再次抓包。
发现AP发出的CAPWAP消息目的IP地址错误,显示为17.16.1.206(正确的应为172.16.1.206),并且MAC地址发给了路由器LAN口地址20:1f:54:f5:36:61。
进一步排查
检查DHCP Offer消息,发现其中的AC地址被错误编码为17.16.1.206。
在AP上查询DHCP获得的AC地址:
root@IIIoT:/tmp# cat wtp.cfg
<WTP_DHCP_AC_IPV4_ADDR> 17.16.1.206
发现这个地址错误,而AP实际连接的AC IP地址为网关地址172.16.1.1。
修正配置
在路由器上重新抓包检查DHCP Offer消息:
tcpdump -i eth4 -nnev ether host 6c:ef:c6:65:ab:c0
发现Option 43中的AC地址被错误编码为ASCII码表示的"1 7 2 . 1 6 . 1 . 2 0 6"。
问题总结
- 原以为DHCP获得的AC地址和手动设置的AC地址在发送Discover包时会有所不同,但实际上没有区别。
- 获得错误的AC地址后,AP会将CAPWAP消息发向错误的MAC地址(路由器LAN口地址)。
- 通过检查DHCP Offer消息中的Option 43编码错误,最终定位并修正了问题。