ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

eNsp校园网课程设计:VLAN/OSPF/NAT配置与排错实战

eNsp校园网课程设计:VLAN/OSPF/NAT配置与排错实战

简介:面向计算机网络课程设计与期末答辩的一套eNsp仿真实践包,聚焦某中学校园网的拓扑规划与搭建,适合正在完成网络技术课程设计、需要参考完整交付物的本科与高职学生。压缩包共21个文件、约7.09MB,以14个efz设备配置文件为主体,配合1个topo拓扑文件可在eNsp中直接打开还原实验环境,另有2个txt记录拓扑图IP规划与IP划分模拟思路,1份docx设计报告与1份pptx演示文稿对应理论依据、设备选型、安全性与故障恢复策略,2个xml承载工程相关配置数据。目前已有305人学习下载。读者可据此对照拓扑结构复现VLAN划分、地址分配与路由协议配置过程,借助报告与演示文稿梳理综合布线、PoE供电等设计要点,并通过故障模拟验证网络的稳定性与可扩展性,较快形成可提交的课程设计成果。

1. 一份 .rar 里真正装的是什么

带过几届课程设计,我见过太多人把「网络技术期末设计」做成一张漂亮的拓扑截图:设备摆得整齐,连线密密麻麻,一问 VLAN 怎么划、OSPF 为啥起不来,人就卡住了。这份 .rar 不一样,它是一个能在 eNsp 里真跑起来的网络拓扑课程设计,题目是某中学的校园网改造:教学区、学生机房、办公无线、服务器区四块业务,配完整的设备配置和验收步骤。它适合两类人——要交课程设计但不想只交一份 Word 的学生,以及刚摸 eNsp、想找一个能照着敲一遍的完整案例的入行开发者。我按「先看清架构、再逐段敲配置、最后讲怎么改成自己的」这个顺序把它拆开。

2. 拓扑与技术栈:三层架构怎么落到 eNsp 画布上

2.1 为什么是 eNsp,而不是真机或别的模拟器

先把这个决定说清楚,因为它是后面所有配置的前提。校园网课程设计最尴尬的地方在于「设备从哪来」:真机方案要堆交换机、路由器、AP,一套下来预算不是学生能承受的;而不少通用模拟器的命令体系和真实网络设备差得远,照着敲完,到了机架上一样看不懂。eNsp 的价值就在这儿——它跑的是 VRP 命令行,VLAN、Trunk、Eth-Trunk、MSTP、OSPF、ACL、NAT 这些命令跟你以后在真实设备上敲的是同一套语法,无线部分还能拉出 AC 和 AP 做 CAPWAP 上线,这在同类免费工具里不多见。

代价也要提前知道。eNsp 吃内存,一台核心加两台接入再挂个 AC,8G 内存的机器就开始卡;它依赖虚拟化平台,跟系统里其他虚拟化软件抢 VT-x 的时候,设备起不来是常态;无线和防火墙设备还需要单独装设备包,版本对不上就直接启动失败。所以我的习惯是:拓扑先画全,但一次只开三到四台设备调试,调完一台存一台,最后再整体联调。血泪经验是别一上来把二十台设备全点启动,那不是做实验,那是给风扇做压力测试。

另一个常见误区是把 eNsp 当成「画图工具」,只连不通。课程设计的评分点从来不是你连了多少根线,而是能不能解释清楚广播域怎么切、环路怎么防、跨网段怎么通。所以下面这套拓扑的每一根线,我都尽量对应一个可以验收的现象。

2.2 分层结构:出口、核心、接入、无线各放什么

整个拓扑按经典三层来搭,考虑到是一所中学的规模,省掉了独立的汇聚层,接入交换机直接双上联到两台核心,既省钱又能讲清楚冗余。设备清单大致是这样:

层次设备角色数量主要职责
出口层出口路由器2双运营商接入、NAT、默认路由
出口层防火墙1内外网区域隔离、访客限速(可选)
核心层三层交换机2VLANIF 网关、OSPF、ACL 策略
接入层二层交换机6终端接入、VLAN 划分、接入口防环
无线AC + AP1 + 6CAPWAP 管理、SSID 与业务 VLAN 下发
服务器区服务器3教务系统、文件共享、内网 DNS

两台核心之间用两条线做 Eth-Trunk,每台接入交换机用两条上行分别接到两台核心,这样任何一条链路断掉、任何一台核心宕掉,终端都还能出去。出口两台路由器分别模拟两家运营商,主用一条、备用一条,平时只有主链路承载流量,主链路挂了备链路才接管。AC 采用旁挂方式,管理地址放在管理 VLAN 里,无线用户的业务网关仍然落在核心上,这样无线流量不必绕一圈 AC,转发路径最短。

这套结构看着朴素,但把课程设计要考的点全包住了:VLAN 隔离、Trunk 干道、链路聚合、MSTP 多实例、OSPF 动态路由、DHCP 自动分配、NAT 地址转换、ACL 访问控制、无线接入。答辩的时候随便挑一个问,都有配置能翻出来。

2.3 地址与 VLAN 规划:先画表,再敲命令

我见过最离谱的一种做法是先敲命令,敲到一半发现两个部门撞网段,回头全删。地址规划必须落在纸上,而且要在打开 eNsp 之前。这个项目用的是 172.16.0.0/16 私有段,按业务切成若干个 /24,管理 VLAN 单独拎出来,设备互联用 /30 省地址:

VLAN名称网段网关说明
10教师办公172.16.10.0/24172.16.10.1办公室有线终端
20学生机房172.16.20.0/24172.16.20.1机房 PC,策略最严
30无线办公172.16.30.0/24172.16.30.1教职工无线
40服务器区172.16.40.0/24172.16.40.1教务、文件、DNS
50网络管理172.16.50.0/24172.16.50.1设备管理、AC 与 AP
60无线访客172.16.60.0/24172.16.60.1只放行出网,禁访内网
99设备互联172.16.99.0/30.1 / .2核心与出口之间

几点考虑值得说。管理 VLAN 50 一定要跟业务分开,否则学生机房随便一台机器就能扫到交换机管理地址,这是课程设计里最容易漏、也最容易被追问的一条。访客单独给 60,是因为访客网络的安全模型和内部网络完全不同:只允许出网,不允许横向访问任何内网网段,后面用一条 ACL 就能落地。设备互联用 /30 而不是 /24,是为了让路由表干净,两台设备之间只需要两个可用地址,多给的都是浪费,顺便还能在答辩时解释一下为什么互联地址不能配成业务网段的地址。

还有个小细节:地址池里要把网关地址和服务器静态地址排除掉,不然 DHCP 把 172.16.40.10 这种已经被服务器占用的地址租出去,排查起来非常折磨人。这个坑我在第 5 章会再提一次。

3. 核心配置拆解:从 VLAN 到 OSPF 的完整链路

3.1 接入层:VLAN 划分与 Trunk 干道

接入层是整个网络的地基,地基歪了上面全白搭。每台接入交换机上有三种端口:接终端的 Access 口、接 AP 的 Trunk 口(AP 需要管理 VLAN 和业务 VLAN 双标签)、上联核心的 Trunk 口。下面这段是教师办公室那台接入交换机的典型配置:

# 接入交换机:按房间和用途把端口塞进对应 VLAN <Access-SW1> system-view [Access-SW1] sysname Access-SW1 [Access-SW1] vlan batch 10 20 30 50 60 # 教师办公室终端口:Access 模式,直接划进 VLAN 10 [Access-SW1] interface GigabitEthernet0/0/1 [Access-SW1-GigabitEthernet0/0/1] port link-type access [Access-SW1-GigabitEthernet0/0/1] port default vlan 10 # 接入口开边缘端口,避免终端插拔触发 STP 重新收敛 [Access-SW1-GigabitEthernet0/0/1] stp edged-port enable # 上联核心:Trunk,必须把管理 VLAN 50 一起放行 [Access-SW1] interface GigabitEthernet0/0/23 [Access-SW1-GigabitEthernet0/0/23] port link-type trunk [Access-SW1-GigabitEthernet0/0/23] port trunk allow-pass vlan 10 20 30 50 60 [Access-SW1-GigabitEthernet0/0/23] port trunk allow-pass vlan 99

这里每一行都有讲究。port link-type access加port default vlan 10是把端口从默认的 VLAN 1 挪到业务 VLAN,如果不改,所有终端会挤在同一个广播域里,VLAN 就等于白划了。stp edged-port enable相当于别的厂商说的边缘端口,作用是让接终端的口跳过 STP 的监听和学习阶段直接转发,否则电脑插上网线要等三十秒才能通,验收的时候特别容易被当成「配错了」。

上联口最关键的是allow-pass列表。默认 Trunk 只放行 VLAN 1,你配了业务 VLAN 但忘了放行,现象就是本地能通、跨交换机不通,这类问题在第 5 章会专门拆。注意我把 VLAN 99 单独写一行,是因为互联 VLAN 只出现在核心与出口之间,接入交换机根本不需要它;放在一起容易让人误以为接入层也要跑三层。

再补一句 PVID 的事。Trunk 口默认 PVID 是 VLAN 1,如果两端 PVID 不一致,未打标签的帧会被塞进不同的 VLAN,表现是「有的业务通、有的业务不通」,非常玄学。这个项目的做法是两端 PVID 全部保持默认 1,所有业务都走带标签的帧,不去碰 native VLAN,减少变量。

3.2 核心层:Eth-Trunk 链路聚合与 MSTP 防环

核心层的两件事:把多条物理链路合成一条逻辑链路,以及让二层环路变成备份而不是灾难。先看链路聚合:

# 核心交换机:两条上联做 LACP 静态聚合 [Core-SW] interface Eth-Trunk1 [Core-SW-Eth-Trunk1] mode lacp-static [Core-SW-Eth-Trunk1] port link-type trunk [Core-SW-Eth-Trunk1] port trunk allow-pass vlan 10 20 30 40 50 60 # 把两个物理口一次性加进聚合组 [Core-SW-Eth-Trunk1] trunkport GigabitEthernet 0/0/23 to GigabitEthernet 0/0/24 # 对端接入交换机做同样配置,模式必须一致 [Access-SW1] interface Eth-Trunk1 [Access-SW1-Eth-Trunk1] mode lacp-static [Access-SW1-Eth-Trunk1] trunkport GigabitEthernet 0/0/23 to GigabitEthernet 0/0/24

mode lacp-static是静态 LACP,两端都主动发协商报文,比手工模式可靠:手工模式下一端配错另一端也不会报错,链路照样是 down 的,很难查。聚合之后,带宽翻倍只是附带收益,真正值钱的是单条链路故障时业务不中断,LACP 会在毫秒级把流量切到剩下的成员口上。参数上要注意trunkport ... to ...是一次性把连续端口加组,如果物理口不连续,就分成两条命令写。

接下来是防环。两台核心加六台接入,物理上必然成环,靠 STP 阻塞冗余口。默认的 STP 是所有 VLAN 共用一棵树,会出现「VLAN 10 的流量绕远路」的情况,所以这个项目用 MSTP 多实例,把业务 VLAN 分成两组,各自走不同的根桥:

# 两台核心的 MSTP 域配置必须完全一致,否则各成一家 [Core-SW] stp mode mstp [Core-SW] stp region-configuration [Core-SW-mst-region] region-name campus [Core-SW-mst-region] revision-level 1 [Core-SW-mst-region] instance 1 vlan 10 20 50 [Core-SW-mst-region] instance 2 vlan 30 40 60 [Core-SW-mst-region] active region-configuration # 实例 1 以本机为主根,实例 2 做备份根 [Core-SW] stp instance 1 root primary [Core-SW] stp instance 2 root secondary

域配置的三个要素——域名、修订级别、实例与 VLAN 的映射——在整网必须一字不差。我见过最典型的一次翻车是某台接入交换机域名少打一个字母,结果它自己成了一个独立的 MSTP 域,环路没防住,广播风暴直接把模拟器卡死。备核心 Core-SW2 的根桥角色反过来配:实例 1 做 secondary,实例 2 做 primary,这样两组 VLAN 的流量分别从两台核心走,链路利用率上去了,故障切换也有备份路径。

验收这一段的方法很简单:display stp brief看每个端口的角色和状态,应该能看到一部分端口是 ROOT、一部分是 ALTE(阻塞),如果全都是 DESI,说明根桥没生效或者域没对上。

3.3 网关与路由:VLANIF、DHCP、OSPF 一次配通

二层通了之后,终端还拿不到地址,因为网关和 DHCP 还没落地。这个项目把网关全部放在核心交换机上,用 VLANIF 做三层接口,DHCP 用全局地址池,路由用 OSPF 把各网段宣告出去:

# 全局开 DHCP,这一步漏了后面配多少地址池都不生效 [Core-SW] dhcp enable # 教师办公地址池 [Core-SW] ip pool P10 [Core-SW-ip-pool-P10] network 172.16.10.0 mask 255.255.255.0 [Core-SW-ip-pool-P10] gateway-list 172.16.10.1 [Core-SW-ip-pool-P10] dns-list 172.16.40.10 172.16.40.11 # 保留前 20 个地址给打印机、AP、摄像头这类固定设备 [Core-SW-ip-pool-P10] excluded-ip-address 172.16.10.1 172.16.10.20 [Core-SW-ip-pool-P10] lease day 3 # 三层接口绑定地址池 [Core-SW] interface Vlanif10 [Core-SW-Vlanif10] ip address 172.16.10.1 255.255.255.0 [Core-SW-Vlanif10] dhcp select global # OSPF:先定 router-id,再把所有业务网段和互联段宣告进 area 0 [Core-SW] ospf 1 router-id 172.16.99.1 [Core-SW-ospf-1] area 0 [Core-SW-ospf-1-area-0.0.0.0] network 172.16.10.0 0.0.0.255 [Core-SW-ospf-1-area-0.0.0.0] network 172.16.20.0 0.0.0.255 [Core-SW-ospf-1-area-0.0.0.0] network 172.16.40.0 0.0.0.255 [Core-SW-ospf-1-area-0.0.0.0] network 172.16.99.0 0.0.0.3 # 用户 VLAN 只宣告网段、不发 Hello,减少无谓的邻居开销 [Core-SW-ospf-1] silent-interface Vlanif20

dhcp select global这个参数是新手最容易踩的点:不写它,VLANIF 上有地址、地址池也配了,但 DHCP 报文到了接口不知道该用哪个池,终端就一直停在 169.254 段。加上这一行,接口才会去全局池里按网段匹配。

OSPF 里的network后面跟的是反掩码,不是子网掩码,0.0.0.255对应 /24,0.0.0.3对应 /30。这个反掩码写错,邻居起不来或者路由宣告不全,是最常见的低级错误。silent-interface加在纯终端网段的 VLANIF 上,作用是这些接口不发 Hello 报文——那上面本来就没有路由器,发出去纯属浪费,还能顺带减少伪邻居。注意它只影响 OSPF 报文,DHCP 和转发完全不受影响。

出口路由器那边要么跑 OSPF 把互联段收进来,要么直接写一条静态回程路由指向核心,两种做法在课程设计里都算合格。我一般选静态,因为出口只有两条路由,跑动态反而增加了要解释的东西;如果后面要做双出口自动切换,再考虑把默认路由通过default-information originate下发给核心。

4. 出口与安全:NAT、ACL 和无线访客隔离

4.1 双出口 NAT:主备切换怎么写才不悬空

出口这块是课程设计里最能体现「你到底懂不懂」的地方。单出口谁都会配,双出口要考虑链路怎么选、NAT 在哪做、回程路由往哪指。这个项目的做法是:出口路由器上做 NAT,两条默认路由用不同优先级,主链路断了备链路自动接管。

# 出口路由器:先圈出允许上网的内网地址范围 [AR-Edge] acl number 2000 [AR-Edge-acl-basic-2000] rule 5 permit source 172.16.0.0 0.0.255.255 # 末尾显式拒绝,避免意外放行 [AR-Edge-acl-basic-2000] rule 10 deny # 内网侧接口,指向核心 [AR-Edge] interface GigabitEthernet0/0/1 [AR-Edge-GigabitEthernet0/0/1] ip address 172.16.99.2 255.255.255.252 # 主运营商接口,NAT 挂在出方向 [AR-Edge] interface GigabitEthernet0/0/0 [AR-Edge-GigabitEthernet0/0/0] ip address 198.51.100.2 255.255.255.252 [AR-Edge-GigabitEthernet0/0/0] nat outbound 2000 # 两条默认路由,数值小的优先,主链路挂了备链路顶上 [AR-Edge] ip route-static 0.0.0.0 0.0.0.0 198.51.100.1 preference 60 [AR-Edge] ip route-static 0.0.0.0 0.0.0.0 203.0.113.1 preference 80 # 回程:告诉路由器内网怎么走 [AR-Edge] ip route-static 172.16.0.0 255.255.0.0 172.16.99.1

nat outbound 2000挂在运营商侧接口上,意思是「从这个口出去的、命中 ACL 2000 的源地址,做源地址转换」。ACL 里那条rule 10 deny别省,默认是 permit any 的话,万一有人把公网段也写进去,路由会变得很难解释。

两条默认路由的preference是主备的核心。默认优先级是 60,我把备用链路设成 80,数值越大越不优先,所以平时只有主链路的默认路由进路由表;主链路接口 down 掉,对应的静态路由失效,备链路那条自动顶上。这是静态路由实现主备最简单的办法,比跑 BFD 轻量得多,课程设计里够用。

如果出口只做主备 NAT,有个细节容易出问题:备用链路的接口上也要挂nat outbound 2000。因为主链路切过去之后,流量会从备口出去,备口没配 NAT 的话,内网私网地址直接裸奔到公网,现象是「能 ping 通网关但打不开网页」。这一点我在第 5 章还会再点一次。

4.2 ACL:把学生机房和服务器区隔开

校园网里最该做隔离的其实是学生机房。这些机器数量多、重装频繁、一旦中招就是整片横向扩散,所以策略上要做到:能上网,能访问教务系统,能查 DNS,其他一概不放。

# 高级 ACL:按源、目的、协议精确控制 [Core-SW] acl number 3000 # 放行到教务服务器的访问 [Core-SW-acl-adv-3000] rule 5 permit ip source 172.16.20.0 0.0.0.255 destination 172.16.40.10 0 # 放行到内网 DNS 的查询 [Core-SW-acl-adv-3000] rule 10 permit udp source 172.16.20.0 0.0.0.255 destination 172.16.40.11 0 destination-port eq 53 # 其余到服务器区的流量全部丢弃 [Core-SW-acl-adv-3000] rule 20 deny ip source 172.16.20.0 0.0.0.255 destination 172.16.40.0 0.0.0.255 # 其他方向放行,否则默认拒绝会把上网也拦掉 [Core-SW-acl-adv-3000] rule 30 permit ip # 应用到机房网关的入方向,流量一进来就过滤 [Core-SW] interface Vlanif20 [Core-SW-Vlanif20] traffic-filter inbound acl 3000

这里有两个必须解释清楚的点。第一,ACL 的匹配是自上而下的,第一条命中就生效,所以放行规则必须写在拒绝规则前面,顺序反过来,放行就永远命中不了。第二,华为设备的 ACL 末尾默认是拒绝所有,所以rule 30 permit ip这条「兜底放行」绝对不能漏——漏了之后现象是机房完全断网,连网关都 ping 不通,很容易被误判成 VLAN 配错。

traffic-filter inbound acl 3000里的inbound是相对设备而言:从 Vlanif20 收到的报文(也就是机房终端发上来的)先过一遍 ACL,再走路由。这样过滤发生得最早,效率最高。

访客无线 VLAN 60 的处理思路类似但更简单:只允许访问公网,禁止访问任何内网私有段。

[Core-SW] acl number 3001 [Core-SW-acl-adv-3001] rule 5 deny ip source 172.16.60.0 0.0.0.255 destination 172.16.0.0 0.0.255.255 [Core-SW-acl-adv-3001] rule 10 permit ip [Core-SW] interface Vlanif60 [Core-SW-Vlanif60] traffic-filter inbound acl 3001

这条规则写得很粗暴——只要目的地址是内网私有段就丢——但恰恰是访客网络该有的逻辑。要是哪天要在访客区放一台打印机,再往前面插一条精确放行即可。

4.3 无线部分:AC 上线 AP 与业务 VLAN 下发

无线是这套拓扑里最容易卡住的一节,因为 eNsp 的 AC 和 AP 需要额外设备包,版本对不上就起不来。配置逻辑其实很清晰:AP 先通过网络拿到管理地址,然后找到 AC,AC 再把 SSID 和业务 VLAN 推下去。

# AC 旁挂:只配管理地址,业务网关仍在核心上 [AC] vlan batch 50 [AC] interface Vlanif50 [AC-Vlanif50] ip address 172.16.50.2 255.255.255.0 [AC-Vlanif50] dhcp select global # AP 管理地址池,option 43 告诉 AP 该去找谁 [AC] dhcp enable [AC] ip pool P50 [AC-ip-pool-P50] network 172.16.50.0 mask 255.255.255.0 [AC-ip-pool-P50] gateway-list 172.16.50.1 [AC-ip-pool-P50] option 43 sub-option 2 ip-address 172.16.50.2 # 指定 CAPWAP 源接口,AP 才会认为这台 AC 可用 [AC] capwap source interface Vlanif50 # WLAN 配置:安全模板 + SSID 模板 + VAP 模板,最后绑到 AP 组 [AC] wlan [AC-wlan-view] security-profile name office [AC-wlan-sec-prof-office] security wpa2 psk pass-phrase Campus-Wifi aes [AC-wlan-view] ssid-profile name office [AC-wlan-ssid-prof-office] ssid Campus-Office [AC-wlan-view] vap-profile name office [AC-wlan-vap-prof-office] service-vlan vlan-id 30 [AC-wlan-vap-prof-office] ssid-profile office [AC-wlan-vap-prof-office] security-profile office [AC-wlan-view] ap-group name default [AC-wlan-ap-group-default] vap-profile office wlan 1 radio all

模板化是这套配置的核心思想:安全策略、SSID、业务 VLAN 各自独立成模板,最后在 VAP 模板里拼起来,再绑到 AP 组。这样以后要加一个访客 SSID,只需要多做一套模板、在 AP 组里再加一行,不用改任何一台 AP 的配置。

option 43那行是二层组网的补充手段,如果 AP 和 AC 不在同一网段,靠 DHCP 的 option 43 告诉 AP 去哪里找 AC;本项目的 AP 管理地址和 AC 都在 VLAN 50,理论上广播就能发现,但把 option 43 写上更稳妥,也方便以后扩容时 AP 分散到别的楼栋。

capwap source interface Vlanif50这行漏了,现象是 AP 拿到了地址、也发出了 CAPWAP 请求,但 AC 始终不回应,AP 状态一直停在未上线。这是无线部分最高频的一个坑。

最后别忘了 AC 的上联口要是 Trunk,并且放行 VLAN 30、50、60,否则 AP 上线了,无线终端照样拿不到业务地址。

5. 避坑与排查:eNsp 里最容易翻车的五个地方

5.1 设备起不来:卡在井号与虚拟化冲突

现象:点启动后控制台一直刷####,进度停在 40% 左右不动,或者干脆报设备启动失败。

原因:几乎都是虚拟化环境冲突。系统里装了别的虚拟化软件、开了基于虚拟化的安全功能,都会抢占 VT-x;另一种情况是镜像包和设备型号不匹配,比如选了一台需要单独设备包的 AC,却没装对应版本。

解决:先确认系统的虚拟化功能没有被别的软件独占,必要时关掉冲突项再重启;然后检查设备包是否安装、版本是否与模拟器主程序匹配;最后把单台设备的内存调小一点试一次。经验做法是一次只启动三到四台设备,跑通一台存一台,别一上来全点亮。

5.2 拿到 169.254 地址:DHCP 链路上哪一环断了

现象:PC 开机后地址是 169.254.x.x,ipconfig显示自动私有地址,ping 网关不通。

原因:整条 DHCP 链路上任意一环断了都会这样——全局没开 DHCP、地址池网段和 VLANIF 不一致、VLANIF 上没写dhcp select global、接入端口划错 VLAN、Trunk 没放行该 VLAN。五个原因,现象一模一样。

解决:按「从下往上」的顺序查,别乱猜。先display port vlan确认端口在正确的 VLAN;再display vlan确认 Trunk 放行了;然后display ip pool看地址池里有没有已用地址;最后display current-configuration interface Vlanif20确认dhcp select global在。这四步走完,问题基本就定位了。

5.3 Trunk 与 OSPF:ping 不通的两类经典原因

现象:两台交换机直连口是 up 的,但跨交换机的终端互相 ping 不通;或者 OSPF 邻居一直停在 2-Way、ExStart。

原因:二层侧多半是 Trunk 的allow-pass列表漏了某个 VLAN,或者两端 PVID 不一致;三层侧多半是network反掩码写错、两端接口掩码不一致、router-id 冲突,或者不小心把接口设成了静默。

解决:二层先用display stp brief看端口是不是被阻塞成 ALTE,再display port vlan逐口核对;三层用display ospf peer看邻居状态,卡在 ExStart 优先查 MTU 和掩码,卡在 2-Way 优先查 router-id 和网络类型。我一般会在两端各起一个 VLANIF 先直连 ping 通,再往上叠路由,把问题锁在最小范围。

5.4 双出口切换后能 ping 通却打不开网页

现象:把主链路接口 shutdown 之后,内网能 ping 通外网网关,但网页打不开、DNS 也解析不了。

原因:备用运营商接口上忘了配nat outbound,内网私网地址直接从备口出去,对端不认;或者 NAT 的 ACL 里没有包含新加的网段。

解决:两条出口接口都挂同一条 NAT 的 ACL,切换前先在备口上display nat outbound确认规则存在。加新网段时,记得回头把 ACL 2000 的 permit 范围核对一遍,别只顾着改地址池。

5.5 关机即失:配置保存与快照

现象:前一天晚上调好的拓扑,第二天打开全变回初始状态,设备名字都没了。

原因:VRP 的配置在运行态和启动态是两份,改完不保存,重启就回到上一次保存的版本。eNsp 里还有一种情况是直接关掉了整个拓扑窗口,没给设备正常关闭的机会。

解决:养成在用户视图下敲save并确认的习惯,配置完一台存一台;每到一个稳定阶段就在模拟器里做一次快照,命名带上阶段,比如「三层通」「NAT 通」。这套后悔药我每次都留,因为改坏一次重来两小时,比多做十次快照都贵。

6. 二次开发:把某中学的拓扑改成你自己校区的样子

这套拓扑真正值钱的地方不是配置本身,而是它的骨架可以直接换皮。下面这张表是我实际改过几次之后总结的对照关系,换个校区规模、换个业务需求,基本都能对得上:

改造目标要动的地方验证命令
扩到多栋楼,接入层上百台加汇聚层,OSPF 划多区域,核心只跑骨干display ospf peer brief
换一套地址段地址池、VLANIF、ACL、NAT 的 ACL 四处同步改display ip pool
机房加 802.1X 认证接入端口开认证,指向认证服务器display access-user
出口换成防火墙NAT 挪到防火墙上,加区域间策略display firewall session table
加 IPv6 双栈VLANIF 配双栈、DHCPv6、OSPFv3display ipv6 interface brief

最容易出错的是第二条。改地址段的时候,很多人只改了地址池和 VLANIF,忘了 NAT 那条 ACL 2000 还圈着旧的 172.16.0.0/16,结果新网段上不了网;或者 ACL 3000 里针对机房的那几条还指向旧服务器地址,机房连教务系统直接断。改完之后按「终端拿地址 → ping 网关 → ping 核心 → ping 出口 → 打开网页」这个顺序走一遍,能把问题锁在某一段。

扩规模的那条也值得多说一句。当接入交换机超过二三十台,OSPF 单区域里的 LSU 会明显变多,核心的 CPU 和邻居表都会吃紧,这时候把每栋楼划成一个 area,核心只保留 area 0,路由汇总在区域边界做,收敛会快很多,也更好讲清楚。改造时不要一次全动,先拿一栋楼做试点,跑通再复制。

验证方法上,我的习惯是每次改完固定跑一遍清单:display vlan看 VLAN 和端口成员,display stp brief看阻塞口,display ip routing-table看路由是否齐全,display ospf peer看邻居是否 Full,最后从每个业务 VLAN 各挑一台终端做端到端 ping 和网页访问。这套清单看起来笨,但它能把「配了但没生效」和「生效了但被 ACL 拦了」分开,省下大量瞎猜时间。

从那以后我每次动网络配置,都会先把当前配置导出一份带日期的备份,再开一个快照,然后才动手改——不是为了好看,是因为我吃过一次没备份、把核心 OSPF 删干净、连夜重敲的亏。这份课程设计里的拓扑和配置,按上面的顺序拆着走一遍,交付一个能跑、能讲、还能改的期末设计不成问题。希望帮到你。

本文还有配套的精品资源,点击获取

返回列表