
简介面向高校网络工程方向毕业设计与企业网入门实战这份配套拓扑与配置包基于eNSP搭建真实企业园区网络完整覆盖双出口链路、双防火墙冗余、OSPF动态路由、NAT内外网互访及VLAN业务隔离等核心设计目标非常适合需要从零构建三层架构、验证高可用与高安全方案的读者。包内共23个文件核心为17个eNSP工程文件efz并搭配3个VRP设备配置压缩包zip、2个终端PC配置XML及1个主拓扑文件topo可还原包含15台交换机、3台路由器、2台防火墙和16台终端的36台设备完整实验环境整体压缩包仅37KB轻量小巧下载后可直接导入eNSP运行。资源由CSDN博主laoman456整理已有70人学习下载。通过本包可拿到可直接运行的拓扑工程和各设备Flash/VRP配置文件结合配套博文能深入理解从需求分析到双机热备、路由策略、出口NAT的落地配置逻辑无论用于毕业设计答辩、课程设计还是网络工程师技能提升都有明确参考价值。1. 企业级网络毕设的入口一次断网事故讲清楚这套拓扑在做什么一个刚拿到「网络工程毕业设计」题目的学生最常问的一句话是双出口、双防火墙、OSPF、NAT 这四个词拆开我都认识合在一起到底要搭个什么东西我习惯用一次真实断网事故来回答公司办公网上到一半突然打不开外网查了一圈发现是唯一一条运营商链路出了问题如果当时有第二条出口链路、有另一台防火墙能接管业务这次事故根本不会影响任何人。这套毕设方案就是围绕这个场景展开的——用两台防火墙做设备冗余用两条运营商链路做出口冗余用 OSPF 让全网路由自动收敛用 NAT 让私网地址能访问公网、能让内网服务器对外发布服务。适合网络工程专业毕设、刚入职的初级网工以及想在 eNSP 里练手完整企业组网的人。它真正难的不是某一条命令而是先画对拓扑、再照着拓扑把地址和路由域规划明白。2. 拓扑设计与 IP 编址先把三张表钉在纸上再动手开 eNSP2.1 拓扑结构核心、汇聚、防火墙与双出口的位置常见做法是把整个网络分成四层接入层、汇聚层、核心层、出口层。接入交换机负责把办公终端和服务器接入网络汇聚交换机做 VLAN 网关和区域汇聚核心交换机负责全网的高速转发同时担任 OSPF 骨干区域的角色两台防火墙串联在核心交换机和运营商之间形成出口层。双出口在这里的含义是两条不同的运营商链路例如电信和联通各一条。两台防火墙都同时接入这两条链路平时由主防火墙转发业务流量备用防火墙通过双机热备同步配置和会话。当主防火墙故障或电信链路中断时业务自动切换到备用防火墙的联通出口。这样设备冗余和链路冗余同时成立也正是毕设答辩时最能演示的部分。2.2 设备选型eNSP 里的角色分配在 eNSP 里模拟这套网络我一般用以下设备型号核心层放两台 S5700 三层交换机汇聚层用两台 S5700接入层用 S3700防火墙用 USG6000出口路由器不需要单独加因为防火墙本身就承担了出口网关的角色。运营商对端我用两个模拟的运营商路由器或直接在防火墙上配置默认路由指向公网网关地址。拓扑图中的连线要特别注意一点两台核心交换机都需要分别连接到两台防火墙上形成交叉互联两台防火墙之间单独拉一条心跳线这条线不承载业务流量只跑 HRP 协议两条运营商链路分别接到两台防火墙的独立物理口上。eNSP 中连线时建议给每条链路命名例如「FW1-to-CT」「FW1-to-CU」否则调试时根本分不清哪条线对应哪个接口。2.3 IP 地址与 VLAN 规划表规划 IP 是整个项目里最不能省的一步。我习惯先画一张地址规划表把所有设备的互联 IP、网关 IP、业务网段固定下来再开始配命令。下面是这套拓扑里可以直接照抄的规划用途网段/地址掩码说明VLAN 10 办公区192.168.10.0/24255.255.255.0终端接入网关在核心交换机VLAN 20 办公区192.168.20.0/24255.255.255.0终端接入网关在核心交换机VLAN 30 服务器区192.168.30.0/24255.255.255.0内网服务器网关在核心交换机核心 SW1 与 FW1 互联10.0.1.0/30255.255.255.252OSPF 区域 0核心 SW2 与 FW2 互联10.0.2.0/30255.255.255.252OSPF 区域 0防火墙 FW1 与 FW2 心跳互联10.0.10.0/30255.255.255.252HRP 专用不进 OSPF电信出口网关202.100.1.1/30255.255.255.252运营商 A 对端联通出口网关202.100.2.1/30255.255.255.252运营商 B 对端FW1 电信出口地址202.100.1.2/30255.255.255.252主出口FW1 联通出口地址202.100.2.2/30255.255.255.252备用出口之一FW2 电信出口地址202.100.1.6/30255.255.255.252备用出口之一FW2 联通出口地址202.100.2.6/30255.255.255.252备用出口之一注意公网地址用 202.100.x.x 这类保留地址段做实验足够但你要清楚它只是模拟真实企业里这些地址是向运营商申请的合法公网 IP。2.4 路由域与 OSPF 区域划分OSPF 区域划分建议和业务逻辑对齐核心交换机之间的链路、核心与防火墙之间的链路放在区域 0 骨干区域办公区汇聚放在区域 1服务器区单独放在区域 2。区域 2 在毕设里通常可以配置成 stub 区域用来减少核心路由表向服务器区的注入。如果你的服务器区还需要引入外部路由那就要用 NSSA 而不是 stub这一点在后面 OSPF 章节会展开。双核心交换机的 OSPF 规划要避免一个常见误解不是所有接口都要宣告进 OSPF。终端网关所在的 Vlanif 接口是否宣告取决于你想不想让终端网段通过 OSPF 发布出去。我建议宣告因为这样可以完整演示 OSPF 路由收敛但要记得对下行接口开启静默端口避免 OSPF 报文往终端侧发。地址表钉在纸上之后下一步才轮到底层命令。3. OSPF 配置实战router-id、区域宣告与 ABR 特殊区域一次跑通3.1 最小配置router-id 与 network 通配符在核心交换机 SW1 上OSPF 最小配置是这样一组命令sysname SW1 # ospf 1 router-id 1.1.1.1 area 0 network 10.0.1.0 0.0.0.3 network 10.0.2.0 0.0.0.3 network 192.168.10.0 0.0.0.255 network 192.168.20.0 0.0.0.255 area 1 network 192.168.0.0 0.0.255.255这段配置的逻辑是先创建 OSPF 进程 1指定 router-id 为 1.1.1.1然后在 area 0 里用 network 命令把互联网段和办公网段宣告出去。network 后面的反掩码和 ACL 通配符一致0 表示必须精确匹配255 表示任意匹配192.168.10.0 0.0.0.255 匹配整个 C 段。router-id 的作用是唯一标识一台 OSPF 路由器。如果你不手动指定设备会自动选择所有接口里最大的 IP 地址这个行为在排障时非常坑。毕设里建议统一规划核心交换机用 1.1.1.1 和 1.1.1.2汇聚交换机用 2.x.x.x防火墙用 3.x.x.x一眼就能看出路由是从哪台设备学到的。配置完成后用display ospf peer查看邻居状态。如果看到 Full 状态说明邻居建立成功如果停在 Init 或 2-Way先检查接口是否都宣告进了同一个区域、接口掩码是否一致、两端 router-id 是否冲突。3.2 ABR 与区域间路由汇总核心交换机 SW1 同时属于区域 0 和区域 1它就是典型的 ABR区域边界路由器。ABR 的作用是把一个区域的路由汇总后通告给另一个区域避免大量细网段在骨干区域里扩散。在毕设拓扑里办公区的汇聚设备可能会有多个 /24 网段如果全部原样注入区域 0路由表会很难看。ABR 上做区域间路由汇总的命令如下ospf 1 area 1 range 192.168.0.0 255.255.0.0这条命令把区域 1 内所有 192.168.x.x 网段汇总成一条 192.168.0.0/16 路由通告到区域 0。对端设备看到的路由条目会大幅减少。注意 range 命令必须写在 ABR 上写在非骨干区域的普通路由器上是没有效果的。区域 2 的服务器区同样可以汇总area 2下配置range 192.168.30.0 255.255.255.0。如果你的服务器区后续还要扩展多个 C 段汇总掩码改成 255.255.224.0 之类的超网即可但需要保证网段连续否则会把不存在的网段也汇总出去形成黑洞路由。3.3 特殊区域stub 与 NSSA 在毕设里的取舍特殊区域是答辩时最容易被追问的点值得单独说清楚。stub 区域的特点是区域内部路由器不接收外部引入的 Type 5 LSAAS 外部路由区域内只有 Type 1、Type 2、Type 3 LSA。这样做的好处是减少区域内设备的路由表规模。服务器区如果不需要引入外部路由配置成 stub 是最合理的。配置方式是区域内所有路由器都要执行同一命令缺一不可ospf 1 area 2 stub注意两台核心交换机以及服务器区汇聚交换机上area 2 都要配置 stub少配一台邻居就起不来。stub 区域会自动生成一条默认路由指向 ABR区域内的设备不需要额外配置默认路由。如果你的毕设里服务器区需要重分发外部路由比如把 NAT 后的公网网段引入 OSPF那就必须用 NSSA。NSSA 允许区域内存在 Type 7 LSA由 ABR 转换成 Type 5 后通告到骨干区域。配置改为ospf 1 area 2 nssa判断题能确认区域内只跑纯内部路由就用 stub有一丁点外部路由需求就上 NSSA。不要两个一起配冲突后区域内的路由会变得非常诡异。3.4 默认路由下发与静默端口防火墙作为出口设备需要把默认路由注入 OSPF让内网设备知道出去上网该找谁。在防火墙上这样配ospf 1 router-id 3.3.3.1 default-route-advertise always area 0 network 10.0.1.0 0.0.0.3default-route-advertise always的含义是无论防火墙上是否存在默认路由都强制向 OSPF 区域通告一条默认路由。这样核心交换机就能学到指向防火墙的默认路由内网设备要访问公网时下一跳全部指向防火墙。如果去掉 always防火墙只有在自己有一条默认路由时才会下发实际部署时建议保留。核心交换机连接接入交换机的接口要开启静默端口否则 OSPF 报文会打到终端设备上既浪费带宽又可能触发终端防火墙弹窗。在核心交换机上执行ospf 1 silent-interface Vlanif10 silent-interface Vlanif20配置到这一步全网的路由已经能互通了。验证命令是display ip routing-table在核心交换机上应该能看到 OSPF 学习到的默认路由下一跳是防火墙的互联地址在接入交换机上应该能看到区域间路由。注意OSPF 接口的 hello 和 dead 定时器默认是 10 秒和 40 秒两端不一致会导致邻居反复 flapping。改 hello 时一定要把 dead 同步改成 hello 的 4 倍。4. 双出口与双防火墙联动HRP 主备、策略路由和 NAT 回流4.1 双防火墙 HRP 主备心跳线与主备角色华为防火墙的双机热备基于 HRP华为私有协议实现。两台防火墙通过心跳线协商主备角色主设备上的配置和会话表会自动同步到备用设备。配置前先规划好消息接口我用两台防火墙的 GigabitEthernet1/0/6 接口做心跳互联地址是 10.0.10.1 和 10.0.10.2。主防火墙 FW1 上的配置hrp interface GigabitEthernet1/0/6 remote 10.0.10.2 hrp enable备用防火墙 FW2 上只需要配置心跳接口地址和 hrp enable然后执行hrp standby-devicehrp enable是开启 HRP 功能hrp standby-device把本机指定为备用设备。主备角色确定后FW1 上的所有业务配置包括接口 IP、安全策略、NAT 策略都会通过心跳同步到 FW2。这里有个关键坑心跳接口所在的网段绝对不能宣告进 OSPF否则两台防火墙上会反复计算 OSPF 路由导致主备切换时路由震荡。验证双机热备状态用display hrp state。正常情况下能看到 FW1 是 activeFW2 是 standby。如果两台设备都是 active说明心跳线断了业务流量会双份转发形成环路风险。4.2 双出口链路与策略路由电信与联通怎么选路两台防火墙都同时接入电信和联通两条链路这时需要在防火墙上做选路。最朴素的方案是配两条默认路由一条指电信、一条指联通通过优先级区分主备ip route-static 0.0.0.0 0.0.0.0 202.100.1.1 ip route-static 0.0.0.0 0.0.0.0 202.100.2.1 preference 80第一条默认路由优先级为默认值 60作为主出口第二条优先级 80作为备份。当主出口链路断开时防火墙自动切换到备份路由。但问题在于静态路由只感知接口状态感知不到运营商链路是否真正可用。所以更可靠的做法是配合 IP-Link 做链路探测ip-link name check_ct destination-address 202.100.1.1 interface GigabitEthernet1/0/1ip-link 会周期性发送探测报文探测失败时自动把关联路由置为不可用触发流量切换到联通出口。配置完成后可以在防火墙上反复拔掉电信口的网线观察display ip routing-table里默认路由的切换。如果想演示更细致的选路比如办公网走电信、服务器区走联通需要在防火墙上配置策略路由policy-based-route rule name pbr-office-to-ct source-address 192.168.10.0 24 action pbr next-hop 202.100.1.1这条规则的含义是来自 192.168.10.0/24 的流量下一跳强制指向电信网关。策略路由的优先级高于静态路由适合按业务差异化选路的场景。毕设里为了演示效果我建议加一条这样的规则答辩时能清楚解释双出口的价值。4.3 源 NAT 与 NAT Server私网上网和服务器发布双出口下的 NAT 要分开说明。内网终端上网走的是源 NAT即把私网源地址转换成公网地址后发出。在 FW1 上的配置nat address-group 1 202.100.1.10 202.100.1.20 acl number 3001 rule 5 permit ip source 192.168.0.0 0.0.255.255 nat-policy rule name snat-to-internet source-zone trust destination-zone untrust action source-nat address-group 1这段配置的逻辑是先创建一个公网地址池 202.100.1.10 到 202.100.1.20再用 ACL 3001 匹配内网全部私网网段最后在 nat-policy 里把 trust 区域访问 untrust 区域的流量做源地址转换。地址池里的地址要和电信出口同一网段否则运营商侧回程路由不通。服务器对外发布用的是 NAT Server 或 nat static。把内网 192.168.30.10 的 Web 服务映射到公网地址 202.100.1.3 的 80 端口nat server web zone untrust global 202.100.1.3 80 inside 192.168.30.10 80这条命令的意思是外部用户访问 202.100.1.3 的 80 端口时防火墙把目的地址转换成 192.168.30.10 的 80 端口转发到内网服务器。同时需要在安全策略里放通 untrust 到 trust 区域访问该地址的流量否则 NAT 做了报文也会被安全策略拦截。4.4 回流与双向 NAT内网访问公网 IP 的最后一公里回流问题几乎是每个毕设都会踩的坑。现象是外部网络访问服务器的公网地址正常但在内网办公区用公网地址访问同一台服务器却不通。原因是内网流量到达防火墙后防火墙发现目的地址是自己的公网映射地址直接把报文转发给服务器但服务器回应时发现源地址是内网私网地址响应报文没有走防火墙转换流程导致回包丢失。解决方式是在防火墙上开启 NAT 回流nat hairpin enable开启后内网访问公网映射地址的流量会再做一次源 NAT 和目的 NAT让流量以「经过防火墙」的路径完成来回。如果你的防火墙版本不支持 hairpin 命令可以通过双向 NAT 策略实现在 nat-policy 里新增一条规则匹配 trust 到 trust 区域访问公网映射地址的流量做目的 NAT 同时做源 NAT。效果相同但配置更绕。注意回流只解决了内网访问映射地址的问题。如果内网终端通过公网 IP 访问服务器时公网 IP 恰好和源 NAT 地址池重叠会产生地址冲突规划地址时要把映射地址和地址池分段避免互相侵占。5. 避坑指南OSPF、防火墙策略、HRP 切换与 NAT 回流的五个翻车现场5.1 OSPF 邻居起不来display ospf peer 一片空白现象配置完 OSPF 后display ospf peer看不到任何邻居或者邻居状态停在 Init。 原因最常见的是 network 通配符写错比如接口地址是 10.0.1.1/30network 却写成 10.0.1.0 0.0.0.0其次是两端区域号不一致一端在 area 0另一端在 area 1再就是接口掩码不匹配OSPF 要求相邻接口的网络掩码一致才能建立邻居。 解决先在两端确认display ip interface brief里的接口地址和掩码再逐一核对 network 命令。把通配符统一成精确匹配例如互联接口是 10.0.1.0/30就写network 10.0.1.0 0.0.0.3。如果两端配置都正确但邻居仍起不来检查是否有 ACL 过滤了 OSPF 报文。5.2 防火墙策略放通却 ping 不通现象安全策略里已经放行了 trust 到 untrust 的任意规则终端 ping 公网地址仍然不通。 原因防火墙的安全模型是双向的ping 的回程流量属于 untrust 到 trust如果只配了单方向策略回包会被拦截。另一个常见原因是防火墙本身没有学到去往内网的回程路由服务器或终端的网关指到了核心交换机但核心交换机没有把路由重分发到防火墙。 解决在防火墙上看display ip routing-table确认有去往 192.168.10.0/24 的路由再补一条 untrust 到 trust 方向的回程放行策略。经验做法是在调试阶段临时放行 any 到 any确认链路通了再收紧。5.3 HRP 主备切换后业务瞬断或完全不转发现象手动把主防火墙 FW1 关机业务没有自动切换到 FW2或者切换后内网无法上网。 原因心跳线断了但主备角色没有协商成功最常见是心跳接口的 IP 配错或心跳接口状态 down另一种原因是 FW2 上虽然同步了配置但安全策略里的源区域、目的区域依赖物理接口接口映射对不上。 解决检查display hrp state确认 FW2 是 standby。如果两台设备都是 active立刻检查心跳线。另外在 FW2 上确认 HRP 同步过来的接口状态是否为 up若接口未 up检查物理连线是否插错口。5.4 NAT 回流不通内网访问公网映射地址超时现象外部访问服务器正常内网用公网 IP 访问服务器却超时。 原因没有开启 NAT 回流内网流量只做了目的 NAT源地址没有转换服务器回包时发现源地址是私网地址不回给防火墙而是直接走内网路由。 解决在防火墙上执行nat hairpin enable后测试。如果是老版本不支持改用双向 NAT 策略给 trust 到 trust 区域访问映射地址的流量同时配置源 NAT 和目的 NAT。配置完一定要清理一下防火墙的会话表reset session后再测试否则残留会话可能让你误判。5.5 eNSP 里防火墙启动失败或 Web 管理页面登不上现象eNSP 中 USG6000 启动非常慢启动后通过 Web 界面登录不了或者启动时报内存不足。 原因USG6000 对主机内存占用很高笔记本内存不足时最容易启动失败另外防火墙默认没有开启 Web 管理服务或管理口的访问权限没有放行。 解决在防火墙上执行web-manager enable再在安全策略里放行 local 域到 trust 域、以及本地网段到防火墙的 HTTPS 访问。如果 eNSP 里启动失败关闭所有设备后重启 eNSP或者适当调大虚拟机内存配置。登录不上时把防火墙当成网络设备用 console 口调试永远比死磕 Web 界面省时间。6. 验证方法与答辩演示从 display 命令到一场不出错的切换演练6.1 验证清单照着这个顺序跑一遍搭建完成后我按下面这个顺序做验收顺序不要乱。先验证底层再验证业务否则问题定位会很痛苦验证对象命令/操作预期结果OSPF 邻居display ospf peer所有邻居状态为 FullOSPF 路由display ip routing-table核心交换机学到 OSPF 默认路由防火墙主备display hrp state主墙 active备墙 standby内网上网ping 公网地址终端访问外网正常NAT 会话display nat session能看到源地址转换后的会话记录服务器发布外部访问公网映射地址能打开 Web 服务回流内网访问公网映射地址能打开 Web 服务出口切换断开电信出口链路内网仍能访问外网走联通出口主备切换直接关闭主防火墙备防火墙接管业务恢复时间在秒级6.2 答辩演示脚本演练比口头解释更有说服力答辩时我会准备一个固定顺序的演示脚本第一步打开display ospf peer展示全网 OSPF 邻居 Full第二步展示display hrp state双机热备状态第三步让终端 ping 一段公网地址证明 NAT 生效第四步现场拔掉主防火墙的电信出口网线观察终端 ping 流的丢包情况通常只会丢几个包后恢复。整个过程控制在五分钟内展示效果远好于干讲原理。6.3 值得继续做的进阶方向做完这套拓扑可以再往三个方向补深一是把静态双出口改成 OSPF 等价路由结合 ip-link 做自动切换二是给服务器区增加 IPS 或链路限速策略展示安全能力三是把 OSPF stub 区域换成 NSSA手动引入一条外部路由理解 Type 7 LSA 和 Type 5 LSA 的转换过程。每个方向都能在答辩中多回答十分钟的追问。最后说一句我的血泪教训这套方案里最容易翻车的不是 OSPF 也不是 NAT而是双防火墙的主备切换——我当年在答辩前一天手动拔线测试发现 HRP 心跳口一直显示 down查了整整两小时才意识到是心跳接口进了 OSPF 区域被路由震荡干扰了协商。把心跳口独立成专门的互联 VLAN不宣告进任何 OSPF 区域这是我能给后来者最实在的一条建议。希望帮到你。本文还有配套的精品资源点击获取