用eNSP从零搭建小型校园网:VLAN/OSPF/DHCP/NAT全配置详解
1. 项目背景与校园网设计思路1.1 为什么用eNSP搭校园网模拟环境做网络这一行尤其是刚入行或者在校阶段最难的不是背协议、看理论而是手里没有一套可以反复折腾的设备。真机实验当然好但交换机、路由器、无线控制器一套下来成本不低实验室机位也有限想在晚上十一点突然验证一个OSPF邻居问题基本不太现实。eNSPEnterprise Network Simulation Platform就是解决这个问题的——它是华为官方推出的图形化网络仿真工具免费、免许可几乎涵盖了华为企业网络的主流设备类型包括S系列交换机、AR系列路由器、USG系列防火墙、AC无线控制器和AP等。我这次做的小型校园网模拟环境本质上就是用eNSP把一套缩略版的高校校园网从无到有搭建起来。这个项目适合三类人第一类是正在备考HCIA/HCIP、需要大量动手练习的考生第二类是刚入职的运维新人想在面试前练熟园区网的标准配置流程第三类是学校实验课老师可以直接用这套拓扑给学生做综合实训。项目最终交付的东西很明确一套完整的eNSP拓扑文件加一份配置文档打开即用所有VLAN划分、IP规划、路由协议、DHCP服务、NAT转换全都在里面。你不需要从零开始思考端口怎么接、地址怎么分直接对照配置逐条敲一遍就能把一个典型的核心-汇聚-接入三层校园网跑起来。1.2 小型校园网的组网模型与需求分析在设计之前得先搞清楚一个小型校园网到底要承担哪些角色。大学校园网的使用场景比较典型教学楼、宿舍区、图书馆、行政楼、实验楼每个区域对网络的需求不太一样。教学楼和图书馆主要提供有线接入需要稳定、可管理宿舍区用户密度大是流量大头常见的做法是每个宿舍一个信息点或者直接上无线行政楼涉及办公业务需要和教学楼隔离权限分开管理。从技术模型上看这套网络就是一个标准的园区网三层架构核心层负责高速转发汇聚层做VLAN网关和流量策略控制接入层直接面向终端设备。规模上我控制在小型——核心两台、汇聚两台、接入四台整个网络最多容纳七八百个终端这个体量对于教学楼加宿舍区的组合是够用的同时也方便在一台普通配置的电脑上跑起来不至于让eNSP卡到点不动设备。需求敲定之后设计目标就清晰了网络要能自解释也就是每一条VLAN、每一个网段都有明确对应场景配置要可复制把整套命令换个网段就能用到真实环境的开局里去出问题要可排查所以在设备命名、接口描述、日志同步上都做了统一规范。2. 拓扑规划与地址分配方案2.1 三层网络架构与设备选型设备选型这一步直接在eNSP里从设备列表拖就行但选什么型号是有讲究的。核心层我选了两台S5700交换机这是一款支持三层路由功能的盒式交换机性能比S3700强不少可以同时跑VLANIF接口路由和DHCP中继在模拟器里也不会出现CPU过载的问题。汇聚层同样选S5700和核心保持同一系列主要图的是配置命令统一后续排错省事。接入层用了S3700这款设备虽然较老但作为二层接入交换机完全够用支持标准VLAN和链路聚合关键是模拟器里用它开四台不会太吃内存。路由器选了两台AR2220一台作为校园网出口网关负责NAT和外网路由另一台用来模拟运营商或者上级教育网设备这样可以在实验环境里跑一个没配置NAT的纯路由链路方便测试从外网回访校园网的行为。无线部分加了一台AC6605无线控制器和两台AP2050DN虽然标题里强调的是有线网络的设计与配置但园区网实验里不带无线总觉得少了点完整性。防火墙选的是USG6000V放在出口路由器和核心之间对应真实校园网的边界防护位置。所有设备选型都遵循一个原则模拟器里能稳定运行、命令和真实设备尽量一致不存在为了演示故意选老旧型号的问题。2.2 VLAN规划与IP地址池设计地址规划是整个项目里最不能拍脑袋的部分。IP规划做不好后面配置VLAN接口、写路由、做DHCP全都会乱套。我最终确定的方案采用10.10.0.0/16这个大段然后按功能区域细分管理VLAN 10网段10.10.10.0/24用于所有网络设备的互联管理接口网关10.10.10.254地址池只分配给设备管理地址终端设备不发放这个网段的IP。教学楼VLAN 20网段10.10.20.0/24网关10.10.20.254对应教学楼的有线接入信息点。图书馆VLAN 30网段10.10.30.0/24网关10.10.30.254图书馆公共区域的终端接入。宿舍区VLAN 40网段10.10.40.0/24网关10.10.40.254这个网段是用户密度最大的区域。行政办公VLAN 50网段10.10.50.0/24网关10.10.50.254和教学区域隔离权限单独控制。无线用户VLAN 60网段10.10.60.0/24网关10.10.60.254无线终端通过AC统一下发地址。服务器VLAN 70网段10.10.70.0/24网关10.10.70.254放模拟的校园网内部服务器比如OA系统、FTP、DNS。设备互联VLAN 100网段10.10.100.0/30用于核心到汇聚、核心到出口路由器的点对点互联。这个规划看起来很细但每条都有它的逻辑。比如管理VLAN单独拿一段不跟业务混在一起是为了防止用户侧流量干扰设备管理通道服务器单独划VLAN是方便后续做防火墙安全策略时直接按网段放行。每个VLAN的网关都放在汇聚交换机上核心交换机不终结用户网关这样可以把广播域控制在汇聚以下核心只做高速转发和路由交换符合园区网的常用设计思路。一个小提示在eNSP里做IP规划时不要用太大的网段比如整个B段直接挂在接入交换机上模拟器里的很多问题是BPDU、ARP广播带来的网段划分越合理后面跑起来越流畅排查问题也越容易定位。3. 核心配置实操配好即用的配置片段这一部分是我花时间最多的环节。拓扑搭好之后真正的难度不在命令怎么敲而在为什么这里要这么配。我按实际配置顺序来写从接入层往上推这样对照配置文档敲的时候最顺畅。3.1 交换机基础配置与VLAN划分交换机的开局配置集中在几个方面设备命名、关闭VLAN广播的无效协议、创建VLAN、配置接口类型、配置管理地址。我习惯把设备命名规范写在最前面方便从eNSP的拓扑界面一眼认出设备角色。比如教学楼接入交换机命名为SW-Access-JX-A宿舍区接入交换机命名为SW-Access-SS-A核心交换机命名为SW-Core-A。设备命名不只是好看在真实环境里所有交换机日志都会带主机名排错时能快速判断故障位置。接入层交换机的配置核心是接口模式。连接终端的接口配成access只允许一个VLAN通过连接汇聚交换机的上联口配成trunk放行所有业务VLAN。我以教学楼接入交换机为例需要配置的命令如下sysname SW-Access-JX-A vlan batch 20 30 40 50 60 undo info-center enable // 关闭信息中心减少模拟器资源占用 interface Ethernet0/0/1 port link-type access port default vlan 20 description To-PC-Teaching-101 interface Ethernet0/0/2 port link-type access port default vlan 20 description To-PC-Teaching-102 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 20 30 40 50 60 description To-SW-Agg-A这里有一个特别值得说的细节——关闭信息中心。在真实设备上我一般不建议关因为日志是排错的重要依据。但在eNSP模拟器里由于很多设备的日志上报机制不完整开着信息中心反而容易导致模拟器CPU占用高、设备卡顿甚至有概率出现设备启动失败的间接诱因。所以我的建议是模拟环境里集中关闭日志输出真实环境里务必保留并配置日志服务器。另外我遇到不少朋友在配置trunk时只放行了特定VLAN却忘了在trunk上允许管理VLAN。这样会造成一个非常隐蔽的问题汇聚设备能转发业务数据但远程管理接入交换机的时候不通。排查思路很简单ping一下管理地址从二层路径捋一遍但如果一开始trunk就带了vlan 10这类问题就不会出现。3.2 跨交换机链路聚合与STP优化如果只是单台汇聚挂多台接入聚合链路的意义不大。但我在这个项目里把两台汇聚做成了双链路到核心这时候如果不用链路聚合STP会把其中一条链路阻塞掉浪费带宽不说还可能在模拟器里引起拓扑收敛的问题。链路聚合的命令在华为设备上叫Eth-Trunk。汇聚交换机上联核心时我做了两条链路聚合后再接核心配置如下interface Eth-Trunk1 port link-type trunk port trunk allow-pass vlan all interface GigabitEthernet0/0/1 eth-trunk 1 interface GigabitEthernet0/0/2 eth-trunk 1链路聚合之后STP的处理对象就从物理端口变成了逻辑端口两条物理链路在逻辑上成为一条不存在环路带宽也翻倍了。这个逻辑一定要理解到位——Eth-Trunk不是简单地把两个口绑在一起而是在逻辑层面让交换机把这两个口当成一个端口来参与二层计算。STP的配置主要是调整根桥和加速收敛。我让核心交换机成为根桥汇聚交换机作为备用根桥避免接入层设备参与根桥选举时出现意外。配置方式有两种一种是直接设优先级核心设4096汇聚设8192另一种是用stp root primary和stp root secondary华为设备会自动调整优先级。我习惯手动指定因为这样配置更透明看配置文档时别人也能直观明白你的设计意图。// 核心交换机 stp mode stp stp priority 4096 // 汇聚交换机 stp mode stp stp priority 8192端口加速方面面向终端的access口直接开stp edged-port enable这样接入终端上线时不需要等待STP收敛开机即通。这个配置在真实校园网里非常实用——学生宿舍的电脑频繁开关机STP默认的端口状态迁移时间长达30秒不开边缘端口的话每开关一次机就要等半分钟才能上网用户体验极差。3.3 路由器配置与DHCP服务在这个项目中网关并没有全放在核心交换机上而是采用了汇聚交换机做VLAN网关、核心交换机做三层路由的方式。以宿舍区VLAN 40为例在汇聚交换机上配置VLANIF40作为网关interface Vlanif40 description Gateway-Dormitory ip address 10.10.40.254 255.255.255.0 dhcp select global这里的dhcp select global表示这个VLAN下的终端从全局DHCP地址池里获取IP。在汇聚交换机上配置全局DHCP地址池命令如下dhcp enable ip pool pool-dormitory network 10.10.40.0 mask 255.255.255.0 gateway-list 10.10.40.254 dns-list 10.10.70.254 114.114.114.114 excluded-ip-address 10.10.40.1 10.10.40.200 lease day 1 hour 0 minute 0地址池里专门排除了10.10.40.1到10.10.40.200这段这些地址留给手工指定的静态设备使用比如宿舍区的网络打印机、IP电话等。DHCP自动分配从.201开始有效避免了一台打印机被DHCP分配了地址才导致静态配置冲突的窘境。这个预留静态段的习惯是真实项目里被逼出来的——很多学校宿舍区有运营商接入的融合设备如果DHCP和静态地址混在同一个可用段出一次冲突故障排查成本远超当初规划时的五分钟。汇聚交换机配置好网关和DHCP之后终端获得到IP地址第二层通信就能实现了。但不同VLAN之间的通信还需要走三层路由这个任务交给了核心交换机在核心上配置各VLANIF接口的路由接口并启用VLAN间路由interface Vlanif20 ip address 10.10.20.254 255.255.255.0 interface Vlanif30 ip address 10.10.30.254 255.255.255.0 interface Vlanif40 ip address 10.10.40.254 255.255.255.0需要注意的是这里汇聚和核心上出现了同一网段的VLANIF配置本质是为了让汇聚交换机能作为网关终结用户三层流量而核心只是作为路由器进行网段间转发。在命令层面关键是核心交换机到汇聚交换机之间的互联链路需要做成三层接口或者三层子接口否则VLANIF之间怎么都ping不通。我最终选择的是用三层互联接口把核心和汇聚之间的链路地址规划在10.10.100.0/30网段核心与汇聚各拿一个可用地址。核心到汇聚之间的路由为了让整套配置更贴近真实校园网场景我选择了OSPF动态路由协议。在核心和汇聚上宣告各自的可达网段ospf 1 router-id 1.1.1.1 area 0.0.0.0 network 10.10.0.0 0.0.255.255配置OSPF之后整个网络的动静就出来了。汇聚交换机自动学到核心下挂的所有网段核心也能通过OSPF感知到汇聚侧VLAN的变化。这比静态路由配置量少而且以后要加汇聚设备只要宣告network路由自动生成扩展性更好。3.4 出口NAT与默认路由校园网离不开上网。eNSP里想让内网终端访问外部网络需要配置两段关键路由第一段是默认路由从核心指向出口路由器让所有内网流量往出口方向走。第二段是NAT在出口路由器上把内网地址转换成公网地址。虽然这是模拟环境公网地址是假的但配置逻辑和真实环境完全一致——模拟运营商设备的那台AR2220就充当外网环境检测你配置是否正确。核心交换机的默认路由指向和出口路由器互联的接口地址ip route-static 0.0.0.0 0.0.0.0 10.10.100.2出口路由器上的NAT配置使用Easy IP方式直接把出接口的公网地址作为转换后的地址适合这种没有固定公网地址池的场景acl number 2000 rule 5 permit source 10.10.0.0 0.0.255.255 interface GigabitEthernet0/0/0 ip address 202.100.1.2 255.255.255.252 nat outbound 2000这里ACL 2000匹配的是整个内网地址段把匹配到的流量在出接口上做源地址转换。测试时接一台PC设置成DHCP自动获取地址然后ping外网地址能通就说明NAT生效了。我建议测试时先ping网关确认二层通再ping核心确认不同VLAN通最后ping外网确认NAT通别一上来就ping外网通了不知道哪一步对的不通更是一团浆糊。做NAT时有一个常见误区只做了源地址转换没做目的地址的回程路由。其实NAT中unidirectional是假象真正跑起来的时候出口路由器会自动维护一张会话表内网发起访问后返回的流量能自动匹配所以不需要手工添加回程路由。但如果内网服务器需要被外网主动访问那就要配置NAT Server做端口映射了这是更进阶的操作我在这个项目里也加了一个小案例——把内网Web服务器通过nat server protocol tcp global 202.100.1.2 80 inside 10.10.70.10 80映射出去方便后续测试防火墙策略。4. 无线与防火墙扩展配置4.1 无线局域网配置实例一套校园网只靠有线肯定不行我把无线也作为扩展模块加了进去。AC6605无线控制器和AP之间通过CAPWAP协议通信AP启动后会从AC自动获取配置这个过程在企业网络里叫AP上线。无线配置的核心逻辑不复杂但牵扯的概念比较多。我拆成四步来做每一步都是下一步的前提第一步在AC上创建VLAN和VLANIF无线用户使用的是VLAN 60AC的管理地址放到VLAN 10里与核心交换机之间配置路由互通。第二步配置AP管理VLAN和AC源地址。AP在接入交换机上连接时对应的接口需要是trunk模式并且放行管理VLAN 10和业务VLAN 60。AC上设置源接口是Vlanif10保证AP能够通过管理网段找到AC并注册上线。第三步创建无线SSID服务模板。这一步决定了用户连上Wi-Fi后拿到的IP属于哪个网段、认证方式是什么wlan ssid-profile name campus-wifi ssid campus-wifi security-profile name campus-wifi security wpa2 psk pass-phrase Campus2024 aes traffic-profile name campus-wifi vap-profile name campus-wifi forward-mode direct-forward service-vlan vlan-id 60 ssid-profile campus-wifi security-profile campus-wifi traffic-profile campus-wifi第四步在AP组上应用VAP模板让AP开始广播SSID。AP通过CAPWAP自动从AC学到VAP配置并下发到射频口wlan ap-group name ap-group1 vap-profile campus-wifi wlan 1 radio 0 vap-profile campus-wifi wlan 1 radio 1配置完成后在AC上执行display ap all如果AP状态显示为nornormal就说明AP正常上线了。这里要特别注意WLAN配置必须先在AC上建好模板再把模板绑定到AP组顺序反了会导致AP拿到空配置来回折腾很久才发现是模板没建好。4.2 防火墙安全策略配置防火墙我放在了核心交换机和出口路由器之间。在eNSP里USG6000V防火墙默认有一组接口分别对应DMZ、Trust、Untrust三个安全区域我在这个项目中把内网核心接口划到Trust区域把连接出口路由器的接口划到Untrust区域服务器单独划到DMZ区域。防火墙安全策略的核心理解点在于华为防火墙默认是没有匹配策略就拒绝的模式所以光把接口加入区域还不够必须显式放行特定流量。放行所有内网到外网的流量firewall zone trust add interface GigabitEthernet0/0/0 firewall zone untrust add interface GigabitEthernet0/0/1 firewall zone dmz add interface GigabitEthernet0/0/2 security-policy rule name trust-to-untrust source-zone trust destination-zone untrust source-address 10.10.0.0 mask 255.255.0.0 action permit rule name dmz-to-trust source-zone dmz destination-zone trust action permit这样配置之后内网用户可以主动访问外网服务器区域的流量也可以被内网访问。反过来外网主动访问内网会被防火墙拦截除非显式配置了NAT映射和放行策略。我在实际测试中发现一个很典型的eNSP防火墙问题配置防火墙策略后内网终端ping外网不通排查了一圈发现是防火墙没有开启对应接口的Ping服务权限。在USG6000V里接口是默认拒绝ping的需要在接口视图下执行service-manage ping permit才能用ping来做连通性测试。这个问题在我最初搭实验时卡了我将近二十分钟差点以为是安全策略的问题。5. 常见问题与排查技巧实录eNSP这个工具说实话配置学起来不难反而是工具本身的问题最容易让人崩溃。我把自己这些年踩过的坑以及网工群里被问到最多的几个问题一起整理成速查表供你直接对照排查。5.1 AR1设备启动失败40问题的处理这个问题是eNSP用户最容易遇到的经典故障之一。设备启动失败40通常表现为打开拓扑启动AR1路由器设备图标变成灰色提示错误代码40。这个40错误在网络上的讨论度非常高原因可以归结为三大类第一类是VirtualBox版本兼容性问题。eNSP底层的设备运行依赖Oracle VirtualBoxeNSP对新版VirtualBox的兼容性并不好尤其是VirtualBox 6.0以上的版本大概率会出现AR设备启动失败。解决方案是卸载高版本VirtualBox安装eNSP官方配套的VirtualBox 5.2.x版本。第二类是Windows Hyper-V冲突。如果你的电脑开启了Hyper-V虚拟化功能VirtualBox无法正常创建虚拟网卡AR设备自然起不来。解决方法是关闭Hyper-V同时关闭Windows防火墙的虚拟化防护功能。注意修改完系统设置后要重启电脑只关Hyper-V不重启是没用的。第三类是设备配置残留。之前跑过的拓扑没有正常关闭再次打开时会沿用旧的虚拟硬盘配置也可能触发40错误。这种场景最省事的处理办法是删除eNSP工作目录下的device配置缓存或者把拓扑里出问题的设备删除重新拖一个出来。我在处理40错误时最常用的一招是打开任务管理器查看有没有VBoxHeadless进程残留有的话全部结束再重新启动AR设备。因为eNSP关闭拓扑后它有时不会自动杀掉后台的VirtualBox进程残留进程会占用虚拟网卡导致下一次启动失败。这个技巧在论坛里很少有人专门提但实际命中率极高。5.2 模拟器安装与版本匹配问题关于eNSP安装有一个必须提前说的点安装路径不要带中文和空格。很多人图省事把eNSP默认装在C盘Program Files目录这在老版本eNSP里经常造成组件注册失败。我建议手动指定一个纯英文路径比如D:\eNSP安装过程中把WinPcap、WireShark这些依赖组件一并勾选安装。eNSP对操作系统的兼容性也值得一提。Windows 10和Windows 11都可以运行但Win11需要额外注意Hyper-V和内核隔离的问题。如果你的电脑在安装后打不开eNSP或者设备能拖出来但启动不了第一步去启用或关闭Windows功能里把Hyper-V关掉再看看VirtualBox能不能正常创建虚拟机。如果折腾完VirtualBox还是启动失败可以尝试用管理员身份运行eNSP。eNSP在运行时需要修改虚拟网卡配置普通用户权限在某些系统策略下会被拦截导致设备无法获取到正确的网络桥接信息。这类问题用管理员身份打开后往往直接就解决了。5.3 配置排错的实用命令eNSP里排错的基本思路和真实设备一致一套三层网络不通先确定故障范围再逐层排查。我最常用的排错命令大概就这几个display ip interface brief快速查看所有接口的IP地址配置和状态。display vlan确认VLAN是否创建且接口分配是否正确。display eth-trunk检查链路聚合成员端口的状态确认是否都处于Selected状态。display stp brief查看STP端口角色和状态确认没有端口被意外阻塞。display ospf peer查看OSPF邻居状态是否达到Full排查路由学习问题。display nat session all查看NAT会话表确认内网流量是否做了地址转换。ping -a 源地址 目的地址带上源地址ping排查多网段环境下的路由问题。有一次我在群里看到有人问汇聚交换机ping不通核心交换机上联口的地址我给出的建议是先在核心上display ip routing-table看有没有到汇聚网段的路由结果发现是OSPF区域宣告时network掩码写错了把10.10.100.0/30写成了10.10.0.0/16导致路由表里全是叠加路由。这个案例说明排查过程中一定要从先看路由表入手而不是盲目重启设备或者怀疑链路故障。6. 项目验收与整网连通性测试配置全部完成之后不能急着说完成一定要做一轮完整的功能验收。我在这个项目中总结了一套验收流程每一步都有明确目的先做二层连通性验证从接入交换机接一台PC设置VLAN 20的静态IPping同一VLAN内的另一台PC通了说明二层链路和VLAN配置没问题。接着验证三层VLAN间路由用VLAN 20的PC去ping VLAN 40的PC通了说明核心交换机的VLAN间路由生效。然后验证DHCP服务——把PC改成自动获取地址重启网卡后能不能正常拿到IPIP段是否符合规划网关是不是指向.254DNS有没有下发成功。最后验证出口访问从内网任意PC ping出口路由器的公网接口地址通了说明NAT转换没问题再在核心交换机上ping外网地址确认路由和NAT的双链路都没问题。有条件的话在服务器区域的Web服务器上开启HTTP服务从外网模拟设备访问映射的公网地址这一步可以同时验证防火墙策略和NAT Server配置是否生效。做完这轮验收整个小型校园网模拟环境才算真正跑通。你可以把这个拓扑文件当成一个实验沙盘以后想练习ACL访问控制、策略路由、DHCP中继、BFD链路检测都能基于它往上加设备、加模块不必每次从零开始画拓扑。最后再分享一个小技巧eNSP源文件在别人电脑上打开时经常出现设备配置丢失或者拓扑错乱的现象原因是新旧版本之间的配置文件兼容性问题。如果你想分享拓扑给别人建议同时把设备配置导出成.cfg文件一并给过去这样对方导入配置后哪怕设备型号有细微差异也能快速恢复业务配置省得重新敲一遍命令。我自己做测试的时候就习惯每完成一个阶段的配置立刻导出配置备份一是防止eNSP崩溃导致工作丢失二是方便快速回退到上一个稳定版本这个习惯放到真实设备维护里同样受用。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →