网络里同时跑管理流量和业务流量,并且两者共用同一个VLAN,这在不少项目里确实让人纠结过。特别是做H3C无线项目时,AC和AP之间的注册方式直接决定了你后续排障的思路。二层注册本身不算复杂,但一旦管理VLAN和业务VLAN相同,很多细节就容易被忽略——比如DHCP的Option参数、CAPWAP隧道封装、AP上线的优先级判断。这篇文章就把这套场景从规划到上线完整捋一遍,适合正在做中小型无线覆盖、准备让AP通过二层注册到H3C AC上、且不想单独划分管理VLAN的同行参考。
1. 二层注册的适用范围与管理/业务同VLAN的真实场景
1.1 为什么选二层注册而不是三层注册
H3C AC和AP建立CAPWAP隧道时,AP需要先获取IP地址,再通过某种方式发现AC。这里其实分了两种思路:二层注册就是AP和AC在同一个IP网段,AP直接通过广播或者静态指定就能找到AC;三层注册则要跨越路由器,AP需要借助DHCP Option或者DNS来解析AC的地址。
很多刚接触无线项目的人想不通:三层注册看起来更灵活,为什么还要特意做二层注册?原因很直接——二层注册配置最少、依赖最少、适合网络规模不大或者拓扑稳定的场景。比如一栋办公楼里所有AP都汇聚在同一台核心交换机下,AP和AC的地址就在同一个子网,二层广播就能解决发现AC的问题,完全没有必要引入DHCP Option、DNS解析这些变量。
我实际遇到过的场景是,项目里交换机和AC全部在位,但客户网络规划里就不想给AP单独分地址段,他们觉得单独划一个管理VLAN出来,后续还要维护路由、ACL、防火墙策略,麻烦。当时统计了一下,全网络AP数量不足20个,网络规模很小,用二层注册完全够用。这种情况下,坚持规划管理VLAN和业务VLAN相同,其实也是一种合理的工程决策。
1.2 管理VLAN和业务VLAN相同到底意味着什么
先明确两个术语:管理VLAN指的是AP与AC通信、获取管理地址所在的VLAN,业务VLAN指的是无线终端接入SSID后获取IP地址所在的VLAN。常规企业网做法是两者分开,管理VLAN只承载CAPWAP控制报文和管理流量,业务VLAN承载用户上网流量,这样安全性和可管理性都更好。
但题目这种场景里,管理VLAN和业务VLAN相同,等于AP自己获取的IP地址、以及终端通过WiFi获取的IP地址,都在同一个VLAN里。比如VLAN 10,AC接口地址是192.168.10.1,AP从DHCP拿到192.168.10.x,终端连上SSID后也从DHCP拿到192.168.10.x。
这样做最直接的好处是网络结构扁平,交换机端口配置统一简单。设备数量少时,不需要在交换机上维护trunk列表,所有端口都能保持access VLAN 10,也不会出现因为个别端口忘记放行管理VLAN导致AP无法上线的问题。但代价是终端和AP混在同一个广播域,ARP广播、DHCP广播会互相影响,网络规模变大以后客户端体验会明显下降。这也决定了这个方案适合小规模场景,大规模项目还是得把管理VLAN单独拎出来。
2. 拓扑规划中的关键决策:从端口模式到DHCP地址池
2.1 一个足够代表性的最小拓扑
要讲清楚这个场景,我先给一个基础拓扑,后面所有配置都围绕它展开:一台H3C无线控制器AC,连接一台二层交换机,交换机下面接若干AP,AP的无线信号供终端接入。
AC上规划一个Vlan-interface 10,地址段192.168.10.0/24,AC自己用192.168.10.1。交换机的上行口连接AC,AP使用的接入端口全部配置成access VLAN 10。DHCP服务可以在AC上开启,也可以由外部DHCP服务器提供。我这里以AC内置DHCP为例,因为小项目里这样最省事,也最能避免跨设备排错。
地址池分配上我习惯把AP和终端放在同一个地址池里,但通过地址池的静态绑定或者IP保留段把AC、交换机的管理地址预留出来。实际规划时可以分成两段:192.168.10.1到192.168.10.99留给网络设备,192.168.10.100到192.168.10.254动态分配给AP和终端。不用刻意区分AP地址和终端地址,但后面看日志、统计在线设备时,能根据MAC前缀或者DHCP日志判断出哪些是AP、哪些是终端。
2.2 交换机端口模式:access和trunk怎么选
管理VLAN和业务VLAN相同后,大部分端口可以直接配access。AP上行连接交换机的端口,如果只承载这一种VLAN,配access VLAN 10完全可以。但如果这个端口还同时承载其他VLAN,比如AP的SSID要做不同VLAN隔离、或者交换机端口需要透传其他业务VLAN,那就要改成trunk,并指定PVID为10。
这里有个曾经踩过的坑:AP上联口用trunk时,PVID没设对,结果AP收到的报文都带上了VLAN Tag,导致DHCP服务器认不出这是VLAN 10的请求。表现为AP一直获取不到地址,卡在Discovery状态。后来把接口的port trunk pvid vlan 10配上,并把untagged vlan 10加上,AP马上起来了。
所以给读者一个总结性的建议:在只有一种业务VLAN的小场景下,交换机端口一律access;如果某个端口确实需要trunk,一定要同时确认PVID和untagged列表。AP本身不识别VLAN Tag,一旦从交换机收到的帧带着标签,它就无法正确处理。
2.3 DHCP地址池配置:要不要用Option 138
H3C的AP发现AC有几种方式:二层广播、DHCP Option 138、DNS解析、AC静态指定。二层注册的最优路径当然是广播,因为AP和AC天然在一个子网里,AP发出CAPWAP Discovery Request广播就能找到AC。
既然如此,DHCP Option 138还用不用?我的建议是配置上,为了稳。因为有些AP固件版本或者交换机的广播转发策略会导致广播不可靠,而DHCP Option 138是H3C标准支持的,AP获得IP地址后,可以直接从DHCP报文里读到AC的IP地址,不需要再依赖广播。在AC上开启DHCP服务时,用dhcp server option 138 ip 192.168.10.1这样的命令,把AC地址下发出去即可。
注意一下,H3C设备里Option 138配置在系统视图的DHCP地址池视图里,而不是接口视图。我在早期项目里曾经把它配错地方,写在了接口下,AP始终识别不到,后来翻看配置才发现命令层级不对。另外,如果网络上还有别的厂家AP接入,需要确认它们是否支持Option 138,不同厂家的Option含义并不相同。
3. 动手配置AC:让AP在同网段内安全注册
3.1 配置VLAN接口与DHCP服务
AC上首先要创建并进入VLAN接口,这是AP获取地址和AC互相通信的基础:
system-view vlan 10 quit interface Vlan-interface 10 ip address 192.168.10.1 255.255.255.0 quit然后配置DHCP服务。这里直接在AC上开启全局DHCP,并创建一个地址池:
dhcp enable dhcp server ip-pool pool10 network 192.168.10.0 mask 255.255.255.0 gateway-list 192.168.10.1 dns-list 114.114.114.114 option 138 ip 192.168.10.1 quit需要特别留意的是gateway-list必须配置。AP获得IP后,即使在同网段,也需要知道网关地址,否则它后续发起的一些三层探测流程会失败。即便AP和AC同网段不做三层转发,DHCP下发网关也是正确的做法,尤其终端同样从这个地址池获取地址,网关是必须的。
DHCP服务放在AC上有个好处:链路只有AC到交换机再到AP,中间没有复杂的三层设备,排障时只要检查AC的DHCP日志就能定位大部分问题。但如果网络里有现成的Windows/Linux DHCP服务器,也可以不用AC的DHCP,只要确认地址池范围、网关、Option 138正确即可。
3.2 WLAN服务模板与SSID参数
AC上配置WLAN服务是本项目中的重头戏之一。先创建服务模板,指定SSID,再绑定到射频上:
wlan service-template 1 ssid Test-WiFi vlan 10 client forwarding-location ac quit wlan ap 1 model WA6320 serial-id 219801A0CNC1234567 radio 1 service-template 1 radio enable quit在这段配置里有一个值得注意的细节:vlan 10写在服务模板里,指定的是终端接入后所处的VLAN。因为当前场景管理VLAN和业务VLAN相同,所以终端也拿到VLAN 10的地址。如果未来想要迁移到管理VLAN与业务VLAN分离的架构,服务模板里的vlan改成另一个业务VLAN编号即可,AP注册流程完全不受影响。
client forwarding-location ac表示终端数据流量由AC转发,小规模网络里这样好管理。如果想让AP直接转发流量、减轻AC压力,可以改成client forwarding-location ap,但这会让AP的配置复杂度提高不少,不建议在这个场景里引入额外变量。
3.3 AP模板与AC源地址的匹配
AP的序列号、型号、MAC地址都要在AC上录入AP模板,否则AP发来注册请求时,AC会因为找不到对应模板而拒绝。有一种印象需要纠正:并不是所有H3C AC都支持AP自动发现并自动加入,默认情况下还是需要手动添加AP。自动AP功能需要单独开启,但在严谨的工程交付里,默认关闭反而更安全。
AC上有一个参数叫wlan ac source-address,如果不设置,AC从接口发出的CAPWAP回应报文的源地址可能会选择非预期的地址。建议手动指定为192.168.10.1:
wlan ac source-address 192.168.10.1这个命令的作用是让AC在响应所有AP的CAPWAP请求时,固定使用Vlan-interface 10的地址作为源地址。如果AC上有多个VLAN接口,地址选择逻辑一旦混乱,容易导致AP在注册阶段状态来回横跳,状态机一会是Run一会是Idle。提前指定源地址能避免这类玄学问题。
4. AP上线观察:从开机到客户端接入的完整过程
4.1 AP启动与CAPWAP发现的时间线
我一般把AP上线的过程拆成四步来观察:加电启动、获取IP、发现AC、建立隧道。加电启动时AP先运行自己的固件,接着从DHCP获取地址,这个过程通常几十秒。获取到地址后,AP会先检查自己有没有静态配置的AC地址,如果没有,就发送CAPWAP Discovery Request广播。
因为AP和AC在同一VLAN,广播到达AC后,AC回应Discovery Response,然后AP发起Join Request,AC验证AP的序列号和MAC合法性后,回Join Response。随后双方建立Control Tunnel和Data Tunnel,AP进入Run状态。整个过程中任何一步卡住,都有不同的排障切入点。
实际上AP上线的时长受固件版本影响很大。我见过同一个AP在旧版本固件下需要两分多钟才完成注册,升级固件后一分半就完成。如果现场感觉AP上线特别慢,不要急着怀疑网络配置,先检查一下AC上预设的AP型号和AP当前固件是否匹配,AC会自动下发镜像,这个下载过程很费时间。
4.2 在AC上确认AP状态
AP上线后,最直接的检查命令是:
display wlan ap all输出里会列出所有AP的AP ID、状态、模型、序列号、IP地址等。关注状态字段:R表示运行正常,I表示空闲或初始化,J表示正在建立连接。如果大量AP长时间停在J状态,大概率是AC和AP的版本不匹配,或者是AP序列号没有正确注册。
进一步查看单个AP状态:
display wlan ap name ap-1 verbose能看到的不仅有当前状态,还有与AC的隧道信息、信号强度、相邻AP信息等。我这里更关注的是隧道状态,如果隧道起来了、AP状态Run,那么注册环节就算成功了。
4.3 终端接入后的业务走向
终端连上SSID后,会向DHCP发起请求。DHCP报文经AP封装进入CAPWAP隧道,送到AC后再由AC解封装并转发到DHCP服务器(这里是AC自己的DHCP)。整个过程对终端是透明的,终端看到的就是一个正常的二层接入网。
这个拓扑中,终端地址和AP地址在同一个网段,那么终端访问网关、访问外部网络时,都会通过AC的三层接口转发。这也就意味着AC本身要承担不小的流量压力。如果终端与AP在同一网段,但中间交换机没有开启组播或广播优化,遇到广播多一些的大型局域网,延迟可能升高。这也是我建议小规模场景才这么做的原因。
5. 排错实践:从状态机卡住到成功上线的完整链路
5.1 第一步先查物理链路和VLAN,而不是查AC
不少第一次做H3C无线项目的人,遇到AP始终上不了线,第一反应就是AC配置有问题。但我实测下来,大多数问题反而出在物理链路和交换机端口的VLAN配置。一个常见现象是:AP拿到地址了,也能ping通AC,但AP就是不注册。这个要排查的问题就会比较棘手。
先反过来想:AP只有能正常收发报文,才能完成CAPWAP注册。如果交换机端口配成了trunk且没有放行VLAN 10,AP就无法从DHCP获取地址,那么它可能一直在重启、重复获取地址。所以第一步应该确认几个基本项:AP网线是否灯亮、交换机端口是access还是trunk、如果trunk是否放行了对应VLAN。
用命令行检查最直接:
display interface GigabitEthernet 1/0/1 display vlan 10确认交换机端口确实在VLAN 10中且AP已经通过DHCP获得地址。如果AP还是没拿到地址,再向DHCP方向排查。
5.2 DHCP获取地址失败的完整排查链路
AP获取不到IP,表现为AP处于反复重启、console里看到“DHCP lease failed”之类信息。这个时候先看AC的DHCP地址池是否足够,排除地址池耗尽:
display dhcp server free-ip如果地址池还有剩余,再看报文能否到达DHCP服务器。由于DHCP是广播协议,如果AP和DHCP服务不在同一VLAN,就要看是否有DHCP中继。而在这个场景里,AP和AC的DHCP服务都在VLAN 10内,中间没有路由,理论上只要端口VLAN正确,DHCP报文就能到达。如果确实不行,就检查交换机上是否开启了DHCP snooping,而且把AC接入口设为了不可信端口。这种坑隐蔽性极高,配置了DHCP snooping但信任口没配置时,DHCP请求会被交换机丢弃,用户体验就像DHCP服务器宕机了一样。
解决方案是在交换机上:
dhcp snooping enable dhcp snooping trusted interface GigabitEthernet 1/0/245.3 CAPWAP发现阶段失败:广播和Option 138都不生效时
在AP拿到IP地址之后,它要开始发现AC。如果广播失效,而DHCP Option 138又没配,AP就会卡在Discovery阶段。这时候用display wlan ap all只能看到AP处于Idle状态。
处理方法分两步走:先检查AC接口上能不能收到AP的CAPWAP广播报文。可以在AC的控制台开启debug:
debugging wlan capwap packet debugging wlan capwap eventdebug输出里如果能看到Discovery Request,说明AP的广播已经到达AC;看不到,则问题在交换机或AP与AC之间链路。注意开启debug前先关闭AC的业务高峰期,否则日志刷得眼都花。
如果广播确实到达AC但AP还是卡住,十有八九是AC的wlan ac source-address配置问题,或者AP模板没有正确应答。建议把wlan ac source-address 192.168.10.1配上,再用display wlan ap all确认状态变化。
5.4 状态Run后无线终端却无法上网的排查顺序
AP状态Run,SSID也能搜到,但终端连上后无法获取IP,这也是非常常见的问题。很多人马上怀疑WLAN服务模板的VLAN配置,其实这里的问题往往出在AC的接口上。
如果服务模板配置了vlan 10,AP和AC建立的数据隧道就会携带VLAN 10的报文。AC这边需要保证接入交换机、AC上联口都放行了VLAN 10。另外,AC的Vlan-interface 10需要能转发DHCP报文,如果AC开启了DHCP服务,确认接口下dhcp select global配置。
还要注意隐藏问题——AP的本地转发和AC转发差异。如果服务模板用了client forwarding-location ap,数据报文就不会到AC,而是直接由AP本地二层转发。这种情况下终端获取IP的路径完全不同,AC配置可能没问题,但交换机端口如果设置了端口隔离,终端就无法访问网关。遇到上网异常,先确认服务模板的转发模式,再决定从哪个方向排查。
6. 项目实操经验:细节决定交付成败
6.1 设备版本匹配与预配置的重要性
H3C AP型号繁多,不同型号对应的固件版本差异很大。AC下发固件时,如果AP型号和AC版本库不匹配,AP会在运行后不断请求镜像,显得“永远起不来”。所以组网前就要确认AC的软件版本兼容的AP版本列表。特别是多个AP型号混合数较多时,尽量统一AP固件版本。
一个比较省心的做法是:在AP接入前,先把AC上的AP模板都录好,型号、序列号一并填上,再让现场接电。AP一开机就能直接注册,省去了大量等待时间。如果AP已经上电但没法注册,也可以在AC上执行wlan ap 1 model WA6320来临时纠正型号错误。
6.2 AC地址池的预留与租期规划
虽然AP和终端混用同一地址池,但我强烈建议给AP的MAC地址单独预留部分地址,可以使用dhcp server static-bind ip-address这样固定IP。原因是AP数量少时,固定IP对定位问题非常有帮助——你能一眼从AC的在线列表里看出是哪台AP出了问题。
地址租期方面,AP获取地址后如果租期太短,比如默认5分钟,会增加无谓的续租广播;如果太长,AP变更网段后难以及时更新IP。我一般会给AP和终端混用的地址池设置2小时租期,AP本身的续租频率不高,终端用户上网体验也不会因租期到期频繁掉线。
6.3 从同VLAN场景平滑过渡到管理/业务分离
有一种很实际的情况:当前项目因为规模小使用了同VLAN,但半年后客户要求扩容,终端数量翻倍,同一广播域已经开始互相干扰。这时候就需要平滑迁移。
迁移思路并不复杂:AC上新建一个业务VLAN,比如VLAN 20,服务模板把vlan 10改成vlan 20,交换机内部把业务VLAN 20和网关、DHCP相关配置加上。AP自身的管理还是走VLAN 10,终端则走VLAN 20。切换过程只需要在AC上调整服务模板,AP不会重新注册,终端重新关联无线信号后就会获取到新网段的地址。
如果你在规划阶段就知道未来可能扩容,强烈建议从一开始就把管理VLAN和业务VLAN分开,哪怕当前规模很小。如果已经采用了同VLAN方案,AC上的配置被设计成当前这套结构,迁移成本并不高。我见过最多的返工反而是在交换机侧:大量access口要改成trunk,还要逐一确认PVID和untagged,牵一发动全身。
6.4 实测中额外要注意的安全细节
即便是在同一个VLAN里,无线网络也会引入额外的风险。AP和终端同网段时,终端可以直连访问AP的管理地址,如果有漏洞就会暴露出去。建议在交换机或AC上做基本ACL,限制终端网段不能直接访问AC和交换机的管理地址。不过在小型项目里,如果客户没有安全要求,这一步可以省略,知道有这个问题存在就好。
此外,WLAN服务模板里建议关闭SSID的广播,或者至少关闭弱加密方式。H3C默认的WLAN安全策略可能比较宽松,交付时至少配置WPA2-PSK,并确保预共享密钥的强度。AP在同一VLAN里注册的便利性,不应该以牺牲终端安全为代价。
7. 最后再分享一个小技巧
在实际调试这类同VLAN二层注册场景时,有一个细节经常被忽略:H3C AP上电后前30秒可能连着多次重启,导致你在交换机端口上看到链路反复up/down。这不是故障,而是AP在做自检。如果频繁看到端口flapping,先确认AP电源是否稳定,再检查PoE交换机功率是否足够,然后才去查注册问题。功率不足的PoE供电比网线问题隐蔽得多,它会在AP负载升高时突然断电重启,看起来像AP一直无法注册。
另一个技巧是,配置完成后,在AC上执行save force保存配置,同时别忘了在交换机上也保存。这类项目交付后如果设备重启,配置丢失会导致网络瘫痪,而现场临时改配置又非常浪费时间。
整体上,H3C AC下AP二层注册且管理VLAN与业务VLAN相同的方案,适合小型、扁平、扩展需求不强的网络。你要是按这篇文章的思路去做,大概率不会踩到特别隐蔽的坑。