ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

基于eNSP的企业网络规划:从VLAN划分到NAT配置实战

基于eNSP的企业网络规划:从VLAN划分到NAT配置实战 简介这份资源面向网络工程专业学生与初级网络工程师提供一套基于eNSP仿真平台的完整企业网络规划与设计案例可用于课程设计、毕业设计或实验参考。内容围绕正风信息公司网络展开涵盖需求分析、接入汇聚核心三层拓扑设计、部门IP地址与端口规划并逐一讲解VLAN、MSTP、VRRP、无线接入、DHCP、NAT、ACL等关键技术的原理与配置最后附有系统连通性测试与结论。压缩包共33个文件约2.33MB以txt配置脚本、efz设备镜像、xml拓扑节点、zip配置备份及docx论文文档为主另含topo实验拓扑便于直接导入eNSP复现实验。目前已有13057人学习下载读者可借此获得一份结构完整、技术点覆盖全面的企业组网方案对照配置脚本与拓扑快速搭建实验环境理解各层设备选型与协议协同思路适合作为网络规划类课程作业与技能提升的参考素材。1. 从一台 AR1 启动失败说起这套 eNSP 企业网规划到底能干什么很多人第一次打开 eNSP兴致勃勃拖出一台 AR1点启动结果弹窗报错 40或者 USG6000V 一直刷井号心态当场就崩了。我当年也是这样以为装完软件就能直接做企业网络规划后来才发现 eNSP 的坑一半在环境一半在拓扑设计本身。这套「基于 eNSP 的简单企业网络规划与设计」资源核心不是教你点按钮而是给出一套能跑通的小型企业网模型出口路由器做 NAT 和静态路由核心三层交换机做 VLAN 间路由接入层划部门 VLAN再配一条到 ISP 的默认路由。它适合正在做课程设计、毕业设计或者想从 Packet Tracer 转到华为设备体系的网络从业者。你拿到的不只是拓扑图而是一套可复现的配置逻辑和排错路径。2. 企业网拓扑怎么搭从 VLAN 划分到三层交换的完整链路2.1 先定地址规划再拖设备我见过太多人一上来就拖设备连线连完发现 IP 段冲突又回头改改到最后自己都记不清哪个口配了哪个网段。正确的顺序是先在纸上或 Excel 里把 VLAN、网段、网关、设备互联地址定死再进 eNSP 拖设备。这套资源里的企业网一般分四个 VLANVLAN 10 给行政部VLAN 20 给技术部VLAN 30 给财务部VLAN 99 留给网络设备管理。每个 VLAN 一个 /24 网段网关统一放在核心三层交换机上比如 VLAN 10 用 192.168.10.1/24VLAN 20 用 192.168.20.1/24依次类推。出口路由器和核心交换机之间用一条 10.0.0.0/30 的互联地址比如 10.0.0.1 和 10.0.0.2。这样规划的好处是后面做 ACL、做 NAT、做端口安全你都能直接按 VLAN 和网段来写策略不用满拓扑找地址。设备选型上接入层用 S5700 或 S3700 都行核心层必须用三层交换机比如 S5700 或 S6700出口用 AR2220 或 AR1220。如果资源里带了 USG6000V 防火墙那出口安全策略会更完整但 USG6000V 对内存和镜像要求高启动失败的概率也大新手可以先跳过防火墙用 AR 路由器做 NAT 出口等基础拓扑跑通了再加。2.2 接入层交换机配置VLAN 和 Access 口接入层交换机的任务很简单把 PC 划进对应 VLAN上行口放行所有 VLAN。下面这段配置我一般直接抄给 S5700改一下 VLAN 号和端口号就能用。# 接入层交换机基础配置 system-view sysname ACC-SW1 vlan batch 10 20 30 99 # 批量创建业务 VLAN 和管理 VLAN interface GigabitEthernet0/0/1 port link-type access # 接 PC 的口设为 Access port default vlan 10 # 把口划进 VLAN 10 quit interface GigabitEthernet0/0/2 port link-type access port default vlan 20 quit interface GigabitEthernet0/0/24 port link-type trunk # 上行口设为 Trunk port trunk allow-pass vlan 10 20 30 99 quit逻辑说明vlan batch一次把需要的 VLAN 都建好省得后面一个个补。Access 口只属于一个 VLAN接 PC 最稳。Trunk 口负责把多个 VLAN 的流量送到核心交换机allow-pass里必须把管理 VLAN 99 也放进去否则后面 Telnet 或 SSH 远程登录会连不上。参数上唯一要注意的是端口号eNSP 里 S5700 的端口从 GigabitEthernet0/0/1 开始别写成 0/1那是老式设备的写法。2.3 核心三层交换机VLANIF 做网关静态路由指出口核心交换机的配置是整个企业网的关键。它要给每个 VLAN 提供网关还要知道怎么把去往互联网的流量交给出口路由器。# 核心三层交换机配置 system-view sysname CORE-SW vlan batch 10 20 30 99 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 30 99 quit interface Vlanif10 ip address 192.168.10.1 255.255.255.0 quit interface Vlanif20 ip address 192.168.20.1 255.255.255.0 quit interface Vlanif30 ip address 192.168.30.1 255.255.255.0 quit interface Vlanif99 ip address 192.168.99.1 255.255.255.0 quit interface GigabitEthernet0/0/24 undo portswitch # 三层口需要先关掉二层交换功能 ip address 10.0.0.2 255.255.255.252 quit ip route-static 0.0.0.0 0.0.0.0 10.0.0.1 # 默认路由指向出口路由器逻辑说明VLANIF 是三层交换机上每个 VLAN 的虚拟接口配了 IP 就能做网关VLAN 间通信靠它直接路由不需要额外跑单臂路由。undo portswitch是把物理口从二层切到三层只有三层口才能直接配 IP。默认路由0.0.0.0 0.0.0.0指向出口路由器的 10.0.0.1这样所有不知道往哪走的流量都丢给出口。参数上互联地址用 /30 是为了省地址两个设备各一个刚好够用。2.4 出口路由器NAT 和默认路由出口路由器负责两件事把内网流量 NAT 出去以及把回包路由回来。# 出口路由器配置 system-view sysname EDGE-RT interface GigabitEthernet0/0/0 ip address 10.0.0.1 255.255.255.252 quit interface GigabitEthernet0/0/1 ip address 202.100.1.1 255.255.255.252 # 模拟 ISP 互联地址 quit acl number 2000 rule 5 permit source 192.168.0.0 0.0.255.255 # 允许内网网段做 NAT quit interface GigabitEthernet0/0/1 nat outbound 2000 quit ip route-static 192.168.0.0 255.255.0.0 10.0.0.2 # 回程路由指向核心交换机逻辑说明ACL 2000 是基础 ACL匹配内网源地址nat outbound把它绑到外网口上内网 PC 访问 202.100.1.2 时就会做源地址转换。回程路由必须写否则 ISP 侧的回包到了出口路由器它不知道 192.168.x.x 在哪直接丢掉。参数上0.0.255.255是通配符掩码对应 /16 的网段如果你内网用了多个 /24这条 ACL 能一次覆盖。3. 配置完怎么验证从 Ping 通到抓包看 NAT 会话3.1 分层验证别一上来就 Ping 外网拓扑配完很多人直接拿 PC 去 Ping 202.100.1.2不通就懵了。正确的验证顺序是从下往上先看 VLAN 内通不通再看 VLAN 间通不通再看出口通不通最后看 NAT 有没有生效。每一步都有对应的命令。第一步在接入层交换机上display vlan确认 VLAN 都建了端口划对了。第二步在核心交换机上display ip interface brief看 VLANIF 的 IP 是不是都 up 了。第三步用 PC1 Ping 同 VLAN 的 PC2通的话说明接入层没问题再 Ping 另一个 VLAN 的网关通的话说明三层交换正常。第四步在核心交换机上 Ping 10.0.0.1通的话说明到出口的链路没问题。第五步在出口路由器上display nat session all看有没有会话表项生成。3.2 用 display 命令定位断点如果某一步不通别急着改配置先用 display 命令把断点找出来。下面这几个命令是我排错时必敲的。display vlan # 看 VLAN 和端口归属 display port vlan # 看端口的 VLAN 模式 display ip routing-table # 看路由表有没有缺路由 display nat session all # 看 NAT 会话有没有建立 display interface GigabitEthernet0/0/1 # 看接口状态和收发计数逻辑说明display vlan能看出端口有没有划进正确的 VLAN如果 Trunk 口没放行某个 VLAN这里会显示该 VLAN 下没有端口。display ip routing-table重点看有没有默认路由以及直连网段是不是都正确。display nat session all如果为空说明流量根本没到出口或者 ACL 没匹配上。接口计数如果只有收没有发多半是路由回不来。3.3 抓包看 NAT 前后的地址变化eNSP 自带抓包功能在链路中点右键就能启动 Wireshark。我一般会在出口路由器的外网口抓一次包看源地址是不是已经从 192.168.x.x 变成了 202.100.1.1。如果抓包看到的是内网地址直接出去了说明 NAT 没生效回去检查nat outbound有没有绑到正确的接口上。如果抓包看到 ICMP 请求出去了但没有回包说明回程路由有问题去出口路由器上查display ip routing-table看 192.168.0.0/16 有没有指向 10.0.0.2。4. 避坑与排查eNSP 报错 40、USG6000V 井号、跨 VLAN 不通4.1 启动 AR1 失败报错 40现象点启动后弹窗提示「错误 40」设备起不来。原因eNSP 的 AR 设备依赖 VirtualBox 的虚拟化如果 VirtualBox 版本和 eNSP 不匹配或者 Hyper-V 没关就会报 40。解决先确认 VirtualBox 版本在 5.2.x 到 6.0.x 之间eNSP 对高版本 VirtualBox 兼容性差。然后在 Windows 功能里关掉 Hyper-V 和 Windows 沙盒重启后再启动 AR1。如果还不行把 eNSP 的 AR 设备删掉重新注册一遍。4.2 USG6000V 启动一直刷井号现象USG6000V 启动后控制台一直输出#永远进不了登录界面。原因USG6000V 的镜像文件不完整或者分配的内存不够。解决确认 USG6000V 的镜像文件大小正常一般几个 GB如果只有几百 MB 就是下载不完整。然后在 eNSP 里把 USG6000V 的内存调到 2048 MB 以上CPU 给 2 核。如果还是刷井号换一个镜像版本常见做法是用官方配套的 USG6000V 镜像包。4.3 跨 VLAN Ping 不通现象同 VLAN 能通跨 VLAN 不通。原因核心交换机的 VLANIF 没配 IP或者 PC 的网关没指向 VLANIF 地址。解决在核心交换机上display ip interface brief确认每个 VLANIF 都是 up 且配了 IP。然后在 PC 上ipconfig看默认网关是不是对应 VLAN 的 VLANIF 地址。如果网关对了还不通检查接入层到核心的 Trunk 口有没有放行该 VLAN。4.4 NAT 配了但外网访问不了现象内网能到出口路由器但 Ping 不通 ISP 地址。原因ACL 没匹配内网网段或者nat outbound绑错了接口。解决在出口路由器上display acl 2000看规则有没有命中计数。如果计数为 0说明流量没匹配上检查 ACL 里的源地址通配符是不是写错了。然后display current-configuration interface GigabitEthernet0/0/1确认nat outbound 2000确实在外网口上。4.5 eNSP 卸载不干净导致重装失败现象卸载 eNSP 后重新安装提示已有版本或注册表冲突。原因eNSP 卸载时不会清理 VirtualBox 的虚拟机和注册表残留。解决先卸载 eNSP 和 VirtualBox然后手动删除C:\Users\用户名\.ensp和C:\Users\用户名\VirtualBox VMs目录再用注册表清理工具扫一遍。重启后再装顺序必须是先装 VirtualBox再装 eNSP最后装 Wireshark。5. 进阶技巧用 Python 批量登录 eNSP 设备做配置备份5.1 为什么用 Python 而不是手工敲企业网设备一多手工备份配置就容易漏。我一般会写一个 Python 脚本通过 Telnet 登录 eNSP 里的设备自动执行display current-configuration并把回显保存到本地文件。这样每次改完配置跑一遍脚本就能把所有设备的配置存档比一台台敲快得多。下面这段代码在 Python 3.9 上跑通过依赖telnetlib标准库不需要额外装包。import telnetlib import time import os # eNSP 设备列表IP、用户名、密码、设备名 devices [ {ip: 192.168.99.1, user: admin, pwd: admin123, name: CORE-SW}, {ip: 192.168.99.2, user: admin, pwd: admin123, name: EDGE-RT}, ] def backup_config(dev): try: tn telnetlib.Telnet(dev[ip], timeout10) tn.read_until(bUsername:, timeout5) tn.write(dev[user].encode() b\n) tn.read_until(bPassword:, timeout5) tn.write(dev[pwd].encode() b\n) time.sleep(1) tn.write(bscreen-length 0 temporary\n) # 关闭分屏避免回显被截断 time.sleep(1) tn.write(bdisplay current-configuration\n) time.sleep(3) output tn.read_very_eager().decode(utf-8, errorsignore) tn.write(bquit\n) tn.close() filename f{dev[name]}_backup.txt with open(filename, w, encodingutf-8) as f: f.write(output) print(f{dev[name]} 备份完成保存到 {filename}) except Exception as e: print(f{dev[name]} 备份失败{e}) if __name__ __main__: for d in devices: backup_config(d)逻辑说明telnetlib.Telnet建立连接后先等Username:提示再发用户名再等Password:发密码。screen-length 0 temporary是关键不关分屏的话display current-configuration的输出会停在---- More ----脚本读不到完整配置。read_very_eager把缓冲区里的内容一次性读出来time.sleep(3)是给设备留出输出时间设备性能差的话可以加到 5 秒。参数上设备 IP 用管理 VLAN 99 的地址前提是设备上已经配了 Telnet 或 SSH 登录并且 ACL 允许管理网段访问。5.2 验证备份是否完整脚本跑完后打开生成的 txt 文件重点看三处开头有没有sysname中间有没有interface Vlanif段结尾有没有return。如果只有半截多半是screen-length没生效或者time.sleep太短。我一般会在脚本里加一个校验检查文件行数是否大于 50 行小于 50 行就告警。这样批量备份时哪台设备没备全一眼就能看出来。5.3 从备份到恢复的闭环备份不是目的能恢复才是。我习惯在脚本里再加一个恢复模式读取备份文件逐行通过 Telnet 发回设备。但恢复比备份危险因为配置回灌会覆盖当前配置所以恢复前一定先display current-configuration再备一次确认备份文件是最新的。恢复时用system-view进入配置模式逐行发送遇到return就退出。这个习惯救过我一次有台核心交换机改 ACL 把自己锁在外面就是靠备份文件回灌救回来的。从那以后我每次改核心设备配置前都强制走一遍备份脚本确认文件生成且行数正常才动命令行。希望帮到你。本文还有配套的精品资源点击获取
返回列表