☰
eNSP静态路由综合实验:配置、回程路由与故障排查全解析
2026/9/29 20:21:54 网站建设 项目流程

带几个刚入行的朋友做eNSP静态路由综合实验,我发现一个很有意思的现象:很多人接口IP配完了,PC的网关也填了,但一到跨路由器Ping就开始怀疑人生。不是“请求超时”就是“无法访问目标主机”,然后代码查了半天也找不出问题。其实问题往往不在命令本身,而是在对“逐跳转发”和“回程路由”的理解上。

这篇我把自己跑静态路由综合实验的完整过程整理出来,从拓扑规划、地址划分、静态路由配置,到回程路由的坑、故障排查思路,再到默认路由、等价路由、浮动路由这些加分项,最后聊一聊静态路由的删除与管理。如果你是刚开始学网络、备考华为认证,或者需要带新人做实验,这篇可以直接照着敲,也能少走不少弯路。

1. 实验拓扑与地址规划:先把“网段地图”画清楚

1.1 为什么用三台路由器构成链形拓扑

静态路由最基础的形式是两台路由器直连,写一条静态路由就完事。但综合实验之所以叫“综合”,就是要让流量经过多个节点、多个网段,你才会真正体会到路由表的查询过程和回程路由的必要性。

我建议直接用三台路由器串联,拓扑结构是链形:R1—R2—R3,每台路由器下挂一个终端PC网段。这样做的好处有三个:

  • 三台路由器之间有两段互联链路,天然形成“经过中间节点转发”的场景。
  • 三台路由器各挂一个PC网段,实现全网互通时,每台设备都需要不止一条静态路由。
  • 当某个方向Ping不通时,你需要在R1、R2、R3三台设备上逐台排查,这正好是真实网络排错的标准姿势。

如果你在eNSP里操作,建议选AR201或AR2200这种常见路由器型号,三台即可。用Device拖出来摆成一排,连线用Auto或Copper口都行,GigabitEthernet0/0/0和GigabitEthernet0/0/1是默认的接口资源,够用。

1.2 地址规划的核心原则:互联地址用/30

地址规划这件事,很多人不重视,随手就配,结果后面查起路由表来一团乱麻。我做实验的习惯是先把一张地址规划表写在纸上,再动手敲命令。

设备接口IP地址所属网段用途说明
PC1以太网口192.168.10.1/24192.168.10.0/24R1下挂用户网段
R1G0/0/1192.168.10.254/24192.168.10.0/24PC1网关
R1G0/0/010.0.12.1/3010.0.12.0/30R1与R2互联
R2G0/0/010.0.12.2/3010.0.12.0/30R2与R1互联
R2G0/0/110.0.23.1/3010.0.23.0/30R2与R3互联
R2G0/0/2192.168.20.254/24192.168.20.0/24R2下挂用户网段
PC2以太网口192.168.20.1/24192.168.20.0/24R2下挂用户网段
R3G0/0/010.0.23.2/3010.0.23.0/30R3与R2互联
R3G0/0/1192.168.30.254/24192.168.30.0/24R3下挂用户网段
PC3以太网口192.168.30.1/24192.168.30.0/24R3下挂用户网段

这里有两点值得展开说。

第一,设备间互联地址为什么用/30。因为点对点链路只需要两个可用IP,/30子网掩码是255.255.255.252,正好提供两个可用地址,还能减少地址浪费。很多初学者习惯给互联接口配/24,不是不行,但在综合性实验里它会引入大量无用网段,而且养成坏习惯之后,在企业网络的地址规划里容易出问题。

第二,PC网关必须指向路由器接口地址。PC1的网关是192.168.10.254,也就是R1的G0/0/1接口地址。这一步错了,后面路由配得再对也白搭。

1.3 先把接口IP和PC地址全部配完

这个阶段先不配路由,只把设备命名、接口IP、PC的IP和网关配好。以R1为例,命令如下:

<R1>system-view [R1]sysname R1 [R1]interface GigabitEthernet0/0/1 [R1-GigabitEthernet0/0/1]ip address 192.168.10.254 255.255.255.0 [R1-GigabitEthernet0/0/1]undo shutdown [R1-GigabitEthernet0/0/1]quit [R1]interface GigabitEthernet0/0/0 [R1-GigabitEthernet0/0/0]ip address 10.0.12.1 255.255.255.252 [R1-GigabitEthernet0/0/0]undo shutdown

R2和R3同理。R2一共有三个接口:G0/0/0连R1、G0/0/1连R3、G0/0/2挂PC2网段。R3则是G0/0/0连R2、G0/0/1挂PC3网段。

在eNSP里路由器接口默认是UP的,但我还是习惯敲一句undo shutdown。真机上很多接口默认就是shutdown状态,手动打开这个动作能帮你少踩一个坑。

配完后用display ip interface brief检查一遍接口状态和IP。这时你会在每台路由器上看到“直连路由”,也就是Direct路由。比如R1上会有:

[R1]display ip routing-table Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Routing Tables: Public Destinations : 8 Routes : 8 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.12.0/30 Direct 0 0 D 10.0.12.1 GigabitEthernet0/0/0 10.0.12.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0 10.0.12.2/32 Direct 0 0 D 10.0.12.2 GigabitEthernet0/0/0 192.168.10.0/24 Direct 0 0 D 192.168.10.254 GigabitEthernet0/0/1 192.168.10.254/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1

注意,现在R1的路由表里只有直连网段。PC1去Ping PC2的地址192.168.20.1,R1在路由表里找不到192.168.20.0/24,包就直接丢了,返回“目标不可达”。这是正常现象,因为我们还没有配置任何静态路由。

2. 静态路由逐台配置:三条命令背后的转发逻辑

2.1 静态路由命令的完整语法与下一跳选择

静态路由的配置命令在华为VRP系统里是这样一条:

ip route-static 目标网段 目标掩码 下一跳地址 [preference 优先级]

很多第一次接触的人会问:下一跳地址到底填什么?一句话解释清楚——下一跳指的是“与当前路由器直连的、对端路由器的接口IP地址”。

举个例子。R1要把数据包送给192.168.20.0/24这个网段,数据包先从R1的G0/0/0口出去,而G0/0/0接口的对端是R2的G0/0/0口,IP是10.0.12.2。所以下一跳填10.0.12.2,而不是填R2的G0/0/1地址10.0.23.1,更不是192.168.20.254。

这个选择是有硬性条件的:下一跳地址必须与当前路由器的某个接口处于同一个网段。如果下一跳不直连,路由器根本没法把包送过去。你把下一跳写成一个完全不可达的地址,这条路由虽然能配进去,但永远不会被使用。这类坑在后面排错时会非常隐蔽。

2.2 R1的配置:直达目标网段与中间节点

按照全网互通的目标,R1需要访问三个非直连网段:192.168.20.0/24、192.168.30.0/24,以及R2与R3之间的互联网段10.0.23.0/30。

但实际配置时,后两个网段的下一跳其实都是同一个地址:10.0.12.2。因为无论去20网段还是30网段,R1都必须先把包交给R2,由R2继续转发。所以R1上的配置是这样:

[R1]ip route-static 192.168.20.0 255.255.255.0 10.0.12.2 [R1]ip route-static 192.168.30.0 255.255.255.0 10.0.12.2

这里有人会问:192.168.30.0/24在R3下面,R1不能直接写一条指向R2的静态路由吗?其实上面两条就已经是了。R1看到目标是30网段,把包交给10.0.12.2即R2;R2再根据自己的路由表,把包交给10.0.23.2即R3。这就是“逐跳转发”的含义——每台路由器只负责把数据包送到下一跳,它不需要也不可能知道全球的路由,只要知道“最近的路”怎么走就够了。

2.3 R2与R3的配置:中间设备要能“往回指”

R2作为中间节点,既连接R1方向的10.0.12.0/30网段和192.168.10.0/24网段,也连接R3方向的10.0.23.0/30网段和192.168.30.0/24网段,同时自己还挂着192.168.20.0/24网段。

R2上需要配置的静态路由有两条:

[R2]ip route-static 192.168.10.0 255.255.255.0 10.0.12.1 [R2]ip route-static 192.168.30.0 255.255.255.0 10.0.23.2

R2去192.168.10.0/24,下一跳是10.0.12.1,也就是R1的互联接口;R2去192.168.30.0/24,下一跳是10.0.23.2,也就是R3的互联接口。

R3上需要的静态路由是去往192.168.10.0/24和192.168.20.0/24:

[R3]ip route-static 192.168.10.0 255.255.255.0 10.0.23.1 [R3]ip route-static 192.168.20.0 255.255.255.0 10.0.23.1

R3的情况和R1对称:两个远端网段都只能通过R2转发,所以下一跳都是10.0.23.1。

2.4 配置完之后的验证:路由表的观察要点

三台设备配完后,用display ip routing-table分别看一看。R1上应该能看到这样几条关键路由:

Destination/Mask Proto Pre Cost Flags NextHop Interface 10.0.12.0/30 Direct 0 0 D 10.0.12.1 GigabitEthernet0/0/0 192.168.10.0/24 Direct 0 0 D 192.168.10.254 GigabitEthernet0/0/1 192.168.20.0/24 Static 60 0 D 10.0.12.2 GigabitEthernet0/0/0 192.168.30.0/24 Static 60 0 D 10.0.12.2 GigabitEthernet0/0/0

注意Static路由的Pre值是60,这是华为VRP系统里静态路由的默认优先级。Direct路由的Pre是0,数值越小优先级越高。路由优先级这个概念在静态路由综合实验里会反复用到,后面讲浮动静态路由时会派上大用场。

3. 回程路由:为什么PC1到PC2的Ping总在最后一步失败

3.1 回程路由的本质:不是特殊路由类型,而是反向路径上的路由表条目

“回程路由”是很多人挂在嘴边,却经常和“静态路由”搞混的一个词。它其实不是一种独立的路由类型,而是指数据包从目的网段返回源网段时,沿途每一台路由器为了把包送回去,在路由表里需要查到的那些条目。

比如PC1 ping PC2,数据包的走向是这样的:

  • PC1把包发给网关R1。
  • R1查路由表,发现192.168.20.0/24的下一跳是10.0.12.2,于是把包从G0/0/0口发出,交给R2。
  • R2查路由表,发现192.168.20.0/24是自己的直连网段,于是把包从G0/0/2口发出,交给PC2。
  • PC2收到ICMP Echo Request后,要回复给PC1。这个回复包的目标地址是192.168.10.1,它首先到达R2。
  • R2查路由表,发现192.168.10.0/24的下一跳是10.0.12.1,于是把包交给R1。
  • R1查路由表,发现192.168.10.0/24是自己的直连网段,于是把包交给PC1。

注意第5步:如果R2上没有配置去往192.168.10.0/24的静态路由,那么PC2的回复包到达R2后,R2无法转发,包就死在那里了。PC1端看到的现象就是“请求超时”。

3.2 一个生活化的类比:双向导航

我经常把这个场景比作“从公司开车去客户现场”。你出发前会开导航查路线,这是“去程路由”;客户送你回公司时,客户也要知道公司的地址,他的导航也会规划一条路,这是“回程路由”。你不能因为自己导航过了,就默认客户的导航里也存着你的公司位置——别人怎么知道你的网段在哪?

回到实验里,很多人的习惯是“从PC1 ping PC2,通了;从PC1 ping PC3,不通”,就开始怀疑R3配置有问题,但其实问题往往出在回程路径的某个节点上。排查时一定要把“去的路”和“回来的路”分开看。

3.3 实测过程中最常见的“半通”现象

我在带新人做这个静态路由综合实验时,见过最多的情况是:只给R2和R3配了去往R1网段的路由,R1也配了去往所有远端网段的路由,表面看起来全网都能通,但PC2 ping PC1就是不通。原因就是R3方向的路由配了,R2方向的路由漏了,或者反过来。

更隐蔽的一种情况是下一跳写错。比如R2上写:

[R2]ip route-static 192.168.10.0 255.255.255.0 10.0.23.1

这条命令把去往192.168.10.0/24的下一跳写成了10.0.23.1,也就是R2自己G0/0/1口的地址。R2收到目的为192.168.10.1的包后,查路由表命中这条静态路由,下一跳是10.0.23.1,出接口是G0/0/1——好巧不巧,这个下一跳地址就是R2自己的接口IP,相当于路由器把包送给了自己,形成一种“有趣”的无效状态。虽然不一定会立刻造成明显故障,但对于很多经验不足的人,这种路由条目在表里看起来明明存在,却总是Ping不通,非常难定位。

所以配置静态路由时,下一跳务必填对端接口IP,不是本端接口IP。这是综合实验里最容易被人忽略、也最容易出问题的点。

4. 综合实验的完整验证与故障排查链路

4.1 第一步:从接口状态开始查

无论Ping不通的现象多么“诡异”,排查第一步一定是从底层开始,而不是盯着路由表猜。我会按这个顺序来:

  • 用display interface brief检查所有参与实验的路由器接口是否UP。
  • 用display ip interface brief检查接口IP是否配置正确,和规划表是否一致。
  • 用display arp检查ARP表项是否学习正常。

eNSP里接口DOWN最常见的原因是网线没连对接口,或者两台设备连接了错误的物理端口。如果接口状态是DOWN,后面所有关于静态路由的排查都没有意义。

4.2 第二步:逐台路由器查路由表,顺着数据包走一遍

如果接口状态正常,就开始“顺着数据包走”。下面是PC1 ping PC2(192.168.20.1)的排查动作:

在R1上执行:

[R1]display ip routing-table 192.168.20.1

如果结果显示下一跳是10.0.12.2、出接口是GigabitEthernet0/0/0,说明去程到R1这一段没问题。

接着在R2上执行:

[R2]display ip routing-table 192.168.20.1

R2的G0/0/2口直连着192.168.20.0/24,所以这里应该命中直连路由。如果R2接口的IP配错了,比如配成了192.168.30.254,这一跳就会失败。

去程没问题再查回程。在R2上执行:

[R2]display ip routing-table 192.168.10.1

这一步非常关键。如果显示没有路由,问题就在这里。补上回程路由即可:

[R2]ip route-static 192.168.10.0 255.255.255.0 10.0.12.1

4.3 第三步:用tracert定位故障到底发生在哪一跳

PC1上Ping不通时,先打开命令行窗口,跑一次tracert -d 192.168.20.1。tracert会逐跳显示路径上的节点IP,如果输出只显示到R1的G0/0/0接口地址10.0.12.1就断了,说明R1出去之后的下一跳有问题;如果到达R2就不再继续,说明问题出在R2或其下游。这个方法能帮你把问题快速缩小到“某一段链路”上。

我用这个词“链路段”来描述:网络本质上是由一段一段的“链路”拼起来的,你不需要一开始就通盘怀疑所有设备,而是先定位出是哪一段链路断掉,再去看对应设备的配置。

4.4 一个完整的“翻车现场”:R3漏配回程路由

为了让你更直观地感受整个排查过程,我模拟一个真实情况。

实验拓扑和刚才一样,我故意在R3上漏配去往192.168.10.0/24的静态路由,然后从PC1上Ping PC3(192.168.30.1),现象是:

  • 第一次Ping全部超时。
  • PC1能Ping通R3的接口地址192.168.30.254吗?这里要分开测。如果R1、R2上的路由都正确,PC1是可以Ping通192.168.30.254的,因为去的路径是PC1 → R1 → R2 → R3,R3收到ICMP请求后要回复给192.168.10.1,但R3路由表里没有192.168.10.0/24的路由,所以回复包发不出去,表现为超时。

排查过程:

  1. 在PC1上Ping 192.168.30.254,超时。
  2. 在R1上用display ip routing-table 192.168.30.0查路由,命中静态路由,下一跳10.0.12.2,正常。
  3. 在R2上用display ip routing-table 192.168.30.0查路由,命中静态路由,下一跳10.0.23.2,正常。
  4. 在R3上Ping 192.168.30.254(本机接口),能通,说明R3接口没问题。
  5. 在R3上用display ip routing-table 192.168.10.1查路由,发现没有到达192.168.10.0/24的路由,问题定位成功。

补上这条路由后,立刻再Ping一次,通了。

4.5 Ping不通时看现象:三种结果的判断技巧

我建议你在实验里刻意制造几次故障,观察Ping的输出。不同现象能帮你快速判断问题类型:

现象可能原因排查方向
超时(Request timed out)有去程无回程,或路径中某个节点丢弃重点查回程路由、ARP
目标不可达(Destination Host Unreachable)路由器路由表中没有目标网段条目查当前设备的静态路由配置
超时且中间节点全部丢失链路层不通,接口DOWN查接口状态、网线连接

“超时”和“目标不可达”的区别很关键。目标不可达通常是路由器明确告诉你“我找不到路”,而超时是路由器默不作声地把包丢了,或回包根本没返回。实验里遇到超时,优先怀疑回程路由,这个判断正确率非常高。

5. 默认路由、等价路由与浮动路由:综合实验的加分项

5.1 默认路由:大网出口最省事的写法

静态路由综合实验跑通全网互通之后,再往前走一步就是默认路由。默认路由的写法是目标网段和掩码都用全零:

[R1]ip route-static 0.0.0.0 0.0.0.0 下一跳地址

它表示“所有路由表里查不到目标网段的数据包,全部丢给这个下一跳”。这个场景最适合模拟上联出口。比如R1增加一个接口连接模拟ISP,网段为100.64.0.0/30,R1上配置一条默认路由指向ISP侧路由器的接口地址,那么R1下面的所有终端去访问外网时,流量都会走这条默认路由。

但默认路由不是万能药。它的风险在于:如果你在R2、R3上也配置默认路由都指向R1,那么当某个内网目标网段路由缺失时,数据包会在R1、R2、R3之间反复循环,形成路由环路。所以配置默认路由的前提是你要对全网可达性有清晰的把控,至少确保“默认路由不要形成环路”。实验里可以用display ip routing-table观察路由表,注意0.0.0.0/0这条路由的存在。

5.2 等价路由:多条链路同时干活

等价路由指的是到达同一个目的地,同时存在两条或以上“优先级相同、开销相同”的静态路由,路由器会把流量负荷分担到这几条链路上。

比如在R1和R2之间如果存在两条物理链路,一个是G0/0/0(网段10.0.12.0/30),一个是G0/0/2(网段10.0.13.0/30),那么R1上可以这样配置:

[R1]ip route-static 192.168.20.0 255.255.255.0 10.0.12.2 [R1]ip route-static 192.168.20.0 255.255.255.0 10.0.13.2

华为VRP系统默认支持等价路由的负载分担,两条路由会同时出现在路由表里。用display ip routing-table查看192.168.20.0/24时,你会看到两个下一跳。这个机制在真实网络里很常见,也叫ECMP(Equal-Cost Multipath),是提升链路利用率的常用手段。

但你要明白,等价路由不是“配得越多越好”。它要求两条路径的优先级、开销完全一致,如果一条链路质量很差,负载分担反而会拖慢整体速度。实验里验证等价路由,可以先Ping大包,或者在R1上用display ip routing-table看路由表的变化。eNSP不支持查看实时流量分布,但路由表加载情况足以说明问题。

5.3 浮动静态路由:主备链路靠优先级切换

浮动静态路由这个名词听起来高级,其实原理很朴素:给备份链路配一条优先级更低(Pre数值更大)的静态路由,只有当主链路路由消失时,备份路由才会出现在路由表里。

还是拿R1和R2之间的链路举例。假设主链路是G0/0/0(10.0.12.0/30),备份链路是G0/0/2(10.0.13.0/30)。R1上这样配置:

[R1]ip route-static 192.168.20.0 255.255.255.0 10.0.12.2 [R1]ip route-static 192.168.20.0 255.255.255.0 10.0.13.2 preference 70

第二条路由的优先级是70,默认静态路由优先级是60。数值越大优先级越低,所以第二条路由正常情况下不会出现在路由表里。当主链路接口DOWN掉,第一条路由消失,第二条备份路由就会自动生效。这种主备切换机制在企业出口链路、拨号备份链路里用得非常多。

做这个实验时,你可以在eNSP里把主链路接口shutdown,再用display ip routing-table看路由表的变化,这是一个非常直观的验证过程。

6. 静态路由的删除与管理:实验收尾最容易忽略的事

6.1 删除静态路由的命令与常见误区

静态路由不是一次性配置完就不管的,实验过程中经常需要删掉重配。删除命令是对称的,只要在ip route-static前面加undo:

[R1]undo ip route-static 192.168.20.0 255.255.255.0 10.0.12.2

一个非常容易踩的坑是:同一目标网段配置了多条不同下一跳的静态路由后,你用undo ip route-static 192.168.20.0 255.255.255.0不带下一跳去删除,VRP系统可能会把所有下一跳的等价路由全部删掉。我建议删除时把完整的下一跳参数也带上,只删你真正想删的那条,操作更可控。

如果你想一条一条确认当前设备上有哪些静态路由,用这条命令:

[R1]display ip routing-table protocol static

输出里只显示静态路由,比全量路由表更聚焦。对于三台设备有几十条路由的实验环境,这个命令是必备的。

6.2 修改静态路由的两种方式

修改静态路由一般有两种方式。

一种是先删后加,适用于目标网段、掩码、下一跳中任意一项发生变化的情况。

另一种是直接重新配置一条相同的目标网段和掩码、但不同下一跳的路由。VRP系统允许同目标网段叠加多条静态路由,如果你配置了相同优先级的多条路由,它会形成等价路由;如果优先级不同,高优先级的会生效。所以“重新配置一条”在有些情况下并不会覆盖旧路由,反而会造成多条路由并存。这也是我在前面反复强调“查路由表”的原因——你以为自己改了配置,但实际路由表里还躺着旧路由。

6.3 保存配置与导出实验配置

eNSP里的实验做完不保存,关掉模拟器就全没了。每台路由器上都要执行:

<R1>save

系统会询问是否保存配置文件,输入Y确认。如果你想让三台设备的配置保持一致,可以在eNSP里右键路由器,选择“Export Device Configuration”导出配置文件,方便复盘和存档。

静态路由综合实验里养成保存配置的习惯,跟你写代码养成git提交的习惯是一回事——它真正的意义不是在实验成功时保存,而是在你实验改乱、需要回退到某个状态时,你还能找到那份配置快照。

6.4 最后的检查清单

实验收尾前,我一般会拿这个清单快速过一遍:

  • 三台路由器display ip routing-table中的静态路由是否和规划一致。
  • PC1、PC2、PC3两两Ping是否全部通过。
  • 所有路由器都执行过save。
  • 删除了多余的验证性配置,比如临时加的默认路由、浮动路由,确保最终配置和实验报告一致。

这个清单看起来简单,但能帮你少交不少“缺胳膊少腿”的实验报告。


我自己的体会是,静态路由综合实验真正练的不是那几条命令,而是“逐跳转发”的思维方式。命令记不住可以查帮助,但如果你对“数据包从源到目的,沿途每台路由器各自查一次路由表、各自做一次转发”这个过程没有建立画面感,遇到排错就很容易像无头苍蝇一样乱试。

最后再分享一个我做实验时的小技巧:先别急着配路由,把三台路由器的接口IP配完,PC的IP和网关配完,然后在PC上分别Ping各路由器的所有接口地址,确认每一段直连链路都通。这个“先把骨架打直”的过程能帮你把物理层、链路层、直连路由的问题一次性清洗干净,后面配静态路由时几乎不会遇到莫名其妙的玄学故障。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询