简介:这套华中科技大学校园网络模拟项目是基于华为eNSP平台构建的完整校园网络实验资源,适合网络工程专业师生、竞赛选手及想练习企业级组网的技术爱好者。资源围绕真实校园网场景,覆盖网络拓扑设计、无线AP接入、VLAN划分、OSPF等路由协议配置、DHCP服务部署以及无线AC控制等关键环节,能帮助读者从零动手搭建校园网络模型,掌握网络工程综合实验的核心技能。包体共35个文件,以eNSP工程文件(efz)和设备拓扑图(topo)为主,辅以XML配置、ZIP压缩包、说明文档(docx/md/txt),结构清晰,既可直接导入eNSP运行,也可参照文档复现实验步骤。资源包大小仅117KB,轻量易用。目前已有206人学习下载,适合用于教学演示、课程设计或自主实验,是一份高性价比的校园网络综合实战素材。
1. 基于华为ENSP的校园网络模拟项目:它到底在解决什么问题
这个项目标题里的核心词,拆开看就是一个完整的教学闭环:用华为ENSP模拟器,把一所高校校园网络的接入层、汇聚层、核心层、出口路由,以及无线AP接入全部在仿真环境里跑通,而不是做单一的VLAN实验或单台设备练习。它解决的问题很直接——让准备考华为HCIA/HCIP认证的学员、带网络工程实验课的老师、以及做园区网割接前想在模拟环境里先验证一遍配置的运维,能在不碰真机的前提下,练熟S5700交换机的VLAN和VLANIF、AR路由器的OSPF互联、AC对无线AP的集中管理,以及终端怎么通过DHCP拿到地址并完成跨VLAN通信。这套东西适合三类人:授课教师拿它当综合实验基线,考生拿它当考前操作手册,运维拿它当变更前的预演沙盘。我的建议是把这套拓扑当成基本盘,先留一份稳定能跑通的版本,以后所有新想法都在这个环境上改,而不是每次从零搭。
2. 基于华为ENSP的校园网络拓扑设计与VLAN划分:从分层规划到端口参数
2.1 为什么选华为ENSP而不是GNS3或思科模拟器
做校园网络模拟,设备选型这一步就直接决定了后面所有配置的写法和排错路径。常见做法是选华为ENSP,原因不是它比GNS3“更强”,而是因为这套项目的真实落地对象就是华为园区网络设备。ENSP内置的AR2220路由器、S5700交换机、AC6005无线控制器、AP2050DN接入点,命令集和真实华为设备基本一致,尤其是vlan batch、port link-type trunk、dhcp select global这套组合,在华为设备上是通用语法。
另一个现实原因是考试和教学场景强绑定。华为HCIA/HCIP的交换、路由、无线方向实验题,基本就是按照ENSP的设备形态出的,用ENSP做校园网实验,命令行习惯能直接迁移到考场和现场。相比之下,GNS3虽然更灵活,但华为设备镜像要么不方便获取,要么跑起来不稳定;思科模拟器命令是另一套体系,放到华为项目里反而增加学习成本。
还有一点容易被忽略:ENSP是免费且对硬件要求不高的。一个普通四核CPU加8GB内存,就能撑起这个包含十几台设备的三层校园网拓扑。真实设备做这个实验至少需要6台以上的物理设备,机架、线缆、调试时间都会翻倍。所以从教学投入产出比看,ENSP是代价最低的路径。
但是注意,ENSP虚拟化层依赖VirtualBox,Windows更新后经常出现兼容性问题,尤其是AR设备启动失败的概率会随着宿主机性能配置不同而浮动。这一点我在第5章的避坑部分会具体展开,这里只是先立一个预期:选ENSP不等于省心,它的坑更多在环境层面而不是网络配置层面。
2.2 校园网络拓扑的三层结构与地址规划
校园网络拓扑设计不是简单画一张图就完事的。我一般按照接入层、汇聚层、核心层加出口路由这样四段来搭。接入层用S5700交换机负责把PC、打印机、AP接进来,按业务划分VLAN;汇聚层用S5700做VLAN间的网关终结和流量汇聚;核心层用一台S5700或两台堆叠做三层转发中心;出口由AR2220路由器对接外部网络,同时跑OSPF和核心层互通。
这个项目里我规划的是五到六个VLAN,对应一个典型校区:
| VLAN | 用途 | 网段 | 网关 | 部署位置 |
|---|---|---|---|---|
| VLAN 10 | 学生宿舍区域 | 192.168.10.0/24 | 192.168.10.1 | 接入层到核心层 |
| VLAN 20 | 教学办公区域 | 192.168.20.0/24 | 192.168.20.1 | 接入层到核心层 |
| VLAN 30 | 行政区域 | 192.168.30.0/24 | 192.168.30.1 | 接入层到核心层 |
| VLAN 40 | 无线网络区域 | 192.168.40.0/24 | 192.168.40.1 | AC/AP接入,覆盖所有区域 |
| VLAN 99 | 设备管理 | 192.168.99.0/24 | 192.168.99.1 | 交换机、AP管理地址 |
| VLAN 100 | 核心与出口互连 | 10.0.1.0/30 | 10.0.1.1 | 核心交换机与AR2220之间 |
为什么单独留一个VLAN 99给管理地址?因为接入交换机、AP这些设备的管理IP如果不和业务网段分开,一旦某个业务VLAN被广播风暴干扰,所有设备都会失联。管理VLAN只承载设备维护流量,和用户业务隔离,这是校园网的标准做法。
IP规划要注意一件事:网关地址我习惯用.1,DHCP地址池范围放在.100到.249,预留1~99给静态设备如打印机和服务器。这样DHCP动态分配和静态绑定互不冲突,排查地址冲突的时间至少省一半。
2.3 接入交换机VLAN创建和端口类型配置
三层拓扑明确之后,第一个动手的环节就是接入交换机。接线关系是:PC接接入交换机G0/0/1和G0/0/2,接入交换机的上行口G0/0/24接到汇聚交换机;汇聚交换机上行口接核心交换机。下面这段配置在接入交换机上执行,把VLAN 10和VLAN 20分别放到两台PC所在的端口。注意student-pc1接的是VLAN 10的口,teacher-pc接的是VLAN 20的口,两者广播隔离但三层可以互访。
system-view sysname S5700-Access-1 vlan batch 10 20 99 interface GigabitEthernet 0/0/1 port link-type access port default vlan 10 interface GigabitEthernet 0/0/2 port link-type access port default vlan 20 interface GigabitEthernet 0/0/24 port link-type trunk port trunk allow-pass vlan 10 20 99 return逻辑说明:vlan batch是一次性创建多个VLAN,比逐个vlan创建效率高。PC所在端口必须用access模式,port default vlan决定该接入端口把无标记帧归类到哪个VLAN。接入交换机到汇聚交换机的上行口必须用trunk,port trunk allow-pass声明允许哪些VLAN通过这条干道链路。注意我没有在这个口上配置port trunk pvid,因为默认PVID是1,而华为设备默认PVID和VLAN 1不参与业务转发,在纯交换机互联的场景里保持默认没有任何问题。但连接AP或者某些服务器网卡时,PVID必须根据场景调整,这一点后面单独讲。
有一个细节我在教学里反复强调:port default vlan和port trunk pvid vlan是两个层面的东西。前者是access口归属哪个VLAN,后者是trunk口收到无标记帧时给它打哪个VLAN的标签。很多新手把这两条命令混着用,结果PC接在access口上,明明配置了port default vlan 10,却又在同一端口下敲了port link-type trunk,导致PC收到的帧全部带802.1Q标签,网卡直接拒绝解析,现象就是网卡显示已连接但拿不到IP。华为交换机的access模式会自动剥掉标签,trunk模式不会,所以面向PC的口只能access,面向交换机和AP的口才用trunk,这是铁律。
2.4 PVID与VLAN ID的区别:Trunk端口在对接无线AP时的关键
H3这节标题其实是个高频搜索词,在华为设备上,PVID和VLAN ID的区别是所有入门者都会绕进去的一个坎。简单说,VLAN ID是一个帧上携带的标签值,决定这个帧属于哪个VLAN;PVID是一个端口属性,决定进入这个端口的无标记帧被归类到哪个VLAN。一个端口只能有一个PVID,但可以允许多个VLAN通过。
实际配置里最典型的场景就是AP接入交换机。AP设备上行口发送的帧分两种:管理帧和业务帧。管理帧默认无标记,业务帧打上所属业务VLAN的标签。那么对接AP的交换机口就必须配trunk,同时把PVID设成管理VLAN 99,让未打标的管理帧进入管理网段,同时允许VLAN 40通过,承载无线业务。这一条的配置写法是:
interface GigabitEthernet 0/0/3 port link-type trunk port trunk pvid vlan 99 port trunk allow-pass vlan 40 99参数说明:port trunk pvid vlan 99是把该trunk口的默认VLAN切到99,这样AP发来的无标记管理帧会被打上99的标签进入交换机,AP就能通过DHCP拿到192.168.99.0网段的管理地址。port trunk allow-pass vlan 40 99表示允许业务VLAN 40和管理VLAN 99在这条链路上传输。如果这里漏掉allow-pass vlan 40,无线终端能连SSID但业务数据到不了上层,这是一个非常隐蔽的坑。反过来,如果在PVID里填了VLAN 40,AP管理帧会被错误归入业务VLAN,结果AP能连上业务网但AC找不到它,还在VLAN里和其他无线终端混在一起广播冲突。
3. 在ENSP中配置DHCP服务与OSPF路由:让校园网络打通VLAN间通信
3.1 VLAN间路由:三层交换机如何跨VLAN通信
VLAN划分是为了隔离广播域,隔离之后业务还要互通,这就需要在三层设备上终结VLAN。常见做法有两种:一种是单臂路由,用路由器的子接口终结多个VLAN;另一种是三层交换机的VLANIF接口,这也是校园网的推荐方案。单臂路由在流量大时存在瓶颈,而且每加一个VLAN都要在物理口上创建子接口并配置dot1q termination vid,维护成本和排错成本都比VLANIF高。
在这个项目里,网关终结在核心交换机上。核心交换机的配置是先创建所有VLAN,再给每个业务VLAN创建VLANIF三层接口写上IP地址,最后把连接入汇聚的下行口和连出口路由器的上行口都配置好。以下是核心交换机上VLANIF和互联口的配置:
system-view sysname S5700-Core vlan batch 10 20 30 40 99 100 interface Vlanif10 ip address 192.168.10.1 255.255.255.0 interface Vlanif20 ip address 192.168.20.1 255.255.255.0 interface Vlanif30 ip address 192.168.30.1 255.255.255.0 interface Vlanif40 ip address 192.168.40.1 255.255.255.0 interface Vlanif99 ip address 192.168.99.1 255.255.255.0 interface GigabitEthernet 0/0/24 port link-type access port default vlan 100 interface Vlanif100 ip address 10.0.1.1 255.255.255.252 return逻辑说明:每个VLANIF就是对应VLAN的网关,终端设备填写的网关地址就是它。VLANIF接口创建之后,交换机内部自动生成直连路由,同一个三层交换机上的不同VLANIF之间天然互通,不需要额外配路由协议。这是三层交换机的核心特性:VLAN间路由靠SVI或者叫VLANIF,而路由协议是连接跨设备的网段时才需要。
参数说明:接口G0/0/24上我用了access加default vlan 100的方式连接路由器,因为这段链路只有VLAN 100一个网段,不需要trunk。ip address 10.0.1.1 255.255.255.252这个30位掩码表示该网段只有两个可用地址,一个给交换机核心,一个给出口路由器,专门用于设备互联,不承载用户流量。
3.2 在AR2220上配置OSPF:核心与出口路由器的路由互通
VLANIF解决了本机内VLAN间的三层互通,但核心交换机要去往出口路由器的外部网段,或者出口路由器要回指校园内部网段,就必须跑动态路由协议。这个项目里选OSPF,原因有两点:第一,OSPF在园区网络环境里覆盖率最高,华为设备开局默认支持良好;第二,它的区域划分和开销计算逻辑对教学更有价值,学生会看到路由表是怎么根据cost收敛的。
出口路由器的配置如下:
system-view sysname AR2220-Gateway interface GigabitEthernet 0/0/0 ip address 10.0.1.2 255.255.255.252 interface GigabitEthernet 0/0/1 ip address 100.64.10.1 255.255.255.0 ospf 1 router-id 10.0.1.2 area 0.0.0.0 network 10.0.1.0 0.0.0.3 network 100.64.10.0 0.0.0.255 return逻辑说明:AR2220的G0/0/0是连接核心交换机的内网口,G0/0/1是模拟的校园出口网段。OSPF进程1在骨干区域0.0.0.0里宣告两个直连网段,router-id用的是内网互联地址。network 10.0.1.0 0.0.0.3后面的反掩码和IP相加得到的是该网段的范围,0.0.0.3对应的就是30位掩码的网段。
核心交换机那边也需要加入OSPF,否则核心学习不到出口网段的路由。在核心交换机上继续:
ospf 1 router-id 192.168.10.1 area 0.0.0.0 network 10.0.1.0 0.0.0.3 network 192.168.10.0 0.0.0.255 network 192.168.20.0 0.0.0.255 network 192.168.30.0 0.0.0.255 network 192.168.40.0 0.0.0.255 network 192.168.99.0 0.0.0.255参数说明:这里宣告了所有业务VLAN网段,确保出口路由器能学到去往校园内部的回程路由。VLANIF接口的IP地址其实就是OSPF宣告网段的来源,所以不需要在OSPF里再单独指定接口,只要宣告网段被某个接口地址覆盖即可。配完之后在AR2220上执行display ip routing-table,能看到192.168.10.0/24、192.168.20.0/24这些路由以OSPF方式学习进来。注意优先级要关注:OSPF的协议优先级是10,静态路由是60,直连是0,如果以后要在出口加静态默认路由,需要弄清楚优先级排序才能避免路由黑洞。
3.3 部署DHCP服务:在核心交换机上配置全局地址池
DHCP服务在这个项目里部署在核心交换机上,而不是独立服务器或路由器上,原因很简单:核心交换机离各个VLAN的网关最近,DHCP广播报文不需要跨三层穿透,直接把dhcp select global挂在VLANIF下,一条命令就把DHCP服务绑定到了对应网段。如果在独立服务器上部署DHCP,每个VLAN都要额外配置DHCP中继或ip helper-address,教学环境里会多出一层排错成本,不划算。
核心交换机上的DHCP配置:
dhcp enable ip pool vlan10_pool network 192.168.10.0 mask 255.255.255.0 gateway-list 192.168.10.1 dns-list 114.114.114.114 223.5.5.5 lease day 1 ip pool vlan40_pool network 192.168.40.0 mask 255.255.255.0 gateway-list 192.168.40.1 dns-list 114.114.114.114 223.5.5.5 lease day 1 interface Vlanif10 dhcp select global interface Vlanif40 dhcp select global逻辑说明:dhcp enable是总开关,漏掉后面所有配置都不生效。ip pool定义地址池,network段定义了可分配的地址范围,gateway-list给客户端下发网关,dns-list下发DNS。dhcp select global表示这个VLANIF从全局地址池里取地址,华为设备还有一个dhcp select interface选项,那是直接用接口地址所在网段做池子。两者的差别在于interface方式不需要额外写network和gateway,但地址池参数调整空间小。
参数说明:lease day 1设置租期为一天,校园网环境这个值合适,既不会因为租期过长导致地址回收慢,也不会因为租期太短让网络产生大量广播续租。dns-list我习惯写国内两个公共DNS,因为模拟环境里终端要解析外网域名就必须有可达的DNS服务器,而模拟器里通常没有真实DNS,公共DNS地址可以让后续的ping域名测试看起来更真实。
3.4 DHCP Snooping与ARP检测的联动配置
DHCP Snooping和ARP检测是安全加固项,真实校园网基本都会开,教学环境里这两个功能也是实验要求中高频出现的得分点。DHCP Snooping的作用是监控DHCP报文,建立一张IP和MAC的绑定表,同时阻断私架DHCP服务器的行为。ARP检测则是在端口上校验ARP报文中的IP和MAC是否在绑定表里,防止ARP欺骗。
配置位置在接入交换机上,因为DHCP Snooping的信任边界就在接入层。配置思路:上联口设为信任口,PC口保持非信任。这样DHCP Offer、DHCP Ack这些来自服务器方向的报文只能从信任口进入,PC口如果收到伪造的DHCP Offer直接丢弃。具体配置:
system-view dhcp snooping enable vlan 10 dhcp snooping enable arp detect enable vlan 20 dhcp snooping enable arp detect enable interface GigabitEthernet 0/0/24 dhcp snooping trusted逻辑说明:dhcp snooping enable是全局开关,然后在每个业务VLAN里再单独开启,这是华为设备的双级开关机制,全局开了不代表VLAN自动开。arp detect enable要放在VLAN视图下,它会联动DHCP Snooping生成的绑定表,对进入该VLAN的ARP报文做合法性校验。上行口G0/0/24是连接汇聚交换机的口,DHCP服务器的报文要从这个方向进来,所以必须标trusted。
参数说明:这里最容易犯的错是把trusted配反了。如果PC口被误配成trusted,DHCP Snooping绑定表就永远建立不起来,因为设备直接信任了来自PC口的报文。紧接着ARP检测就会把正常的ARP请求当非法报文丢弃,整个网段断网。第5章我会再讲这个现象的具体表现和查错方法。
4. 在ENSP中配置无线AP接入:从AC集中管理到无线终端获取地址
4.1 无线组网结构与AC部署位置
校园网无线部分的标准做法是AC集中管理加瘦AP模式。AC6005放在核心层附近,所有AP通过CAPWAP协议向AC注册,SSID、VAP、认证策略全部在AC上下发,AP本身不保存业务配置。这样做的理由是管理成本低:几十台AP只需要改AC一处,所有AP同步生效。
在这个拓扑里,AC6005的G0/0/1口接到核心交换机的某个普通端口上,管理地址放在VLAN 99网段。核心交换机上需要提前给AC分一个VLAN,这里我沿用VLAN 99作为AC和AP的管理网段。AC和AP处于同一个二层域内,省去了跨三层CAPWAP发现的复杂度,适合教学场景。
AC6005的初始配置:
system-view sysname HUST-AC vlan batch 40 99 interface GigabitEthernet 0/0/1 port link-type trunk port trunk pvid vlan 99 port trunk allow-pass vlan 40 99 interface Vlanif99 ip address 192.168.99.2 255.255.255.0逻辑说明:AC的G0/0/1连接核心交换机,PVID设99,保证AC发出的管理帧进入管理VLAN。VLANIF99是AC在三层网络里的管理地址,AP通过这个地址向AC发起CAPWAP注册。port trunk allow-pass vlan 40 99是让AC能够处理业务VLAN 40的数据帧,虽然AC只是控制面设备,但业务VLAN的流量会在AP和核心交换机之间直接转发,AC这边只需要在配置层面允许这个VLAN。
参数说明:AC的管理地址192.168.99.2不要和核心交换机的192.168.99.1冲突。如果这个项目中后续要加AC的热备,第二个AC的管理地址就设为192.168.99.3,同时启用VRRP。现在单AC环境下,地址规划越规律越容易记。
4.2 AP注册流程:CAPWAP发现与AP认证
AP在接上网络之后,第一件事是拿到管理地址,然后通过CAPWAP协议找到AC并注册。整个流程在ENSP里可以在AC上通过display esn或display ap all观察状态变化。AP的注册可以拆成三步:AP通过DHCP获取管理IP,通过广播或DNS找到AC的IP,AC对AP进行认证并下发配置。
AP认证方式默认是MAC认证。在真实设备上,AP的MAC地址提前录入AC,AP上线时AC检查MAC是否在允许列表里。ENSP模拟器里的AP2050DN有一个预设的MAC,可以通过display ap all查看。AC侧需要提前把AP的MAC添加到设备列表,开启MAC认证:
wlan ap auth-mode mac-auth ap-id 0 type-id 45 mac 00e0-fc01-0001逻辑说明:ap auth-mode mac-auth把认证模式改为MAC地址认证。ap-id 0是给这台AP分配的编号,type-id对应AP2050DN的设备类型编号,mac是AP的物理地址。配置完成后,AP上电并拿到地址,就会自动通过CAPWAP向AC发起注册请求。在ENSP中刷新AP状态,看到display ap all里State变为normal,就说明注册成功。
参数说明:如果AP始终显示fault或unauthorized,首选检查MAC地址是否有大小写或符号录入错误。ENSP的AP MAC可以直接从AP设备的系统视图下执行display interface GigabitEthernet 0/0/0查看到。AP的状态字段在AC上是normal表示正常,fault表示控制通道断开,config表示正在下发配置,这几个状态我在第5章的常用排查里还会再讲。
4.3 SSID与VAP模板配置:服务VLAN的绑定逻辑
AP注册成功不是终点,真正决定无线终端行为的是SSID和VAP模板。VAP模板绑定SSID和服务VLAN,AP然后把VAP模板挂到具体的射频口上,也就是radio 0。这里的核心关联是:服务VLAN必须是无线终端所在的业务VLAN,也就是VLAN 40。
AC上的SSID和VAP配置:
wlan ssid-profile name HUST_WLAN ssid HUST-Student vap-profile name HUST_VAP forward-mode direct-forward service-vlan vlan-id 40 ssid-profile HUST_WLAN ap-group name default vap-profile HUST_VAP wlan 1 radio 0逻辑说明:ssid-profile定义了无线网络的名称,ssid HUST-Student就是手机或电脑上看到的Wi-Fi名字。vap-profile把SSID、转发模式、服务VLAN绑定在一起。forward-mode direct-forward表示业务数据帧由AP直接转发到交换机,不走AC封装,这是园区网最常用的本地转发模式,带宽消耗小、延迟低。另一类是集中转发,业务数据要封装到AC再由AC转发,适合对审计要求高的场景,但链路带宽和AC性能压力大。我在这里选direct-forward,理由教学环境要模拟的是常态校园网,本地转发对AC的带宽开销最小。
参数说明:service-vlan vlan-id 40是整个配置的灵魂,它决定了无线终端的DHCP请求会被打上VLAN 40的标签送到交换网络。如果这个VLAN配置成了99,无线终端就会进入管理网段,虽然能拿地址但访问不了业务资源,而且移动设备直接和网络设备混在同一广播域,安全隐患很大。wlan 1 radio 0指定的是射频接口编号和SSID索引,多AP组网时每个AP的radio都引用同一个VAP模板即可。
4.4 无线终端获取地址与跨VLAN互访验证
无线终端接入到AP,关联SSID成功之后,终端会发送DHCP Discover广播请求。这个请求在AP侧被贴上VLAN 40的标签,经过接入交换机进入VLAN 40。DHCP服务器的地址池在核心交换机上,VLANIF40上配置了dhcp select global,所以请求到达DHCP进程后从vlan40_pool分配一个192.168.40.x的地址。
终端拿到地址之后,默认网关是192.168.40.1,也就是核心交换机上的VLANIF40。如果这个无线终端要去访问VLAN 10的学生宿舍网段的打印服务器,数据包先到达网关VLANIF40,然后核心交换机查路由表,发现192.168.10.0/24是本地直连接口VLANIF10,直接在三层转发。这一步验证下来,无线和有线就打通了。
这个环节常见的现象是:无线终端能连上SSID,但地址一直显示169.254.x.x,也就是APIPA自动配置地址。造成这个问题的原因可能有三处:一是核心交换机VLANIF40没有配dhcp select global;二是AP上行口没有允许VLAN 40通过;三是AP的服务VLAN模板绑定的VLAN和核心交换机VLANIF40不在同一个VLAN。第5章我会专门把这种“连上WiFi但上不了网”的场景逐项排查一遍。
5. ENSP校园网络实验的常见问题排查:从设备启动失败到DHCP获取不到IP
5.1 AR1设备启动失败并提示40:先查VirtualBox和CPU虚拟化
现象:在ENSP中启动拓扑时,AR1路由器反复重启,命令行里报类似“启动设备AR1失败40”或“错误代码40”的提示,设备图标一直是灰色或黄色。
原因:ENSP的AR系列设备是通过VirtualBox虚拟机运行的,错误代码40通常表示虚拟机进程没有被正常创建,背后常见的原因有三个:Windows的Hyper-V服务没有被关闭导致VirtualBox无法使用硬件虚拟化;VirtualBox版本和ENSP版本不兼容;电脑的CPU虚拟化在BIOS中没有开启。
解决步骤是:先打开控制面板,依次打开“程序”,找到“启用或关闭Windows功能”,把Hyper-V那一项取消勾选,重启电脑;再卸载当前VirtualBox,安装ENSP自带或官网推荐的VirtualBox版本;最后进BIOS确认Intel VT-x或AMD-V处于开启状态。这三点都处理完,AR1基本能正常启动。另外注意ENSP必须在管理员权限下运行,否则虚拟机进程拿不到需要的系统资源。
我个人的习惯是装完ENSP后先把所有设备类型都拖进一个空白拓扑各启动一台,跑一遍再开始正式搭建。如果这个自检测试都过不了,后面再配VLAN和DHCP都是白做。
5.2 DHCP客户端报错5或一直转圈获取不到地址
现象:在ENSP的PC机上开DHCP,PC界面一直显示“正在获取地址”,过一段时间报DHCP客户端错误5,或者PC自动变成169.254.x.x地址。
原因:排查方向要分层。最常见的是交换机上只建了地址池但没在VLANIF接口上执行dhcp select global;其次是dhcp enable全局开关漏配;还有可能是PC接到了错误的交换机端口,PC所属的VLAN和DHCP服务器地址池所在的VLAN不一致,广播域不通,DHCP Discover报文根本到达不了服务器。
解决:先在核心交换机上执行display current-configuration | include dhcp,确认三个关键点都存在:dhcp enable、对应VLANIF下存在dhcp select global、ip pool的network段和VLANIF网段一致。然后查看PC所在的接入端口归属哪个VLAN,用display vlan确认端口所在的VLAN和DHCP服务网段匹配。在ENSP里最容易踩的坑是PC机网卡默认没有勾选“启用DHCP”,新建PC后要右键主机,进入IPv4设置,把“自动获取IP地址”和“自动获取DNS”都打开。
5.3 DHCP Snooping的信任口配错,导致ARP检测把正常报文也丢弃
现象:配置完DHCP Snooping和ARP检测后,整个VLAN内所有终端突然断网,或者只有部分终端能拿到地址,拿到地址的终端也无法ping通网关。在接入交换机上执行display arp detect看到大量丢包计数。
原因:这是一个典型的联动故障。DHCP Snooping的绑定表没有建立或建立不完整,ARP检测又严格依赖绑定表来校验ARP报文,表里没有的IP-MAC组合直接丢弃。绑定表没建立是因为上联口没有被设为trusted,或者更常见的错误是把PC口误设成了trusted。我把trusted配在PC口上后,服务器下发的DHCP Offer报文从一个非信任口方向进来,如果这个口恰好是PC口,那么Offer被丢弃,终端永远拿不到地址,绑定表自然为空。
解决:立即在接入交换机上执行display dhcp snooping,确认绑定表是否为空。如果为空,把上联口设成trusted:进入上联口视图,执行dhcp snooping trusted。同时检查PC口的状态,如果之前误配过trusted,用undo dhcp snooping trusted撤销。最后在PC上先释放地址再重新获取,执行ipconfig /release和ipconfig /renew,观察绑定表开始出现条目。从这里也能看出,ARP检测和DHCP Snooping不是两个独立的配置,它们之间是强依赖关系,任何一侧配置错误都会让另一侧失效。
5.4 Trunk口的PVID配置错误,AP管理地址获取失败
现象:AP设备上电后一直无法和AC建立CAPWAP通道,AC上display ap all里看不到AP,或者AP状态一直是fault。在AP侧查看管理地址,发现地址是192.168.99.x网段以外的地址,或者干脆是169.254.x.x。
原因:AP上联交换机的端口我没配port trunk pvid vlan 99,或配了但PVID写错了。AP的管理帧默认不带VLAN标签,交换机收到无标签帧后会按端口PVID归类。如果PVID是1,管理帧就进了VLAN 1,AP拿到的地址就是VLAN 1所在网段的地址,而AC的管理地址在192.168.99.0/24,两侧不在一个广播域内,CAPWAP广播发现和DHCP地址获取都会失败。
解决:把AP上联的交换机端口改为trunk模式,配置port trunk pvid vlan 99和port trunk allow-pass vlan 40 99。改完配置后重启AP或执行AP上的restart命令,让AP重新走一遍DHCP获取和CAPWAP发现流程。同时用display interface确认AP拿到了192.168.99.x的地址。另外要记住的一课是:AP业务VLAN的标签是AP自己打的,管理帧不打标,交换机侧的PVID只影响管理帧,不影响业务帧,所以两个参数必须同时配,只配PVID不配allow-pass vlan 40的话,无线业务数据照样上不来。
5.5 无线终端连上了SSID但拿不到IP地址
现象:手机或PC在ENSP的STA设备上能看到并连上HUST-Student这个SSID,但IP地址一直获取不到,显示169.254.x.x,而AC上显示AP已经上线且状态normal。
原因:这个问题和有线DHCP故障的原因不一样,因为AP和AC状态正常,说明管理通道没问题。问题往往出在业务VLAN的链路完整性上。三处常见原因:第一,AP上联交换机端口没有port trunk allow-pass vlan 40;第二,核心交换机VLANIF40上没配dhcp select global;第三,AC的VAP模板里service-vlan写成了别的VLAN,比如写成了99,导致无线终端的DHCP请求被放到了管理VLAN。
解决:先在AC上执行display vap-profile,确认service-vlan是40而不是其他VLAN。再到AP上联交换机端口执行display port vlan(华为设备是display port vlan trunk),确认该端口的Allowed VLAN里包含40。最后到无线终端上观察获取地址的行为:如果拿到的是192.168.99.x的地址,说明service-vlan写错了;如果一直169.254.x.x,就要在核心交换机上确认VLANIF40的DHCP服务是否启用。这个排查顺序能快速把问题圈定在AC配置、链路放行、DHCP服务三个位置之一,而不是在三个位置之间反复猜测。
6. 验证方法与进阶技巧:在ENSP里把实验结论做实
配置全部完成之后,验证工作比配置本身更能暴露问题。我的标准验证流程是四步:第一步在PC终端上ping网关,确认二层和三层通路正常;第二步在PC上ping另一个VLAN的终端地址,确认VLAN间路由生效;第三步在出口路由器上执行display ip routing-table,确认OSPF学到了所有业务网段的回程路由;第四步在AC上display ap all,确认AP状态全是normal。这四步全过,整套校园网络模拟才算闭环。
进阶一点,用Wireshark抓带VLAN标签的报文是值得练的一项技巧。在ENSP拓扑中右键交换机和路由器之间的连线,选择“Start Capture”,然后在Wireshark过滤器里输入vlan,能看到所有经过该链路的数据帧都带有一个802.1Q头部。这个实验特别适合验证第2章讲的PVID问题:你可以在链路上抓包,看AP上行的管理帧到底打的是哪个VLAN的标签,和配置的预期对比一下,比靠猜靠谱得多。ENSP的抓包能力直接接在Wireshark后面,不需要额外配置。
验证工具上,我还习惯给所有PC终端统一开启持续ping,然后逐台断开接入交换机的上行口再恢复,观察路由收敛时间。还可以把其中一台PC改成静态IP,和DHCP分配的地址冲突,观察交换机端口是否报地址冲突告警。这些操作在真实设备上做有风险,在ENSP里可以放开手脚试。我的一个习惯是把整套配置保存成.bat文件,每次重新打开拓扑之后一条条执行,省去手动敲命令的时间。希望这些验证方法对你有帮助,至少在下次搭校园网模拟时,不用再靠玄学判断网络好坏。
本文还有配套的精品资源,点击获取