DHCP Option 43实战:华为eNSP中AP自动发现AC的配置与排错
做无线项目这么多年AP拿到了IP地址却死活找不到AC的问题我排查过不下几十次。大多数时候罪魁祸首不是CAPWAP配置也不是VLAN划分而是DHCP下发的Option 43没配对。尤其在华为eNSP做综合实验时很多人AP起不来、AC不认设备最后发现都是Option 43或者AC发现机制的问题。这篇文章就借一套eNSP里的无线综合实验把DHCP Option 43的报文结构、配置方法、验证手段和排错思路全部拆开讲透。先说清楚这篇文章适合谁看刚接触华为无线局域网的网络工程师、准备HCIA/HCIP认证考试的考生以及在企业里维护过FIT AP架构但没深究过AP自动发现AC原理的朋友。实验用eNSP模拟AC6605、AP2050DN和交换机/路由器所有配置命令可以直接抄跑通之后你对CAPWAP建立过程里“AP如何找到AC”这个环节的理解会上一个台阶。1. 实验场景与整体设计思路1.1 这套综合实验到底在模拟什么现实问题企业部署无线网络时很少只用一台胖AP搞定绝大多数场景都是ACFIT AP的集中式架构。FIT AP本身没有业务配置它上电后第一件事就是“找组织”也就是找到AC并建立CAPWAP隧道。AP找AC的方式有几种而DHCP Option 43就是其中最常见的一种AC在DHCP服务器上配置一个特殊选项AP拿地址的同时把这个选项一起拿回来选项中携带AC的IP地址AP据此发起单向发现请求给AC。但在eNSP里很多实验拓扑AP和AC在同一个二层广播域AP靠广播就能发现AC导致很多人对Option 43无感觉得“不配也能上线”。一旦到了真实项目里AP和AC跨三层、中间隔路由器或AC在总部、AP在分支广播过不去Option 43就成了救命稻草。这套实验的隐藏目标就是让你在模拟器里先把配置方法和报文细节练熟不要把Option 43当成一个可有可无、抄一遍就完的命令。1.2 推荐拓扑与地址规划我用的拓扑不算复杂但该有的环节都保留一个AC6605、一个S5700交换机、一个AR2220路由器、一个模拟AP2050DN、一个STA无线终端。AR2220在实验里充当DHCP服务器和三层网关S5700负责接入和VLAN透传AC只做无线控制器的活。这样AC不承担DHCP业务更贴近真实网络里“DHCP服务器独立部署”的常见架构。地址规划如下表对象VLAN网段网关/地址说明AP管理网段VLAN 10192.168.10.0/24192.168.10.1AR2220的VLANIF10同时是DHCP服务器AC管理地址VLAN 10192.168.10.0/24192.168.10.2AC的VLANIF10无线业务网段VLAN 20192.168.20.0/24192.168.20.1终端STA通过DHCP获取地址AP接入VLAN 10192.168.10.0/24由DHCP分配DHCP池中预留一个静态绑定更稳妥交换机与AC之间、交换机与AR之间用Trunk链路放行VLAN 10和VLAN 20AP接交换机的接口用Access并划到VLAN 10。这样的好处是AP和AC虽然在同一个广播域内但我们依然配置Option 43可以在实验里对比“有和没有”的区别。1.3 eNSP环境准备与版本坑eNSP里做WLAN实验对版本有要求早期版本没有AC6605和AP2050DN模型装上之后找不到设备连实验都搭不起来。建议使用较新的eNSP版本同时确认设备列表里能拖出AC6605。另外内存分配很关键AC6605建议分配512MB内存AR2220也是512MBAP和交换机保持默认即可。如果电脑总内存小于8GB跑这个拓扑会非常吃力AP容易反复掉线。还有一点容易被忽略eNSP的设备包安装不完整会导致AC的VLANIF接口能用但WLAN相关命令不弹出比如输入wlan后系统视图下没有任何响应。这种情况多半是WLAN版本组件缺失重装eNSP或者重新导入设备包能解决。网上不少教程建议关闭防火墙和杀毒软件我实际用下来至少要把eNSP的安装目录和临时目录加白名单否则设备启动经常报40、报41错误。2. DHCP Option 43原理拆解AP到底怎么找到AC2.1 从AP上电到CAPWAP隧道建立中间发生了什么把原理讲透之前先完整梳理一次FIT AP上线的流程这样后面看配置和排错就有全局视角。AP上电后先通过DHCP获取自己的管理IP地址、网关、DNS等基础信息。获取地址后AP会尝试发现AC发现方式按顺序依次是二层广播发现、DHCP Option 43发现、DNS域名发现。其中二层广播只能在同一广播域内生效一旦AP和AC之间有路由器广播包基本不可能到达AC这时候就要靠DHCP Option 43或DNS。AP拿到AC的IP之后会往这个IP主动发起CAPWAP Discovery RequestAC收到后回应Discovery Response双方协商建立UDP 5246控制隧道和5247数据隧道连接然后完成版本匹配、AP认证、软件下载等后续流程。所以你会发现DHCP流程是AP上线的第一步而Option 43是隐藏在DHCP流程里的“导航信息”。如果DHCP没给对AP后续所有动作都无从谈起。2.2 Option 43报文格式与华为编码规则DHCP Option 43全称是Vendor Specific InformationRFC 2132里定义它用于传递厂商自定义信息。因为不同厂商自定义信息的内容和格式千差万别Option 43内部还要再拆成“子选项”来细分内容。华为AC通过子选项来携带AC的IPv4地址子选项编号固定为2。Option 43的完整格式分三层。外层是DHCP报文里的Option字段Code43Length表示后面数据的字节数然后是Vendor Specific Information。在这段信息里华为格式又分为子选项类型T、子选项长度L、子选项值V也就是经典的TLV结构。华为Option 43子选项2的类型值是02长度是04值是AC IP地址的十六进制表示。举一个具体的例子AC的IP是192.168.10.2转换成十六进制就是C0 A8 0A 02。那么Option 43中携带的数据就是02子选项类型、04长度、C0 A8 0A 02AC地址。整个Option 43的数值部分就是02 04 C0 A8 0A 02。如果AC地址是10.1.1.1则对应02 04 0A 01 01 01。华为设备上我们一般不用手算十六进制因为命令可以直接写“option 43 sub-option 2 ip-address 地址”设备会自动编码。但在排错时用抓包软件看到Option 43的十六进制内容你要能一眼看出这串东西对不对。常见错误就是有人直接填c0a80a02这种裸IP十六进制没有子选项类型和长度AC和AP都不认。2.3 Option 43与Option 138的区别别再混为一谈很多人在配置华为无线时还会搜到Option 138这个选项甚至有些教程里直接混着用。这里必须明确Option 138是RFC 5417定义的CAPWAP Access Controller地址选项专门用于发现AC而Option 43是通用厂商选项华为通过自定义子选项来承载AC地址。两者在报文里的位置不同、长度不同、甚至有些老版本设备对Option 138的支持程度也不同。华为体系里Option 43子选项2的格式用得最多兼容性也最好Option 138在部分AC版本上虽然也支持但如果你面对的是多厂商混合设备比如DHCP服务器是思科的AP是华为的就得特别小心格式差异。思科风格和华为风格对Option 43子选项的定义可能不一样强行套用格式会导致AP识别失败。因此只要搞华为网络我建议优先掌握Option 43子选项2这已经是业界最常见的做法。3. 完整配置实战手把手把Option 43配通3.1 基础VLAN与交换机配置先把交换机的VLAN和数据转发跑通。S5700上创建VLAN 10和VLAN 20上联AC和AR的接口配成Trunk放行这两个VLAN下联AP的接口用AccessPVID设为VLAN 10。以我实验中的实际端口为例sys sysname LSW1 vlan batch 10 20 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 10 20 interface GigabitEthernet0/0/3 port link-type access port default vlan 10其中GE0/0/1连ACGE0/0/2连AR2220GE0/0/3连AP。这里要注意如果AC和AR的接口本身也能配置VLANIF那么交换机端口用Access也能跑但用Trunk更贴近真实组网后续如果要扩展更多业务VLAN只需要在Trunk口上放行即可。3.2 AR2220上配置DHCP服务器并下发Option 43AR2220在实验里承担三层网关和DHCP服务器的角色。需要开启DHCP服务创建两个地址池一个给AP管理网段VLAN 10一个给无线用户业务网段VLAN 20。重点看管理地址池它不仅要分配IP还要下发Option 43指明AC地址。sys sysname AR1 dhcp enable ip pool ap_pool network 192.168.10.0 mask 255.255.255.0 gateway-list 192.168.10.1 option 43 sub-option 2 ip-address 192.168.10.2 ip pool sta_pool network 192.168.20.0 mask 255.255.255.0 gateway-list 192.168.20.1 interface Vlanif10 ip address 192.168.10.1 255.255.255.0 dhcp select global interface Vlanif20 ip address 192.168.20.1 255.255.255.0 dhcp select global interface GigabitEthernet0/0/0.10 dot1q termination vid 10 ip address 192.168.10.1 255.255.255.0 dhcp select global interface GigabitEthernet0/0/0.20 dot1q termination vid 20 ip address 192.168.20.1 255.255.255.0 dhcp select global interface GigabitEthernet0/0/0 dot1q termination vid 10这里用子接口处理VLAN是很常见的做法AR和交换机之间就不用再手工配多个物理口了。注意设备版本不同Option 43命令可能写成dhcp server option 43 sub-option 2 ip-address 192.168.10.2在较新版本的VRP系统里地址池视图下直接用option 43 sub-option 2 ip-address即可如果敲完没有这个命令就补上dhcp server前缀。3.3 AC侧配置CAPWAP源接口与WLAN业务AC这一侧的核心是让AP能找过来同时允许AP注册。首先保证AC能通过VLAN 10与AP通信配置VLANIF10地址192.168.10.2。然后执行capwap source interface vlanif10这条命令特别重要它决定了AC向AP宣告的控制隧道源地址。如果漏配AC可能会用默认路由口地址或者全零地址回应APAP拿到后根本连不上。AC上还需要配置AP认证方式。默认是MAC认证意味着AP的MAC地址必须在AC的允许列表里否则即使AP能发现AC注册阶段也会被拒。配置方式如下sys sysname AC6605 vlan batch 10 20 interface Vlanif10 ip address 192.168.10.2 255.255.255.0 interface Vlanif20 ip address 192.168.20.2 255.255.255.0 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 capwap source interface vlanif10 wlan ap auth-mode mac-auth ap-id 0 type-id 19 mac 00e0-fc00-5350AP的MAC地址在你的eNSP里不一定是00e0-fc00-5350双击拓扑里的AP设备就能查到填写真实MAC。type-id 19对应模拟器里的AP2050DN型号不同版本可能不同如果AC报ap-type mismatch就改成对应type。完成这些后AP上电应能自动获取IP发现AC并注册。3.4 验证Option 43是否真正生效配置完成后别急着欢呼先做一轮验证。第一步确认AP拿到了地址在AC上执行display dhcp server ip-pool ap_pool能看到已分配地址的列表找到AP的MAC和对应IP。第二步看AP是否上线执行display ap all如果State显示为normal说明AP注册成功如果显示fault或idle说明发现或认证环节出了问题。要直接确认Option 43是否真的发给AP可以在AR2220上开启DHCP调试debugging dhcp server packet terminal monitor terminal debugging然后重启AP观察DHCP报文输出。正常应该能看到Option 43字段里面包含子选项2和AC地址。如果不想刷屏也可以把AP接在电脑上用Wireshark抓包观察DHCP Offer报文里的Option 43值是否为02 04 c0 a8 0a 02。这个方法在排错时特别直观。4. 跨三层场景Option 43和DHCP中继的搭配4.1 跨三层时的拓扑变化很多实验里AP和AC在同一广播域Option 43显得“可有可无”但真实项目里AP经常在接入交换机下AC在核心机房中间隔路由设备。跨三层后AP的DHCP Discover广播无法穿过路由器管理员只能在AP所在网段的网关设备上配置DHCP Relay让DHCP请求被中继到核心DHCP服务器。如果DHCP服务器在远端那么Option 43同样由这台远端的DHCP服务器下发。AP收到Option 43后直接单播给AC地址从而跳过二层广播的限制。这就是为什么Option 43和DHCP中继经常被放在一起讨论——它们一起解决了“AP在不同广播域如何既拿到IP又找到AC”的问题。4.2 中继配置参考假设AP在VLAN 100网关在汇聚交换机上DHCP服务器在核心机房AC地址192.168.10.2。汇聚交换机的VLANIF 100配置dhcp select relay并指定dhcp relay server-ip指向DHCP服务器interface Vlanif100 ip address 192.168.100.1 255.255.255.0 dhcp select relay dhcp relay server-ip 192.168.10.1DHCP服务器上仍然配置地址池和Option 43AC地址写成192.168.10.2。这样AP发到网关的Discover会被中继到服务器服务器回复的Offer里带着租期、网关和Option 43中继再把它转回给AP。整个过程对AP透明AP唯一要做的就是从Offer里提取Option 43如果没有它会继续尝试广播或DNS。4.3 中继模式下容易忽略的坑DHCP Relay场景最常见的坑有两个。第一AC的capwap source interface必须配置成AC上能与AP路由可达的地址中继不影响AC地址的选择但AC如果用了错误的源地址回应APAP即使拿到了正确的AC IP也可能丢弃Response。第二中继设备必须确保能够路由回DHCP服务器同时DHCP服务器要能路由到中继设备否则报文有去无回。另外有些跨三层组网里DHCP服务器和AC是同一台设备或同一网段Option 43指向的是自己的地址配置上反而更简单但要注意源接口和AC地址的一致性否则就会出现“代码配置正确但AP就是不注册”的诡异现象。5. 常见问题与排错实录5.1 AP一直显示fault最优先排查什么AP上线失败我每次的排查顺序基本固定先看地址、再看发现、最后看认证。第一步在AC上执行display dhcp server ip-pool确认AP是否拿到IP如果地址池里空空的说明DHCP环节就没通后面全白搭。第二步在AC上执行display capwap state或display ap all看看有没有AP发起过Discover如果AP已拿到地址但AC完全看不到发现请求大概率是Option 43没下来或AC源接口配置错误。第三步检查AP的MAC是否在AC允许列表里模拟器里尤其常见因为AP的MAC是模拟的多敲一个数字或不敲成小写横线格式都会导致认证失败。如果AP状态在fault和normal之间反复横跳多半是CAPWAP控制隧道不稳定优先检查AC到AP的链路是否丢包、VLAN是否一致、AC的源接口地址是否可达。5.2 Option 43格式错误的几类典型情况格式错误是最隐蔽的。第一类错误是把Option 43的十六进制直接填成AC IP的纯十六进制比如AC为192.168.10.2就填c0a80a02缺少子选项类型02和长度04AP收到后无法解析直接忽略。第二类错误是子选项编号填错有的教程拿思科的Option 43子选项1来配置华为默认是子选项2AP同样不认。第三类是命令位置不对把option 43 sub-option 2 ip-address写到了接口视图下结果没生效实际应该在DHCP地址池视图下配置。用display current-configuration查看配置是排查格式错误最直接的方式看地址池视图里是否真的有option 43 sub-option 2 ip-address 192.168.10.2这行如果配置在但AP没拿对就抓包看报文内容。5.3 eNSP模拟器资源问题与WLAN实验限制最后说说模拟器本身。有些同学AP和AC配置一模一样但AP就是上不了线这时候不一定是配置问题而是模拟器卡死了。eNSP对内存和CPU非常敏感设备启动后如果一直显示井号#多半是内存分配不足给AR和AC各512MB内存再重启大部分能解决。如果启动AR1报错40除了内存原因还要检查电脑是否开启了Hyper-V或WSL这两个虚拟化功能和eNSP经常冲突需要关掉其中一个。还有一个eNSP特有的限制模拟AP的启动时间比真实AP长尤其刚打开拓扑时AC可能还在启动AP已经向未知目标发送请求导致首次上线失败。遇到这种情况等所有设备都稳定再重启AP即可不用急着怀疑配置。5.4 排错速查表现象可能原因处理方式AP获取不到IPVLAN未放行、DHCP池未配置、子接口不匹配检查交换机Trunk和AR的DHCP配置AP拿到IP但AC上看不到APOption 43没下发或AC源接口错误配置option 43 sub-option 2 ip-address检查capwap source interfaceAP发起Discover但AC拒绝MAC认证不通过或type-id不匹配核对AP MAC、修改AP型号type-idAP反复掉线CAPWAP隧道不稳定、模拟器资源不足增加内存、检查链路丢包、降低设备负载Option 43格式错误子选项编号或长度错误使用命令方式配置不要手工拼十六进制写在最后把这套eNSP实验完整跑下来你对FIT AP上线机制的理解会比单纯背命令深得多。我个人做无线项目这么多年一直保留一个习惯开局前先确认DHCP服务器上的Option 43再谈AC的WLAN配置。因为AP找不到AC后面所有VAP模板、SSID、安全策略全是空谈。现在你在模拟器里踩完这些坑到了现场就能少踩一半。如果后续还想延伸可以继续试试通过Option 43同时下发主备AC地址或者配合DHCP中继让远端AP跨三层注册练熟之后企业无线开局的大多数难题其实都能靠这套基本功解决。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →