华为ENSP实战沙盒:14个可运行实验与排错指南

发布时间:2026/10/7 14:58:49
华为ENSP实战沙盒:14个可运行实验与排错指南 简介本资源是一套面向网络工程初学者与备考华为认证如HCIA-Datacom学习者的ENSP实战实验合集涵盖14个经典网络技术实验案例覆盖路由器基础配置、静态/动态路由、ACL访问控制、NAT地址转换、VLAN间通信、DHCP服务部署等核心知识点助力理论落地与排错能力提升。压缩包为ZIP格式总大小23.62MB内含完整实验拓扑文件.net、设备配置脚本.cfg、实验指导说明.txt/.pdf及部分结果验证截图各类文件协同支撑“搭建—配置—验证—分析”全流程学习。已有1264人下载学习实验设计由浅入深每个案例均包含明确目标、拓扑图示、详细步骤与关键命令注释特别适合自学复现、课堂实训或考前强化训练可直接导入ENSP运行大幅降低环境搭建门槛与试错成本。1. 这不是“ENSP练习题集”而是一套能直接跑通、带完整排错路径的华为网络设备实战沙盒你下载过十几个 ENSP 实验包解压后点开拓扑图——设备图标全灰、AR 路由器启动失败报错 40、S5700 交换机连不上 Console、Wireshark 抓不到任何流量……最后关掉软件默默删掉压缩包。这不是你的问题是绝大多数公开实验资源的通病只给拓扑图和配置命令截图不告诉你哪些命令必须按顺序敲、哪些设备需要提前加载补丁、哪些接口在 v100r003c00spc100 版本里默认被禁用。这个「ENSP经典实验案例(14个).zip」不一样它包含 14 个真实可运行的 .pkt 文件非截图/文档全部基于 ENSP v100r003c00spc100 稳定版实测通过覆盖 VLAN 间路由、OSPF 多区域、ACL 单向控制、NAT Server、GRE 隧道、防火墙 Web 登录、FTP 服务器配置、WLAN 802.1X 认证等高频考点每个实验包内附run_check.shLinux或check.batWindows校验脚本一键验证设备是否正常上线、关键服务端口是否监听、ACL 是否生效更关键的是所有实验均预留了debug/子目录里面存着每台设备display diagnostic-information的原始输出、tcpdump -i any port 21抓包结果、以及display acl all的匹配计数快照——这不是教学演示是把工程师调试黑匣子的过程原样打包给你。适合正在备考 HCIA/HCIP、做企业网毕业设计、或需要快速复现某个协议行为的网络从业者。2. 从零加载实验包解压、版本对齐、设备初始化三步闭环2.1 解压与目录结构解析别急着双击 .pkt先看懂这 4 个关键子目录下载解压后你会看到一个名为ensp_classic_labs_14/的根目录其下结构严格遵循可复现原则ensp_classic_labs_14/ ├── 01_vlan_inter_router/ # 实验1单臂路由实现VLAN间通信 │ ├── topology.pkt # 可直接双击在ENSP中打开的拓扑文件 │ ├── config/ # 各设备预置配置.cfg格式含注释 │ │ ├── AR1.cfg # 路由器配置含子接口、802.1Q封装、静态路由 │ │ └── SW1.cfg # 交换机配置含VLAN划分、Trunk端口、Access端口 │ ├── debug/ # 调试证据包见2.3节详解 │ └── check.bat # Windows环境校验脚本自动telnet检测、端口扫描 ├── 02_ospf_multi_area/ # 实验2OSPF多区域虚连接 ├── 03_acl_one_way/ # 实验3ACL单向访问控制解决单向访问不管用痛点 ├── ... # 共14个实验目录命名即场景 └── README.md # 版本声明、依赖说明、已知限制必读提示README.md明确标注「本实验包仅兼容 ENSP v100r003c00spc100」且注明「AR1/AR2 设备需手动加载ar_vrp_v500_sp010000.usr补丁包已内置在patch/目录」。跳过此步90% 的「启动失败40」错误将直接发生。2.2 版本强制对齐为什么你装了最新版 ENSP 却跑不通v100r003c00spc100 是唯一安全基线ENSP 官方存在多个并行版本分支v100r003c00spc100常被简写为 spc100是目前华为认证考试、高校实验室、企业培训最广泛采用的稳定版。它的核心优势在于AR 系列设备AR100/200/300的 VRP5.0 内核完全兼容无Error Code 40启动异常S5700/S6700 交换机的 ACL 引擎行为与真实设备一致避免acl 3000 rule 5 permit ip source 192.168.10.0 0.0.0.255 destination 192.168.20.0 0.0.0.255在 GUI 中显示生效但实际不匹配的玄学问题FTP 服务器模块ftp server enable和防火墙 Web 登录http server enable功能完整无v100r003c00spc200t中因安全策略收紧导致的端口监听失败。操作步骤Windows卸载当前 ENSP控制面板 → 卸载程序 → 搜索 eNSP → 全部卸载从华为官网下载eNSP_V100R003C00SPC100_Setup.exe注意不是 spc200t不是 pro 版关键动作安装时勾选「安装 Wireshark 组件」和「安装 CloudEngine 模拟器」后者用于 GRE/SRv6 实验安装完成后打开 ENSP → 左上角「工具」→「选项」→「设备」→ 将「AR 设备固件路径」指向你解压包内的ensp_classic_labs_14/patch/ar_vrp_v500_sp010000.usr重启 ENSP此时设备列表中的 AR1 图标应显示绿色「就绪」状态。参数说明ar_vrp_v500_sp010000.usr是 VRP5.0 的 SP010000 补丁包专为 spc100 版本编译。若使用 spc200t 版本强行加载会导致设备启动卡在Loading system...阶段日志报Invalid firmware signature。2.3 设备初始化3 条命令决定实验能否进入下一阶段很多实验失败根源不在拓扑或配置而在设备未完成基础初始化。以下 3 条命令必须在所有 AR/SW 设备首次启动后、加载实验配置前执行# 步骤1清除历史配置防止旧ACL/路由残留干扰 AR1 reset saved-configuration Warning: The action will delete the save configuration in the device. Continue? [Y/N]:y # 步骤2重启设备使 reset 生效这是关键很多教程漏掉这步 AR1 reboot Warning: The system will reboot. Continue? [Y/N]:y # 步骤3关闭 INFO 级日志避免 console 被大量 debug 信息刷屏导致无法输入命令 AR1 undo info-center enable逻辑说明reset saved-configuration仅重置保存在 flash 中的配置内存中运行的配置仍存在必须reboot才能让设备以空配置启动undo info-center enable关闭日志输出后Console 窗口才能稳定响应你的system-view命令。若跳过第3步在 VLAN 实验中你可能发现interface GigabitEthernet0/0/0命令输到一半就被Info: The log buffer is full.日志打断导致接口配置不完整。3. 14 个实验的核心技术栈与典型配置落地路径3.1 VLAN 间路由单臂路由 vs 三层交换为什么这个实验选 AR1 S5700实验01_vlan_inter_router/的拓扑是PC1VLAN10、PC2VLAN20→ 接入 S5700 → 上行至 AR1 的 GE0/0/0 接口。这里刻意避开三层交换机直连方案原因很现实考试高频HCIA 考试中 VLAN 间路由必考单臂路由Router-on-a-Stick考察子接口、802.1Q 封装、ARP 代理理解排错价值高当 PC1 ping 不通 PC2 时排查链路比三层交换更清晰——先查 S5700 Trunk 是否放行 VLAN10/20display port vlan再查 AR1 子接口是否 UPdisplay ip interface brief最后查 ARP 表是否学习到对方 MACdisplay arp。关键配置片段AR1# 创建子接口绑定VLAN配置IPVLANIF 逻辑接口在此不启用 [AR1] interface GigabitEthernet0/0/0.10 [AR1-GigabitEthernet0/0/0.10] dot1q termination vid 10 [AR1-GigabitEthernet0/0/0.10] ip address 192.168.10.1 24 [AR1-GigabitEthernet0/0/0.10] arp broadcast enable # 必须开启否则PC1无法获取PC2的MAC [AR1-GigabitEthernet0/0/0.10] quit [AR1] interface GigabitEthernet0/0/0.20 [AR1-GigabitEthernet0/0/0.20] dot1q termination vid 20 [AR1-GigabitEthernet0/0/0.20] ip address 192.168.20.1 24 [AR1-GigabitEthernet0/0/0.20] arp broadcast enable参数说明dot1q termination vid 10表示该子接口终结 VLAN10 的 802.1Q 标签arp broadcast enable是血泪经验——ENSP 默认关闭子接口的 ARP 广播导致跨 VLAN 通信时 ARP 请求发不出去现象就是ping 192.168.20.2显示Request timeout但display arp里看不到任何条目。3.2 ACL 单向访问控制为什么rule 5 permit ip不生效匹配顺序与隐含拒绝是核心实验03_acl_one_way/的目标是允许 PC1192.168.10.0/24访问 PC3192.168.30.0/24的 FTP 服务TCP 21但禁止 PC3 主动访问 PC1。很多初学者写[AR1] acl 3000 [AR1-acl-adv-3000] rule 5 permit tcp source 192.168.10.0 0.0.0.255 destination 192.168.30.0 0.0.0.255 destination-port eq 21 [AR1-acl-adv-3000] rule 10 deny ip source 192.168.30.0 0.0.0.255 destination 192.168.10.0 0.0.0.255结果发现 PC3 仍能 ping 通 PC1。原因ACL 规则按序号从小到大匹配rule 10 deny ip只阻止了 IP 层但 ICMP 的 ping 是 ICMP 协议不匹配tcp destination-port eq 21也不匹配deny ip因为ip是协议号ICMP 是另一协议号。正确做法是显式拒绝 ICMP[AR1-acl-adv-3000] rule 10 deny icmp source 192.168.30.0 0.0.0.255 destination 192.168.10.0 0.0.0.255 [AR1-acl-adv-3000] rule 15 deny ip source 192.168.30.0 0.0.0.255 destination 192.168.10.0 0.0.0.255逻辑说明ACL 默认末尾有一条隐含deny ip any any但显式写出rule 15 deny ip更利于排错——当你display acl 3000时能看到matched 12匹配次数确认规则确实在生效若只靠隐含拒绝你永远不知道是规则没匹配还是根本没应用。3.3 GRE 隧道打通两个私网为什么tunnel protocol gre后还要source和destination实验08_gre_tunnel/构建 AR110.1.1.1/24与 AR210.1.2.1/24之间的 GRE 隧道使 192.168.10.0/24 与 192.168.20.0/24 互通。关键配置# AR1 上配置隧道接口 [AR1] interface Tunnel0/0/0 [AR1-Tunnel0/0/0] ip address 172.16.0.1 30 [AR1-Tunnel0/0/0] tunnel-protocol gre [AR1-Tunnel0/0/0] source 10.1.1.1 # 必须指定源IP即AR1的物理接口IP [AR1-Tunnel0/0/0] destination 10.1.2.1 # 必须指定目的IP即AR2的物理接口IP [AR1-Tunnel0/0/0] quit # AR1 上添加静态路由指向隧道 [AR1] ip route-static 192.168.20.0 24 172.16.0.2参数说明source和destination是 GRE 隧道的外层 IP 头地址决定了数据包如何封装和解封装。若source写成GigabitEthernet0/0/0接口名在 ENSP 中会报错Error: Invalid source address若destination错误则display interface Tunnel0/0/0显示Line protocol current state : DOWN。这是 GRE 实验翻车最高发点。4. 避坑14 个实验中反复出现的 5 类致命错误与现场修复方案4.1 现象AR 设备启动失败弹窗显示「Error Code 40」原因ENSP 版本与 AR 固件不匹配如用 spc200t 加载 spc100 固件或固件文件损坏下载不完整。解决关闭 ENSP删除C:\Users\{用户名}\AppData\Roaming\Huawei\eNSP\AR\下所有.usr文件重新从实验包patch/目录复制ar_vrp_v500_sp010000.usr到该目录重启 ENSP进入「工具 → 选项 → 设备」重新指定固件路径并点击「确定」右键 AR 设备 → 「设置」→ 「设备类型」选择「AR100」→ 「确定」。4.2 现象S5700 交换机配置完 VLANdisplay port vlan显示端口属于 VLAN1而非预期的 VLAN10原因未执行port link-type trunk或port link-type access端口保持默认 hybrid 模式且未配置port trunk allow-pass vlan 10 20。解决# 进入接入端口如GE0/0/1 [SW1] interface GigabitEthernet0/0/1 [SW1-GigabitEthernet0/0/1] port link-type access [SW1-GigabitEthernet0/0/1] port default vlan 10 [SW1-GigabitEthernet0/0/1] quit # 进入上行Trunk端口如GE0/0/24 [SW1] interface GigabitEthernet0/0/24 [SW1-GigabitEthernet0/0/24] port link-type trunk [SW1-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 204.3 现象Wireshark 在 ENSP 中抓不到任何流量过滤器ip.addr 192.168.10.1无结果原因ENSP 的 Wireshark 集成需手动启用「捕获」按钮位于 ENSP 主界面右下角图标为蓝色齿轮箭头且必须在设备启动、流量产生后再点击。解决启动所有设备在 PC1 上执行ping 192.168.10.254网关立即点击 ENSP 右下角「Start Capture」按钮等待 5 秒后点击「Stop Capture」在 Wireshark 窗口中输入icmp ip.src192.168.10.1过滤。4.4 现象配置完防火墙 Web 登录浏览器访问https://192.168.1.1提示「连接被拒绝」原因ENSP 中 USG6000V 防火墙默认关闭 HTTP/HTTPS 服务且管理接口未加入安全域。解决# 进入防火墙系统视图 [USG6000V] firewall zone trust [USG6000V-zone-trust] add interface GigabitEthernet1/0/0 [USG6000V-zone-trust] quit # 开启HTTP/HTTPS服务 [USG6000V] http server enable [USG6000V] https server enable # 设置管理员用户密码需满足复杂度大小写字母数字特殊字符 [USG6000V] local-user admin class manage [USG6000V-luser-manage-admin] password cipher H123456! [USG6000V-luser-manage-admin] service-type web [USG6000V-luser-manage-admin] quit4.5 现象GRE 隧道display interface Tunnel0/0/0显示Line protocol current state : DOWN但物理接口 UP原因隧道source或destination地址不可达如 AR1 的 10.1.1.1 与 AR2 的 10.1.2.1 不在同一网段且无路由可达。解决在 AR1 上执行ping 10.1.2.1确认物理连通性若不通检查 AR1 与 AR2 之间的直连链路如 AR1 的 GE0/0/1 与 AR2 的 GE0/0/1是否配置了同网段 IP在 AR1 上添加静态路由ip route-static 10.1.2.0 24 10.1.1.2假设 AR2 直连接口 IP 为 10.1.1.2在 AR2 上添加回程路由ip route-static 10.1.1.0 24 10.1.2.1。5. 实验验证用check.bat/run_check.sh自动化校验告别手动 ping 测试5.1 Windows 环境check.bat脚本的 4 层校验逻辑进入任意实验目录如01_vlan_inter_router/双击check.bat它会自动执行以下流程echo off echo 正在校验 VLAN 间路由实验 :: 第1层检测ENSP进程是否运行 tasklist /fi imagename eq eNSP.exe 2nul | find /i eNSP.exe nul if %errorlevel% neq 0 ( echo [ERROR] ENSP 未启动请先打开ENSP pause exit /b 1 ) :: 第2层Telnet到AR1检查接口状态 echo [INFO] 正在 Telnet AR1 (192.168.10.1)... echo y | telnet 192.168.10.1 23 nul 21 if %errorlevel% neq 0 ( echo [ERROR] 无法 Telnet 到 AR1请检查设备是否启动、Console是否配置了VTY密码 pause exit /b 1 ) :: 第3层执行命令检查子接口UP状态 echo [INFO] 正在检查子接口状态... echo display ip interface brief | telnet 192.168.10.1 23 temp_output.txt 21 findstr GigabitEthernet0/0/0.10.*up temp_output.txt nul if %errorlevel% neq 0 ( echo [ERROR] AR1 子接口 GigabitEthernet0/0/0.10 未UP type temp_output.txt pause exit /b 1 ) :: 第4层从PC1 ping PC2验证连通性 echo [INFO] 正在从PC1 ping PC2 (192.168.20.2)... ping -n 3 192.168.20.2 | findstr TTL nul if %errorlevel% neq 0 ( echo [ERROR] PC1 无法 ping 通 PC2 pause exit /b 1 ) echo [SUCCESS] VLAN间路由实验通过 del temp_output.txt pause逻辑说明该脚本不是简单 ping而是分层验证——先确保 ENSP 进程存活避免空跑再确认设备 Console 可达排除启动失败接着检查关键接口协议状态display ip interface brief输出中GigabitEthernet0/0/0.10行必须含up字样最后才进行业务连通性测试。每一层失败都给出明确错误提示和下一步动作比人工排查快 5 倍。5.2 Linux 环境run_check.sh的 TCP 端口级验证对于06_ftp_server/这类服务型实验run_check.sh会深入到端口层面#!/bin/bash echo FTP服务器实验校验 # 检查AR1是否监听21端口FTP控制端口 if nc -z 192.168.10.1 21; then echo [OK] AR1 FTP服务端口21监听正常 else echo [FAIL] AR1 未监听FTP端口21请检查是否执行 ftp server enable exit 1 fi # 检查AR1是否监听20端口FTP数据端口主动模式 if nc -z 192.168.10.1 20; then echo [OK] AR1 FTP数据端口20监听正常 else echo [WARN] AR1 未监听FTP数据端口20可能使用被动模式 fi # 使用ftp命令行客户端测试登录需预装ftp客户端 if ftp -n 192.168.10.1 EOF user anonymous pass quit EOF then echo [OK] FTP匿名登录成功 else echo [FAIL] FTP登录失败请检查 local-user anonymous 配置及密码 exit 1 fi参数说明nc -z host port是 Linux 下轻量级端口探测命令比telnet更可靠不依赖交互ftp -n的-n参数禁用自动登录避免.netrc文件干扰脚本中EOF是 here-document 语法模拟用户输入user anonymous和pass命令。这种验证方式直接命中服务本质绕过图形界面假象。6. 进阶技巧用debug/目录里的原始日志反向定位协议黑匣子行为6.1 从display diagnostic-information日志里揪出 ACL 不生效的真凶进入03_acl_one_way/debug/目录打开ar1_diagnostic.txt搜索关键词aclAR1 display diagnostic-information ... ACL statistics: ACL 3000: Rule 5: matched 0 times, last matched 2023-10-15 14:22:33 Rule 10: matched 12 times, last matched 2023-10-15 14:22:35 Rule 15: matched 8 times, last matched 2023-10-15 14:22:36 ...解读Rule 5 matched 0 times说明你写的permit tcp规则根本没触发问题不在规则本身而在流量根本没经过该 ACL。此时应检查ACL 是否已应用到接口执行display traffic-policy applied-record应用方向是否正确traffic-filter inbound是入方向outbound是出方向PC1 访问 PC3 的流量在 AR1 的 GE0/0/0 接口是inbound接口 IP 是否配置正确display ip interface brief确认 GE0/0/0 的 IP 是 192.168.10.1而非 192.168.1.1。6.2 用tcpdump抓包结果验证 GRE 隧道封装是否正确08_gre_tunnel/debug/中的ar1_tcpdump.pcap用 Wireshark 打开过滤ip.proto 47GRE 协议号可见典型数据包外层 IP 头Source: 10.1.1.1, Destination: 10.1.2.1GRE 头Flags: 0x2000 (Checksum present), Protocol Type: IPv4 (0x0800)内层 IP 头Source: 192.168.10.1, Destination: 192.168.20.1关键判断点若外层 Destination 是10.1.2.1但内层 Destination 是192.168.10.1即源地址说明 GRE 隧道配置反了——source和destination写颠倒了。此时display interface Tunnel0/0/0的Input字节数会远大于Output因为流量被错误封装后发向了自己。6.3display acl all匹配计数快照区分「规则未匹配」与「规则被跳过」03_acl_one_way/debug/ar1_acl_all.txt中有Advanced ACL 3000, 3 rules Acls step is 5 rule 5 permit tcp source 192.168.10.0 0.0.0.255 destination 192.168.20.0 0.0.0.255 destination-port eq 21 (match-counter 0) rule 10 deny icmp source 192.168.30.0 0.0.0.255 destination 192.168.10.0 0.0.0.255 (match-counter 12) rule 15 deny ip source 192.168.30.0 0.0.0.255 destination 192.168.10.0 0.0.0.255 (match-counter 8)血泪经验match-counter 0不代表规则无效而代表「没有流量符合该规则条件」。此时应抓包确认PC1 发出的是否真是 TCP 21 流量用display acl 3000 verbose查看规则详细匹配字段如source-ip,dest-ip,dest-port再对比抓包中实际字段值。我曾因此发现 PC1 的 FTP 客户端默认使用被动模式PASV目标端口是随机高端口而非 21——这才是rule 5匹配为 0 的真正原因。从那以后我每次配置 FTP ACL都强制走一遍ftp -p被动模式和ftp -d调试模式双验证再对照display acl计数。希望帮到你。本文还有配套的精品资源点击获取