☰
华为eNSP静态路由综合实验:原理、配置与排错全解析
2026/9/29 19:35:27 网站建设 项目流程

我在网络技术这一行摸爬滚打了十多年,经手过的网络设备少说也有几百台,从思科、华为到华三,从交换机到路由器都折腾过。如果你让我给刚入门的新手或者正在备考HCIA、HCIP的兄弟推荐一个必做的实验,那我的答案永远不变——静态路由综合实验。为什么这么推荐?因为很多看起来花里胡哨的动态路由协议,追根溯源,底层最核心的路由思想还是从静态路由这里长出来的。你先把静态路由吃透了,后面理解OSPF、BGP会轻松很多,很多排障思路也是一脉相承的。

今天我就借着一个典型的华为eNSP环境下的综合实验,把静态路由从原理到配置,从踩坑到排错,整个体系从头到尾给大家掰开揉碎讲一遍。文章会涵盖:

  • 静态路由的核心原理和什么时候该用它
  • 在eNSP里搭建实验环境的完整过程
  • 手把手教你配置静态路由的每一步命令
  • 回程路由和静态路由的区别,为什么有时候配了路由还是ping不通
  • 如何删除静态路由,以及路由表里那些字段怎么看
  • 综合实验里的排错思路和实操经验

这些内容主要是写给网络的初学者、准备考华为认证的朋友,还有就是那些虽然在工作里会配设备,但对路由原理还没完全吃透的运维兄弟。看完这篇文章,你可以直接打开eNSP照着敲命令,照着搭拓扑,最后把整个实验从配置到验证完整跑通。

1. 内容整体设计与思路拆解

1.1 为什么从静态路由综合实验入手

很多初学者一上来就想学OSPF,觉得这才是“正经”的动态路由协议,静态路由太简单了,不就是写一条条固定的路由命令吗?但实际工作里,静态路由真不是“简单”两个字能概括的。我见过不少工作了三四年的网络工程师,在配广域网专线或者备份链路的时候,还是习惯用静态路由。原因很简单:静态路由可控性强、不占额外协议开销、故障定位直观。

在企业网或者数据中心网络里,静态路由最典型的应用场景就是出口网关。比如你公司有一条到运营商的专线,下一跳是运营商给的网关地址,这种情况你完全不需要跑动态路由协议,写一条默认路由指过去就完事了。再有就是核心交换机到防火墙的互联,很多架构里也是用静态路由把内部网段和出口设备串起来。如果不跑动态协议,路由表干干净净的,出了问题查起来一目了然,不会出现OSPF邻居震荡导致路由翻滚这种幺蛾子。

但是静态路由也有一个天生的特点——它不会自己适应网络变化。链路断了,静态路由不会自动切换到备用路径(除非你配了备份路由加track联动)。这其实也是它的优点,网络状态完全由你掌控,好不好用取决于你规划得是否缜密。综合实验的意义就在于,让你在动手配命令之前,先学会像一个网络设计者那样去思考:路由该怎么指?下一跳是谁?回程路由配了没有?数据流量是怎么走过去的?这些问题想明白了,后面的命令都是水到渠成的事情。

1.2 实验拓扑设计思路与IP规划原则

我这次要带大家搭的实验拓扑,是经典的三路由器串接组网。不需要什么高端的硬件配置,eNSP里用三台AR2220路由器就能搞定。有些教程喜欢用三台路由器拉成一个三角形,再加两台交换机接入PC,拓扑画得很复杂。但我觉得入门阶段拓扑越清晰越好,关键在于把数据转发路径看明白。所以我选用最经典的串接结构:

PC-A ---- R1 ---- R2 ---- R3 ---- PC-B

这个拓扑里,每一台路由器上都会配置三个网段:连接左边设备的、连接右边设备的、还有一个环回口用来模拟终端的网络。这样设计有几个好处:

第一,数据报文要经过三层转发,每一跳都依赖路由表。PC-A要发数据给PC-B,报文先到R1,R1查路由表发现目的网段在远端,于是把报文转发给R2,R2再查表转发给R3,最后R3把报文送给PC-B。这中间任何一个路由器的路由表缺失,报文都会在那一跳被丢弃。这就是为什么静态路由实验必须做综合的、跨多台设备的实验,单台设备的静态路由配置毫无意义。

第二,必须同时配置正向路由和回程路由,这一点是这个实验的核心中的核心。很多新手只想着从PC-A到PC-B的方向怎么走,却忘了PC-B回包的时候,它的报文同样需要路由才能回到PC-A。网络通信是双向的,回程路由漏配了,就会出典型的“能ping通一遍但后面就超时”或者“直接不通”的情况。

我建议在做实验之前,先在纸上把每个设备的接口IP和网段规划表画出来。这么做的好处是配置的时候不用边敲命令边想着下一跳要写什么,脑子不容易乱。下面是我在这个实验里用的IP规划:

设备接口IP地址连接对象
R1GigabitEthernet 0/0/0192.168.1.1/24PC-A(模拟)
R1GigabitEthernet 0/0/1192.168.12.1/24R2的G0/0/0
R2GigabitEthernet 0/0/0192.168.12.2/24R1的G0/0/1
R2GigabitEthernet 0/0/1192.168.23.2/24R3的G0/0/0
R3GigabitEthernet 0/0/0192.168.23.3/24R2的G0/0/1
R3GigabitEthernet 0/0/1192.168.3.1/24PC-B(模拟)
PC-A模拟的客户端192.168.1.10/24网关192.168.1.1
PC-B模拟的客户端192.168.3.10/24网关192.168.3.1

注意看,我把PC-A和PC-B的网关分别指向了R1的G0/0/0和R3的G0/0/1。这个实验里为什么不用AR路由器直接下挂PC,而是用环回口或者单独的PC去模拟?因为这样更贴近真实的网段规划概念。实际工作里,路由器的物理接口往往用来连接交换机或者上游设备,终端用户网段通常是通过VLAN或者环回口来表示的。你学会了用环回口模拟网段,后面看拓扑图就更容易理解那些“虚空”网段是怎么进路由表的。

2. 核心细节解析与实操要点

2.1 静态路由的下一跳到底怎么写

配置静态路由,华为的命令格式是:

ip route-static 目的网段 掩码 下一跳地址

比如我在R1上配置去往192.168.3.0/24网段的路由,下一跳地址应该是R2和R1互联的接口地址,也就是192.168.12.2。命令就是:

ip route-static 192.168.3.0 255.255.255.0 192.168.12.2

这个“下一跳”的概念很多新手会写错。写错的原因往往是没搞清楚:下一跳地址必须是本设备直连网段内的某个地址,这个地址能直接被这个路由器访问到。什么意思?就是我在R1上写下一跳,绝对不能写成R3上的地址,因为R1根本不可能直接把报文送到一个不存在的直连接口上。报文必须先给R2,R2再继续往下转发。

有些人可能会说,那我在华为路由器上配置静态路由时,能不能指定出接口而不写下一跳?在华为设备上可以写成ip route-static 192.168.3.0 24 GigabitEthernet0/0/1这种形式,但这种写法在某些场景下会有问题,比如点到多点链路上,设备不知道对端是谁,ARP会解析不出来。反过来,在思科设备上我们经常写ip route 192.168.3.0 255.255.255.0 192.168.12.2,一样的道理。建议无论什么厂商设备,统一写下一跳地址,不要偷懒写出口,这样最稳妥,也便于排障。这个习惯从学习阶段就要养成。

再说一个很多人会忽略的点:目的网段的写法必须是你要到达的那个网段,而不是你接口所在的网段。我在指导新人的时候经常发现一种典型错误,比如R1的G0/0/1接口是192.168.12.1/24,他想让R1能到达R2后面的192.168.23.0/24网段,结果写成了ip route-static 192.168.23.0 255.255.255.0 192.168.23.2。这明显错了,因为192.168.23.2根本不在R1的直连网段内。写路由之前先问问自己:我的直连路由有哪些?下一跳必须是直连网段内的地址。这个概念在后面的华为考试里也是常考的,别看它简单,很多人栽在这里。

2.2 默认路由和等价路由的特殊用法

综合实验里除了写具体的网段路由,还要学会配置默认路由。默认路由是一条特殊的路由,目的网段是0.0.0.0,掩码是0.0.0.0。它表示:如果报文在路由表里找不到任何更精确的路由条目,就匹配这条默认路由进行转发。

在实验拓扑里,R1实际上只需要两条方向相反的路由就能满足PC-A到PC-B的需求:

ip route-static 192.168.3.0 255.255.255.0 192.168.12.2 ip route-static 192.168.23.0 255.255.255.0 192.168.12.2

你看,需要两条具体路由。如果你觉得多,可以合并成一条默认路由:

ip route-static 0.0.0.0 0.0.0.0 192.168.12.2

这样R1上任何非直连的网段报文,都会一股脑甩给R2。但在综合实验里,我不建议你用默认路由把三台路由器串起来,因为那会掩盖对路由查找过程的理解。等实验成功了,你倒是可以改几条命令,体验一下默认路由的妙处。到底用具体路由还是默认路由,取决于网络规模和你对这个网络的掌控程度。真实项目中,如果你是一个出口路由器,上游只有一个运营商网关,那默认路由几乎是必须的;如果你做的是一个大型企业网络的骨干路由器,那肯定是明细路由为主,默认路由只负责兜底。

等价路由也是静态路由里的一个重要考点。所谓等价路由,就是有多条路径到达同一个目的网段,而且这些路径的“开销”相同,路由器会把流量负载分担到这些路径上。华为设备上实现很简单,同一条目的网段写两条不同的下一跳就行:

ip route-static 192.168.3.0 255.255.255.0 192.168.12.2 ip route-static 192.168.3.0 255.255.255.0 192.168.13.2

前提是192.168.12.2和192.168.13.2都是直连可达的下一跳。注意,静态路由的“开销”其实人为指定的,默认都相同。如果你想做备份路由,不希望负载分担,可以通过设置优先级来控制。华为设备默认静态路由的优先级是60,你写两条静态路由,如果一条想作为主用,另一条作为备份,就需要把备份那条的优先级调大,数值越大越不优先。比如:

ip route-static 192.168.3.0 255.255.255.0 192.168.12.2 ip route-static 192.168.3.0 255.255.255.0 192.168.13.2 preference 80

这样的话,只有第一条路由失效了,第二条才会进入路由表。这在真实项目里是很常用的双出口备份方案。综合实验里如果你有闲心,可以把拓扑扩展成三角形,然后配置等价路由或者浮动静态路由,观察流量走向的变化,这就是后面学策略路由的启蒙了。

2.3 回程路由和静态路由的区别

这个热搜词“回程路由和静态路由的区别”问得其实有点歧义。准确地说,回程路由不是一种路由类型,更不是和静态路由并列的概念,它指的是数据报文从目的端返回源端时,沿途设备所需要的那条路由。这条路由可以是静态的,也可以是动态的。我们平时说“忘了配回程路由”,通常指的就是“源到目的方向的静态路由配好了,但目的到源方向的静态路由没配”。

我在带学员做实验的时候,最常遇见的情况是这样的:在PC-A上ping PC-B,发现不通。然后大家就去看R1上的路由表,看到有去往PC-B网段的路由,就觉得很奇怪,为什么还是不通过。其实你把数据包想象成一个人出门旅游:从家到景区,你查好了路线图,顺利走到了景区。但是返程的时候,景区没有地图、没有路标,你怎么回去?这就废了。网络设备也是一样的,每个路由器都是独立的“本地地图”,它的路由表只负责自己怎么转发,不负责教会别人怎么转发。所以R1、R2、R3上都必须同时具备去程和回程路由,通信才能建立起来。

具体到实验里,如果PC-A(192.168.1.10)去访问PC-B(192.168.3.10),你需要在R1上配置到达192.168.3.0/24的路由,R2上配置到达192.168.3.0/24和192.168.1.0/24的路由(因为R2在中间,必须两头都知道怎么走),R3上配置到达192.168.1.0/24的路由。很多人漏的就是R3上的这条回程路由。做完实验如果发现PC-A能ping通PC-B的网关192.168.3.1但ping不通PC-B,其实还得考虑PC-B本身网关配置。但在纯路由器互联的实验里,只要各个路由器的接口IP都UP,物理链路是通的,回程路由的配置与否直接决定了端到端业务的通断。

所以我建议你在配置完所有静态路由后,别急着去PC上验证,先在三台路由器上都敲一遍display ip routing-table,看看每台设备有没有完整的路由表。什么算完整?对于这个串行拓扑:

  • R1要有192.168.3.0/24的路由,指向192.168.12.2
  • R2要有192.168.1.0/24的路由,指向192.168.12.1;还要有192.168.3.0/24的路由,指向192.168.23.3
  • R3要有192.168.1.0/24的路由,指向192.168.23.2

一眼看过去,每台设备上该有的条目都在,这时你再去Ping,基本就是一次通的。做实验养成“先看表、再丢包”的习惯,这个习惯会跟着你受益终身。

3. 实操过程与核心环节实现

3.1 eNSP环境搭建和基础配置

打开eNSP,新建拓扑,拖三台AR2220路由器进来,改名字分别为R1、R2、R3。用网线把R1的G0/0/1连到R2的G0/0/0,把R2的G0/0/1连到R3的G0/0/0。然后在R1的G0/0/0接口下接一台PC机(PCA),在R3的G0/0/1接口下接一台PC机(PCB)。如果eNSP版本里设备启动慢,可以右键路由器选择启动,等待设备状态显示为绿色。

点开PC-A的配置界面,填写IP地址192.168.1.10,子网掩码255.255.255.0,网关192.168.1.1。PC-B类似,IP地址192.168.3.10,网关192.168.3.1。

启动完成后,先做基础配置。拿R1举例:

system-view sysname R1 interface GigabitEthernet 0/0/0 ip address 192.168.1.1 255.255.255.0 undo shutdown interface GigabitEthernet 0/0/1 ip address 192.168.12.1 255.255.255.0 undo shutdown

R2上配置:

system-view sysname R2 interface GigabitEthernet 0/0/0 ip address 192.168.12.2 255.255.255.0 undo shutdown interface GigabitEthernet 0/0/1 ip address 192.168.23.2 255.255.255.0 undo shutdown

R3上配置:

system-view sysname R3 interface GigabitEthernet 0/0/0 ip address 192.168.23.3 255.255.255.0 undo shutdown interface GigabitEthernet 0/0/1 ip address 192.168.3.1 255.255.255.0 undo shutdown

这里要单独强调一下undo shutdown。华为AR路由器接口默认是开启的,但在eNSP里如果你用的是某些交换机设备,接口默认是关闭的,你必须手工打开才能通信。养成敲完IP地址顺手敲一条undo shutdown的习惯,能避免很多“明明配置没问题就是不通”的诡异情况。

配置完后,在自己设备上ping对端直连接口看看:

ping 192.168.12.2

如果通了,说明物理链路和接口IP没问题。R2和R3之间同理。这一步是基础中的基础,直连不通,后面一切免谈。

3.2 静态路由配置的完整命令与逐步验证

现在开始配路由。目标很明确:让PC-A能够访问PC-B,同时PC-B也能访问PC-A。你要在脑子里形成一条清晰的数据流路径:PC-A → R1 → R2 → R3 → PC-B,然后原路返回。

先配R1上的去程路由。R1需要到达两个非直连网段:192.168.23.0/24和192.168.3.0/24。但严格来说,如果你要到达的是PC-B的网段192.168.3.0/24,那R1只需要一条路由就行,因为去往PC-B的报文,经过R2的时候,R2会知道怎么走。不过为了让R1的管理员也能管理到R2身后的接口网段,建议把192.168.23.0/24也配上。命令如下:

system-view ip route-static 192.168.3.0 255.255.255.0 192.168.12.2 ip route-static 192.168.23.0 255.255.255.0 192.168.12.2

再看R2。R2是整个链路的核心中转,它需要知道如何到达192.168.1.0/24(PC-A所在网段)以及192.168.3.0/24(PC-B所在网段)。命令是:

ip route-static 192.168.1.0 255.255.255.0 192.168.12.1 ip route-static 192.168.3.0 255.255.255.0 192.168.23.3

最后看R3。R3需要回程路由,让PC-B的响应报文能返回PC-A。命令是:

ip route-static 192.168.1.0 255.255.255.0 192.168.23.2 ip route-static 192.168.12.0 255.255.255.0 192.168.23.2

第二步的192.168.12.0/24纯属为了让R3也能访问R1和R2之间的互联网段,方便排障。有没有这条路由不影响PC-A到PC-B通信,但加上后你从R3去ping 192.168.12.1就能通,对验证有帮助。

配置完成后,分别在三台路由器上执行display ip routing-table,重点看Static路由段。你会发现路由表里除了直连路由(Direct)外,上面配的静态路由都出现在里面。前缀、掩码、下一跳、出接口这些信息都清清楚楚。不要小看这一步,看路由表是网络工程师的基本功,很多问题都是在路由表里浮出水面的。

然后到PC-A上,打开命令行,输入:

ping 192.168.3.10

如果一切正常,你会看到Reply from 192.168.3.10: bytes=32 time=xx ms TTL=xx这样的回显。我提前跟你说,第一次做实验如果不能一次通,太正常了。关键是你得会排查。

3.3 用环回口模拟网段的扩展实验

上面这个实验里,终端PC是直接用路由器接口下挂的。但如果你想学习更常见的网络架构,可以用环回接口(Loopback)在路由器上模拟一个终端网段。比如R1上创建一个环回口:

interface LoopBack 0 ip address 10.1.1.1 255.255.255.255

然后把R1的G0/0/0接口配到一个仅连接R2的互联网段上。这样的好处是:你可以在R1上用ping -a 10.1.1.1 192.168.3.10指定源地址去测试,非常灵活。环回口是一种逻辑接口,只要设备不宕机它就一直UP,不会因为物理链路断开而消失,所以常用来模拟业务网段或者作为Router ID。

综合实验里我建议你加一步:把R3的环回口配置为192.168.100.1/32,然后在R1上写一条指向它的静态路由,下一跳仍然是R2。命令:

ip route-static 192.168.100.1 255.255.255.255 192.168.12.2

路由表里,这条静态路由的目的地址是一个主机地址,掩码32位,表示去往这一台主机。这种写法在实际工作中经常用来给某个特定服务器或者设备单独指路由,比如两个网络有重叠地址的时候,可以用32位主机路由去精确定位到某一台机器上。懂了这个,你对静态路由的灵活掌握就又上了一个台阶。

3.4 删除静态路由和修改路由参数

有些同学会问,配错了怎么删除?热搜词里也有“route 删除静态路由”。华为设备删除静态路由的命令很简单:

undo ip route-static 192.168.3.0 255.255.255.0 192.168.12.2

在系统视图下执行,后面跟着你原先配置的完整命令参数即可。如果你忘了自己配了啥,先执行display ip routing-table protocol static查看所有静态路由条目,对照着删除。

需要注意的是:删除静态路由时,目的网段、掩码、下一跳必须和原来配置完全一致,否则设备会提示错误。比如你原来写的是ip route-static 192.168.3.0 24 192.168.12.2,删除时也必须写成一样的格式。如果只是想临时让某条路由失效,而不是彻底删除,还有一招:配置一条相同目的网段的静态路由,但把它的优先级调成比现有路由更大,比如250。这样设备会认为这条路由的优先级更低,不会放入路由表,原来的路由条目虽然还在,但实际转发的还是更优的那条。不过这种方式有点绕着走,我更推荐直接用undo删除重配,最干脆。

还有一种常用操作是清空某台设备上所有的静态路由。华为设备没有直接清空静态路由的命令,你可以批量一条条undo,也可以用reset ip route-static all这个命令在用户视图下清除整个路由表。注意这个命令是删除所有路由包括直连路由,会影响所有通信,生产环境绝对不要随便敲,实验环境倒是无所谓。

再说一个我自己踩过的坑。曾经给一台新路由器配静态路由,命令敲完了display ip routing-table里也看到了,但对端就是ping不通。后来排查了半天,发现是命令里的掩码写错了。我想去的是10.0.0.0/8网段,手一抖写成了255.255.255.0,等于只精确匹配了10.0.0.0/24这一个网段,业务流量根本匹配不到这条路由。所以配置静态路由一定要反复核对掩码,尤其是用十进制掩码而不是用前缀长度表示的时候,更容易错。

4. 常见问题与排查技巧实录

4.1 ping不通时,按什么顺序排查

做静态路由实验,最大的乐趣就是排障。你要是问一个老工程师,多半会给你一套循规蹈矩的排查流程,因为这套流程是从无数次故障里总结出来的。我自己在实验里,当PC-A ping PC-B不通时,排查顺序是这样的:

先检查物理链路线缆和接口状态。在路由器上执行display interface brief,看所有接口的状态是不是UP。如果显示DOWN,多半是线缆没插好,或者对端接口shutdown了。别笑,我见过太多学员辛辛苦苦配了一堆命令,最后发现PC的网线没连到路由器的正确接口上。

再检查直连网段的连通性。R1 ping 192.168.12.2,R2 ping 192.168.23.3,R3 ping 192.168.3.10,这些直连之间要保证全通。如果这里就断了,先解决基础问题。

直连全通后,开始逐跳ping。在R1上ping 192.168.23.3,如果通了,说明R1到R2后面这段没问题;如果R3能ping通,说明R3的去向也没问题。然后R1上ping 192.168.3.10(PC-B),这里如果通了,说明正向路由成功。最后回程还不好说,回到PC-A上ping PC-B做最终验证。

很多问题出现在“R1能ping通192.168.3.10,但PC-A ping不通PC-B”这种场景。这种情况十有八九是网关或者回程路由的问题。你想想看,R1是路由设备,它发出的报文源地址是路由器的接口IP,而PC-A发出的报文源地址是192.168.1.10。如果R3上没有去往192.168.1.0/24回程路由,R1自己带源去ping没问题(它用的是接口地址,R3上如果有去往192.168.12.0/24这类路由就能回来),但PC-A的流量回来就没人管了。所以测试端到端业务,一定要从终端PC发起,不要图省事在路由器上敲ping就以为万事大吉。

4.2 最容易忽略的“直连路由被覆盖”现象

还有一个比较隐蔽的坑是路由条目的匹配顺序。路由表在查找时遵循“最长匹配原则”,就是说目的IP地址被路由表里掩码最长的那个条目匹配。如果你在R1上写了一条默认路由0.0.0.0/0指向192.168.12.2,又写了一直精确路由192.168.3.0/24也指向192.168.12.2,那访问192.168.3.10的报文会优先匹配精确路由,因为它的掩码更长。如果没有精确路由,才匹配默认路由。

在这个综合实验里,如果你把R1上的路由都写成默认路由,也不是不能通,但排障时会变得麻烦。尤其是你后续在R1上还想加一个去往别的网段的精确路由,默认路由和精确路由之间会不会冲突?这得先在脑子里过一遍。最长匹配原则是路由协议里的基石,静态路由实验虽然不直接考你这条原则,但你要是能结合实验现象把它理解透了,后面学ACL、学策略路由都会顺风顺水。

另外,注意一下路由优先级。华为设备里,直连路由优先级是0,静态路由默认优先级是60,动态路由有的更高。如果你在某个网段既直连又配了静态路由,那查表时优先使用直连路由。有时候你发现配了静态路由却不生效,可以先查一下是不是这个目的网段本身就是设备的直连网段。这种情况通常出现在你试图用静态路由覆盖直连路由时,此时你需要调整静态路由的优先级,让它小于直连路由的0才有机会被优选。不过说实话,现实中这么干的人很少,也没必要。

4.3 抓包定位法:从ARP和ICMP现象反推问题

如果静态路由配置看着没问题,Ping又死活不通,还有一个杀手锏:在eNSP里使用“报文抓包”功能。这个功能真的被很多人忽略了,但实际上排障效率奇高。在拓扑图上右键点击连接R1和R2的链路,选择“数据抓包”,然后在PC-A上再次发起ping。你会看到报文从PC-A发出去后,经过R1转发时的MAC地址变化、IP地址不变的过程。

这里我展开讲一讲报文的转发细节。PC-A发出一个ICMP Echo Request报文,源IP是192.168.1.10,目的IP是192.168.3.10,源MAC是PC-A自己的MAC,目的MAC是网关R1的G0/0/0接口MAC。R1收到之后,查路由表发现去往192.168.3.0/24网段要走下一跳192.168.12.2,于是把报文的源MAC改成R1的G0/0/1接口MAC,目的MAC改成R2的G0/0/0接口MAC,源IP和目的IP保持不动,然后从G0/0/1接口发出去。这就是“路由是三层转发、二层重封装”的本质。抓包看到这一层,你对网络的理解又扎实了一分。

如果你发现报文到了R2就再无下文,那就是R2的路由表有问题;如果R3收到了报文但回包不知所措,那就是回程路由的问题。抓包能让你把故障精确卡在某一台设备、甚至某一个接口上,比瞎猜强得多。做实验的时候不要怕麻烦,多抓几次包,把每一跳的报文都看一遍,以后在真实环境里排障你会淡定很多。

4.4 静态路由的优先级、度量值和管理距离记忆

最后再补充一个高频考点:华为设备里各类路由的优先级(管理距离默认值)。虽然不同厂商叫法不同,思科叫管理距离,华为叫路由优先级(Preference),含义是一样的:数值越小、路由越优。华为设备常用默认值如下:

路由协议类型默认优先级
直连路由0
OSPF10
静态路由60
RIP100
BGP255

静态路由的优先级是60,这意味什么?意味着如果同一台设备上同时配置了OSPF去往某个网段和静态路由去往同一个网段,华为设备会优先选OSPF的路由(因为10比60小)。但是在实际工程里,很多人希望静态路由更优先(比如静态路由指的主用专线,OSPF是指的备份链路),那就要通过preference参数手动调整。这也是我们前面讲浮动静态路由时设置优先级80的原因。你把这些默认值记熟了,看路由表的时候就不会对“为什么这条路由没有出现在优选路径里”感到困惑。

除了优先级,还有一个概念叫度量值(Metric),华为静态路由的度量值默认是0,它只在同协议的多个路由之间比较。比如两条静态路由去往同一个网段,优先级相同,谁优选的判定标准就变成了度量值,你可以在配置静态路由时通过nexthop后面的参数去指定。但在静态路由里,度量值的作用远没有动态协议里那么大,更多时候我们依靠优先级来控制系统选路。

4.5 做一个“半成品”实验来加深印象

最后教大家一个我在培训时很喜欢用的学习方法:故意做坏一个实验。怎么操作?在你配置完所有静态路由、PC也ping通之后,回到R3上把回程路由删掉:

undo ip route-static 192.168.1.0 255.255.255.0 192.168.23.2

然后在PC-A上再ping一次PC-B。你会发现现象可能比较有意思:有的系统第一次ping就没有响应,有的系统前几个包通了后面就断了。原因在于PC-B在收到请求后,它的响应报文到达R3,R3查路由表发现没有去往192.168.1.0/24的路由,直接丢弃。你抓包的话,能看到PC-B一直在发ICMP Echo Reply,但R3根本不转发。看完这个现象,你就能切身理解“回程路由到底重不重要”。

重复这种“坏实验”,比做一百遍正确实验都管用。它让你的大脑把“路由缺失”和“现象不通”这两件事情强关联起来,以后在工作中遇到类似问题,你会条件反射般地去查回程路由。这是我个人非常推崇的学习方法,分享给大家。

这个静态路由综合实验,我建议你至少做三遍。第一遍照着教程敲,先把命令跑通。第二遍不看教程,自己在纸上画拓扑、写IP规划、配置命令,做完整一遍。第三遍换一种拓扑结构,比如把三台路由器改成三角形互联,在中间加两条链路做等价路由或者浮动静态路由,这时候你会对静态路由的选路规则理解得更加透彻。

从我带了这么多届新人的经验看,凡是能把静态路由实验做到这个程度的,后面学OSPF基本一学一个准。因为路由协议最核心的东西——路由表、下一跳、出接口、优先级、回程——你已经在静态路由实验里全部揉碎了消化完了。剩下的不过是给这些核心概念套上不同的协议外壳而已。所以别嫌这个实验基础,基础打得牢,楼才能盖得高。

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

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

立即咨询