简介:面向网络工程初学者与中小企业网络运维人员,这份基于华为ensp的压缩包提供了一个可直接加载的中小型企业网仿真项目。内含1个拓扑文件和18个配套文件,共19个文件,整体仅20KB,包含cfg配置文件、efz设备镜像、xml配置描述等。其中拓扑文件可用ensp直接打开,还原路由、交换与终端的连接关系;cfg文件对应AR、LSW等设备参数,导入后即可复现典型企业组网。已有6447人学习下载。借助该环境,可练习VLAN划分、交换机接口配置、OSPF动态路由、ACL安全策略及设备冗余等场景,也可结合配置文件逐项核对IP规划、路由宣告与访问控制逻辑,理解仿真平台中配置与镜像的配合方式。整体内容精简、结构清晰,适合课程实训、技能考核或入职前组网自测,并能进一步延伸到故障排查与网络优化练习。
1. 从零搭到能跑的中小型企业网:这份eNSP工程包里有什么
eNSP 最大的坑往往不是命令敲不对,而是工程文件本身跑不起来。我拆过几套校赛和课程设计里流传的“中小型企业网”工程,真正能导入以后完整启动、从接入交换机一路 ping 通到外网的不到一半。这套搭建中小型企业网 eNSP 工程包,是把真实企业网三层架构搬进模拟器:核心交换机、接入交换机、出口路由器、无线 AC 与 AP 的位置都摆好了,VLAN、DHCP、ACL、NAT 的配置要点顺着目录逐步落位。它最适合三类人:做网络方向课程设计或毕业设计的学生、刚接触 eNSP 想照着完整项目练一遍的初学者、以及要给客户演示企业网组网方案的运维。先说明白,这个包不是拿来直接交作业的成品答案,更像一张带配置注释的施工图,你一边对照一边在 eNSP 里重敲,才能把企业网的几大块都真正过一遍。
2. 先定框架再连线:三层拓扑与eNSP设备选型
2.1 接入层、核心层、出口层各干什么
中小型企业网在 eNSP 里最常见的是三层架构:接入层、核心层、出口层。接入层交换机靠近终端,负责把 PC、打印机、AP 接进网络,在端口上划分 VLAN、做端口隔离;核心层是整个网络的枢纽,VLAN 间路由、DHCP 网关、ACL 访问控制基本都压在核心交换机上;出口层由路由器或防火墙承担,负责 NAT 地址转换、默认路由和边界防护。
这个分层不是照搬教科书,而是为了排查问题方便。如果把 VLAN 网关都放在出口路由器上,那么 PC 跨 VLAN 访问都得绕到出口设备绕一圈,不仅加重出口负担,而且核心交换机变成了纯二层设备,内网互访的流量你只能在出口设备上抓包才能看到,排查思路一下子就绕远了。在 eNSP 里做企业网实验,我一般遵循一个原则:所有 VLAN 网关终结在核心交换机,出口路由器只做公网侧的事。这样内网流量在核心内部就完成转发,也更容易复现真实企业网的行为。
2.2 设备型号与接口连线怎么选
eNSP 里没有绝对的“标准配置”,但按中小型企业网的常见体量,我一般会按这张表选型:
| 层级 | 设备型号 | 在拓扑里的角色 |
|---|---|---|
| 出口层 | AR2220 或 AR201 | 拨号/静态接入运营商,做 NAT 和默认路由 |
| 核心层 | S5700 系列交换机 | 三层转发,终结 VLANIF 网关,下发 DHCP |
| 接入层 | S5700 或 S3700 | 二层接入,划分 VLAN、隔离端口 |
| 无线控制 | AC6005 | 管理 AP,下发 SSID 与 VAP 配置 |
| 无线接入 | AP2050DN | 终端无线接入,桥接有线侧 |
| 边界安全 | USG6000V 防火墙 | 可选替换出口路由器,做安全策略 |
很多初学者上来就选一堆高配设备,结果 AR 路由器接口不够用、S5700 的端口数对不上拓扑,最后只能推翻重连。选型的第一步不是看参数,而是数清拓扑里有多少台终端、多少条互联链路。比如接入层两台交换机,每台需要给 PC 预留 8 个以上 Access 口,向上行还要留 2 个 Trunk 口与核心互联,那 S3700 的 24 口基本够用;但如果你要模拟监控、门禁等多业务接入,直接上 S5700 会更省事。
连接顺序也有讲究。核心交换机的上联口接出口路由器,下联口接接入交换机;无线 AC 一般旁挂在核心交换机上,AP 再接到接入交换机。不要把 AC 串在 PCC 和交换机之间,AC 是管理设备,不是转发链路的一部分。
2.3 拿到工程包后的第一次初始化
拿到这份 eNSP 工程包,先别急着双击启动所有设备。我习惯先把核心交换机和出口路由器启动,等它们 CLI 完全可用,再启动接入层和终端。一次性全选启动,eNSP 在低配置电脑上很容易让 VirtualBox 进程阻塞,表现为设备启动到一半卡住,命令行窗口半天不弹出来。
设备启动后,第一件事是清掉可能残留的配置。工程包里如果附带配置,导入后未必适合你的拓扑,可以先在用户视图执行:
reset saved-configuration紧接着在提示是否继续时输入Y,然后执行reboot重启设备。这一步相当于给设备吃一颗后悔药,比在配置界面里一条条 undo 快得多。注意这个操作在真实设备上要慎用,但 eNSP 环境里随便折腾,本身就是拿来练手的。
重启完成后进入系统视图,做一套统一的基础初始化,核心交换机为例:
sysname Core-S5700 undo info-center enable undo terminal monitor interface GigabitEthernet0/0/1 description Link-to-Router quitsysname设置设备名,后续排错的时候display current-configuration一眼能看出在操作哪台设备;undo info-center enable关掉系统信息中心,避免日志刷屏把命令行淹没了;undo terminal monitor关闭终端监控,防止配置过程中被日志打断。description是对端口的注释,这个习惯非常关键——拓扑一复杂,没有注释的端口在排障时就是黑匣子,只能一段段翻配置去猜这条线是连到哪的。
3. IP与VLAN规划先行:一张表理清整个企业网
3.1 一张业务网段表:VLAN编号、网关与DHCP池
在 eNSP 里敲命令之前,先把规划表做出来。很多翻车现场都是配置敲到一半才发现 VLAN 20 的子网掩码写错、网关地址和 DHCP 地址池冲突。我习惯先建一张完整的业务网段表,所有 VLAN 编号、网段、网关一次定死,后面所有配置都围绕这张表来填。
| VLAN | 业务名称 | 网段 | 网关 | DHCP 地址池 |
|---|---|---|---|---|
| VLAN 10 | 办公有线 | 192.168.10.0/24 | 192.168.10.254 | 192.168.10.100 - 192.168.10.200 |
| VLAN 20 | 财务专项 | 192.168.20.0/24 | 192.168.20.254 | 不启用 DHCP,静态分配 |
| VLAN 30 | 访客无线 | 192.168.30.0/24 | 192.168.30.254 | 192.168.30.100 - 192.168.30.200 |
| VLAN 40 | 服务器区 | 192.168.40.0/24 | 192.168.40.254 | 不启用 DHCP,静态分配 |
| VLAN 100 | 设备管理 | 192.168.100.0/24 | 192.168.100.254 | 192.168.100.10 - 192.168.100.50 |
财务和服务器网段故意不启用 DHCP,改用手工静态地址。原因很简单:财务 PC 和服务器需要固定 IP 做审计与访问控制,如果用 DHCP 分配,租约到期换地址,ACL 规则就全乱了。办公和访客网段则必须开 DHCP,否则几十台 PC 手动配 IP 会把人逼疯。设备管理网段单独划出来,是为了后续通过 SSH 或 Telnet 管理网络设备时,不会和业务流量混在一起。
3.2 核心交换机上把VLAN和数据面跑起来
有了规划表,核心交换机上的 VLAN 配置就只是按表填数。先批量创建 VLAN,再逐个配置 VLANIF 接口地址,最后启用 DHCP。注意 eNSP 里的 DHCP 服务有两种模式:全局地址池和接口地址池。企业网我推荐全局地址池,因为地址池和网关解耦,后续要调整 DHCP 分配范围不用动 VLANIF 接口。
dhcp enable ip pool vlan10 gateway-list 192.168.10.254 network 192.168.10.0 mask 255.255.255.0 dns-list 192.168.40.2 223.5.5.5 excluded-ip-address 192.168.10.1 192.168.10.253 lease day 1 quitgateway-list是分配给终端的网关地址,必须和 VLANIF10 的接口地址一致,否则 PC 能拿到 IP 却上不了网。network定义了地址池范围;dns-list我习惯先写内网 DNS 服务器(192.168.40.2),再写公共 DNS(223.5.5.5),这样终端解析内网域名时走内网 DNS,访问外网时有公共 DNS 兜底,避免内网域名解析绕路。excluded-ip-address排除掉网关、服务器、打印机等静态占用地址,防止 DHCP 把网关地址分配出去,这是最常见的地址冲突来源。lease day 1把租约设为 1 天,适合办公和访客场景,租约太长会导致地址回收慢,太短则终端频繁续约。
全局地址池配置完成,还要把 VLANIF 接口与地址池绑定:
interface Vlanif10 ip address 192.168.10.254 255.255.255.0 dhcp select global quitdhcp select global表示该接口从全局地址池中选择匹配网段的地址池分配地址。这里有个陷阱:如果接口地址和多个地址池网段都能匹配,设备会按地址池配置顺序选择,所以顺序很重要,办公网段优先、访客网段靠后,别乱排。
3.3 接口类型对照:Trunk、Access与Hybrid不能混用
华为交换机的接口类型比思科多一个 Hybrid,这也是最容易搞混的地方。Access 口只能承载一个 VLAN,一般接 PC 和打印机;Trunk 口用于交换机之间互联,允许放行多个带标签的 VLAN;Hybrid 口既能承载多 VLAN,又能指定哪些 VLAN 不打标签,常用于接路由器或 AP。
| 接口类型 | 常见接法 | 对 VLAN 标签的处理 | 典型应用 |
|---|---|---|---|
| Access | PC、打印机、服务器 | 收到无标签帧,打上 PVID 对应的 VLAN 标签 | 接入交换机下联口 |
| Trunk | 交换机互联、路由器子接口 | 放行指定 VLAN 的带标签帧 | 接入到核心、核心到路由器 |
| Hybrid | AP、AC、部分服务器 | 可以指定 untagged 和 tagged VLAN | 接 AP 时放行管理 VLAN 和业务 VLAN |
接 PC 的口一旦错配成 Trunk,PC 收到的帧带着 802.1Q 标签,普通网卡会直接丢弃,现象就是 PC 上看 IP 是正常的,但 ping 网关不通。接 AP 的口要用 Hybrid,因为 AP 的上联口既要转发管理 VLAN 又要转发业务 VLAN,而且 AP 本身需要以 untagged 方式接收管理 VLAN 报文。很多无线终端获取不到 IP,问题不在 AC 和 AP 的无线配置,而是交换机接 AP 的口没把业务 VLAN 以 tagged 方式放行。
4. 配置落地三步走:接入交换、核心交换与出口NAT
4.1 接入交换机:按部门隔离端口与广播域
接入交换机是整个拓扑里配置最机械的部分,但工作量最大。以一台接入交换机为例,它下联办公区和财务区,上联核心交换机。先建 VLAN,再把端口按部门归类:
sysname Access-S5700-1 vlan batch 10 20 interface GigabitEthernet0/0/1 port link-type access port default vlan 10 quit interface GigabitEthernet0/0/2 port link-type access port default vlan 20 quitport link-type access把端口设为 Access 模式,port default vlan指定该端口属于哪个 VLAN。PC 发来的无标签帧会被打上对应 VLAN 的标签,在交换机内部按 VLAN 隔离转发。如果你只有一两台 PC,逐端口配没问题,但接入层经常有连续十几个端口划到同一个 VLAN,这时候用端口组批量配置更快:
port-group 1 group-member GigabitEthernet0/0/3 to GigabitEthernet0/0/10 port link-type access port default vlan 10 quitport-group是华为 VRP 的批量配置工具,group-member指定连续的端口范围,后面的命令会对组内所有端口同时生效。我用它批量配置办公区和财务区端口,效率比逐端口快十倍。注意group-member支持to关键字指定连续范围,但不支持跨板卡和不连续的端口列表,遇到不连续端口只能分多个组。
接入交换机还要做一件事:隔离端口。办公区的 PC 大多不需要互相直接访问,可以在接入端口开启端口隔离:
interface GigabitEthernet0/0/3 port-isolate enable quitport-isolate enable让同一 VLAN 内的端口之间无法直接通信,只有上联口可以转发流量。这样可以缩小广播域、防止 ARP 欺骗在接入侧扩散。但要注意,端口隔离对同一设备上的端口之间生效,跨交换机通信不受影响。如果部门内 PC 需要互访,就不要开启这个功能。
4.2 核心交换机:VLANIF网关、Trunk中继与DHCP下发
核心交换机承担三层网关的角色,把接入层上来的 VLAN 流量终结在这里。先批量创建 VLAN,再配置 VLANIF 接口地址,同时把下联口的 Trunk 属性配好。下联口放行哪些 VLAN,取决于接入交换机上有哪些业务,别一股脑全放行,VLAN 管理要按最小权限原则收着来。
vlan batch 10 20 30 40 100 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 quit interface Vlanif10 ip address 192.168.10.254 255.255.255.0 dhcp select global quit interface Vlanif20 ip address 192.168.20.254 255.255.255.0 quitport trunk allow-pass vlan 10 20只放行办公和财务两个 VLAN,访客和服务器 VLAN 不经过这台接入交换机,没必要放行。VLANIF 接口的 IP 地址就是终端网关,dhcp select global关联第 3 章配置的全局地址池。这里要特别强调:VLANIF 接口只有先配置了 IP 地址,DHCP 才能在这个网段生效,很多人配置了地址池却忘记配 VLANIF,终端一直拿不到地址。
接下来在核心交换机上做访问控制。需求是:访客网段(192.168.30.0/24)可以上网,但不能访问办公网和服务器网段。用高级 ACL 在 VLANIF30 的 inbound 方向做过滤:
acl number 3001 rule 5 deny ip source 192.168.30.0 0.0.0.255 destination 192.168.10.0 0.0.0.255 rule 10 deny ip source 192.168.30.0 0.0.0.255 destination 192.168.40.0 0.0.0.255 rule 15 permit ip quit interface Vlanif30 traffic-filter inbound acl 3001 quitrule 5和rule 10分别禁止访客访问办公网和服务器网段,rule 15 permit ip放行其他所有流量。traffic-filter inbound把 ACL 应用到 VLANIF30 的入方向,访客终端访问内网的报文一进网关就被拦住,而访问外网的报文不受影响。这里 ACL 的规则编号按 5、10、15 递增,之间留出间隔,方便后续插入新规则——很多人在这一步把编号写成 1、2、3,回头想插规则只能整体删掉重配。
4.3 出口路由器:默认路由、NAT与ACL单向放行
核心交换机把内网流量转发到出口路由器,剩下的工作就是 NAT 和默认路由。AR2220 的 GE0/0/0 接核心交换机管理网段,GE0/0/1 接运营商模拟链路。先配互联地址和回程路由,再启用 NAT。
sysname Router-AR2220 interface GigabitEthernet0/0/0 ip address 192.168.100.1 255.255.255.0 quit interface GigabitEthernet0/0/1 ip address 202.100.1.2 255.255.255.0 quit ip route-static 192.168.0.0 16 192.168.100.254ip route-static 192.168.0.0 16 192.168.100.254是一条汇总回程路由,把内网所有网段都指回核心交换机。用 16 位掩码汇总 192.168.0.0——192.168.255.0 的所有网段,不用逐条写路由。核心交换机侧的默认路由在第 4.2 节配过:ip route-static 0.0.0.0 0.0.0.0 192.168.100.1,两条路由合起来,内网互访走核心、访问外网走路由器,转发路径就闭环了。
NAT 配置用基础 ACL 匹配内网网段,然后在公网接口上做nat outbound:
acl number 2000 rule 5 permit source 192.168.10.0 0.0.0.255 rule 10 permit source 192.168.30.0 0.0.0.255 quit interface GigabitEthernet0/0/1 nat outbound 2000 quitnat outbound 2000的意思是:匹配 ACL 2000 的源地址在出接口上做动态 NAT,把私有地址转换成 202.100.1.2 这个公网地址。这里故意没有放行 VLAN 20 和 VLAN 40,因为财务网段和服务器网段原则上不允许主动访问外网,做到出口层就掐断。如果你要把这两个网段也放行上网,在 ACL 里补一条rule 15 permit source 192.168.20.0 0.0.0.255即可。
如果整个网络规模再大一点,核心和出口之间改用 OSPF 替代静态路由会更灵活。启用 OSPF 时记得手工指定 router-id,比如router-id 2.2.2.2,它并不是一个接口地址,而是 OSPF 进程在自治系统里的唯一标识,多台设备之间不能重复。有人把 router-id 配成接口 IP,或者随意填了个 1.1.1.1 之后和别的设备冲突,邻居关系就一直起不来。
5. 企业网eNSP避坑排查:从错误40到ACL失效
5.1 AR启动失败报错误代码40
在 eNSP 里启动 AR 路由器时,启动进度条走到 40% 左右就卡住,然后弹出错误代码 40,这是 eNSP 最常见的问题。原因通常是 VirtualBox 版本与 eNSP 不兼容,或者 Windows 系统下的虚拟机服务异常。我在 Win11 上遇到过多次,安装路径如果带中文目录名也会触发这个问题,因为 VirtualBox 对中文路径的支持不稳定。
解决思路按顺序试:先确认安装路径全英文,然后以管理员身份运行 eNSP,打开任务管理器结束 VBoxSDS、VBoxHeadless 等残留进程后重试;如果还不行,卸载 VirtualBox,重新安装 eNSP 配套版本,并在安全软件中把 eNSP 和 VirtualBox 的安装目录加入白名单。启动设备前建议先单独启动一台 AR,等它完全就绪后再启动其他设备,批量启动会放大 VirtualBox 的并发压力。
5.2 console登录后命令行无反应
设备已经启动,界面显示运行中,但打开 console 窗口后回车没有任何反应,或者输入命令不回显。这个现象多半不是设备坏了,而是多个命令行窗口抢占了同一台设备的 console 通道。eNSP 里一台设备只能打开一个 console 窗口,之前关闭窗口时进程没有完全退出,新窗口就再也绑不上设备。
处理办法是回到拓扑视图,右键设备选择“停止”,等设备状态变为停止后再重新启动。如果设备配置还没保存,停止前先把配置导出备份,因为停止会清空设备内存中的运行配置。养成习惯:每次只打开一个命令行窗口,操作完及时关闭,减少这种“玄学”问题的出现概率。
5.3 配置了ACL但单向访问不管用
“交换机 ACL 做了单向访问不管用”——我在拆项目时经常看到这种反馈。现象有两种:要么配置了禁止访客访问办公网,结果访客还是能访问;要么连内网互访全都断了。原因几乎都是 ACL 应用方向或应用位置不对。基础 ACL(2000-2999)只匹配源地址,只能应用到接口的 inbound 方向;如果把它应用到 outbound 方向,匹配的是离开接口的报文的源地址,和内网访问关系完全对不上。另外,ACL 应该应用在网关接口(VLANIF)上,而不是物理接口上。
排错时先在核心交换机上执行display acl 3001,看规则计数有没有增加。计数不涨,说明报文根本没走到这个接口;计数涨了但终端还是能访问目标,说明规则顺序有问题,permit 规则写在了 deny 前面。华为 ACL 默认按规则编号从小到大匹配,所以 deny 规则的编号必须小于 permit,不要图省事全部用自动编号。改完规则记得用traffic-filter重新应用一次,有时候接口上 ACL 绑定了但规则没刷新。
5.4 防火墙Web登录不上
使用 USG6000V 做出口时,经常出现设备启动正常但浏览器无法打开 Web 管理页面。多数情况下不是忘了开 Web 服务,而是管理接口地址没配或者浏览器访问的地址不对。华为 USG 的 Web 管理默认走 HTTPS 协议,端口 8443,浏览器直接输入https://192.168.100.254:8443就能打开,但是接口必须先有可管理的 IP 地址。
先在防火墙 CLI 下执行display ip interface brief,确认管理接口地址是否配置。如果地址没配,进入接口视图配置 IP 并开启管理服务;如果地址已配,检查 PC 到防火墙之间是否隔着 ACL,以及防火墙安全策略是否放行了 PC 所在网段访问管理接口。不要一上来就怀疑浏览器,先把网络层和管理服务两项确认清楚,Web 登录基本都能解决。
5.5 无线终端获取不到IP地址
AP 在 AC 上已经上线,终端也能搜到 SSID,但连接后一直转圈拿不到 IP。这个问题的排查链比较长,我按经验顺序查三层:先看 AC 到核心交换机的链路有没有放行终端业务 VLAN,再看 DHCP 地址池是否覆盖无线网段,最后检查 AC 上 VAP 模板的下发 VLAN 是否与交换机侧一致。
display vap summary可以查看 VAP 状态,重点看状态是否为 UP,以及 VLAN 字段是否显示业务 VLAN 编号。如果 VLAN 显示为 0,说明 VAP 模板里没有绑定正确的业务 VLAN。交换机侧还要确认 AP 接入端口用的是 Hybrid 模式,并且以 untagged 方式放行管理 VLAN、以 tagged 方式放行业务 VLAN。AP 与 AC 之间走管理 VLAN 建立 CAPWAP 隧道,业务报文走业务 VLAN,这两个 VLAN 放行方式弄反,终端就不可能正常获取 IP。
6. 打通全网的验证手法:ping之外的两种核对思路
6.1 从PC到网关再到外网的逐级验证
配置全部敲完,别急着说“通了”,我习惯按一条固定的链路逐级验证。在办公区 PC 的命令行窗口里依次执行:
ping 192.168.10.254 ping 192.168.40.2 ping 202.100.1.1第一跳验证网关是否可达,通了说明接入交换机和核心之间的 Trunk、VLANIF 地址都没问题;第二跳验证 VLAN 间路由,通了说明核心交换机的三层转发和 ACL 放行正常;第三跳验证出口链路,通了说明默认路由和运营商侧模拟链路没问题。如果第一跳就不通,直接看 PC 的 IP 地址是不是从 DHCP 正常拿到的,ipconfig看一下网关、掩码、DNS 三项对不对,别在后面的链路上浪费时间。
6.2 用display命令核对路由表、ARP表与DHCP租约
ping 通了不代表配置没有隐患,我还会在核心交换机上做一轮静态核对:
display ip interface brief display dhcp server statistics display arpdisplay ip interface brief查看所有三层接口的地址与物理状态,重点看 VLANIF 接口的 IP 是否全部配置到位、状态是否为 UP;display dhcp server statistics看地址池分配计数,如果分配数为 0 但 PC 显示拿到了地址,说明地址是手工配的或走了接口地址池;display arp查看终端 MAC 是否学习到了正确接口。这三个命令把地址层、DHCP 层、ARP 层的状态一次性看全。最后在出口路由器上执行display nat session all查看 NAT 会话,确认内网地址确实在转换,不是走了什么“直通”的旁路。
6.3 抓包验证ACL与NAT的真实行为
如果怀疑 ACL 或 NAT 配置有问题,最直接的手段是在 eNSP 拓扑里开启接口抓包。在核心交换机接路由器的接口上抓包,访客 PC 去 ping 办公网网关,如果抓到的是从 192.168.30.254 发往 192.168.10.254 的报文,说明 ACL 规则没有生效;如果完全抓不到报文,说明报文在 VLANIF30 入方向被traffic-filter拦掉了。同样在路由器 GE0/0/1 上抓包,office PC 访问外网时源地址应该显示为 202.100.1.2,如果还是 192.168.10.x,说明nat outbound没有匹配上。
我自己经手过好几个 eNSP 项目,最后发现所谓“网络不通”,绝大多数不是命令复杂度的问题,而是接口地址、VLAN 放行、路由指向这三板斧里有一样没对齐。从那以后,我每次搭完一个 eNSP 工程,都强制走一遍“接口地址到 VLAN 放行、VLAN 放行到路由表、路由表到 NAT 会话、NAT 会话到 ACL 计数”的完整验证链,任何一步不对就停下来查,不抱着“应该没问题吧”的心态往下走。这套验证顺序其实就是企业网排障的标准动作,你在 eNSP 里练熟了,上真实设备心里也有底。希望这次的项目拆解能帮你顺顺利利跑通自己那份企业网工程。
本文还有配套的精品资源,点击获取