简介:面向高校网络工程方向毕业设计与企业网入门实战,这份配套拓扑与配置包基于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 编址:先把三张表钉在纸上再动手开 eNSP
2.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/24 | 255.255.255.0 | 终端接入,网关在核心交换机 |
| VLAN 20 办公区 | 192.168.20.0/24 | 255.255.255.0 | 终端接入,网关在核心交换机 |
| VLAN 30 服务器区 | 192.168.30.0/24 | 255.255.255.0 | 内网服务器,网关在核心交换机 |
| 核心 SW1 与 FW1 互联 | 10.0.1.0/30 | 255.255.255.252 | OSPF 区域 0 |
| 核心 SW2 与 FW2 互联 | 10.0.2.0/30 | 255.255.255.252 | OSPF 区域 0 |
| 防火墙 FW1 与 FW2 心跳互联 | 10.0.10.0/30 | 255.255.255.252 | HRP 专用,不进 OSPF |
| 电信出口网关 | 202.100.1.1/30 | 255.255.255.252 | 运营商 A 对端 |
| 联通出口网关 | 202.100.2.1/30 | 255.255.255.252 | 运营商 B 对端 |
| FW1 电信出口地址 | 202.100.1.2/30 | 255.255.255.252 | 主出口 |
| FW1 联通出口地址 | 202.100.2.2/30 | 255.255.255.252 | 备用出口之一 |
| FW2 电信出口地址 | 202.100.1.6/30 | 255.255.255.252 | 备用出口之一 |
| FW2 联通出口地址 | 202.100.2.6/30 | 255.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 LSA(AS 外部路由),区域内只有 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 是 active,FW2 是 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/30,network 却写成 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 | 所有邻居状态为 Full |
| OSPF 路由 | 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 区域,这是我能给后来者最实在的一条建议。希望帮到你。
本文还有配套的精品资源,点击获取