☰
路由引入与种子度量值:OSPF/RIP双向引入综合实验详解
2026/10/22 4:49:51 网站建设 项目流程

1. 路由引入到底是什么,以及这个综合实验的练习价值

先给刚接触路由引入的朋友说句实在话:很多人在某个认证级别阶段,静态、OSPF、RIP都单独跑得很溜,OSPF邻居能建立、RIP路由能互相学习、静态路由也能写,但一遇到多协议共存就蒙了。原因很简单——单协议环境里,路由协议自己跟自己玩,只需要遵守一套规则;多协议环境里,每一套规则都在同时运转,你必须知道它们在什么时机、以什么条件、用什么样的"身份"把对方的路由接纳进来,这就是路由引入(Route Import / Route Redistribution)的核心命题。

单说OSPF,它是链路状态协议,算的是SPF最短路径树;单说RIP,它是距离矢量协议,算的是跳数。你把OSPF学到的路由"塞"给RIP,RIP不关心SPF树,它只关心"到这条路由需要几跳"——那么这条路由进入RIP网络的时候,初始跳数算几跳?同样的道理,OSPF把RIP学来的路由"塞"进自己的链路状态数据库时,那条路由的外部度量值(Metric)初始又是多少?这两个初始值,就是这个实验标题里的重点词:种子度量值(Seed Metric)。它可以理解为一条外部路由进入新协议时,新协议给它的"初始身份标签"。理解了这个,后面的配置才有意义。

这个综合实验的价值在于:它把静态、直连、OSPF、RIP四种路由来源放在同一个拓扑里,要求你在不同协议边界上做路由引入,并通过种子度量值控制路由的"身价",最终让全网路由互通,同时避免回程路由缺失或者环路。练的不是某一条命令,而是从"协议思维"切换到"路由表思维"——不管中间有多少协议,最终决定转发的是路由表,而路由引入恰好是"让路由表变得完整"的那道工序。

2. 种子度量值机制拆解:外部路由的"初始身价"是怎么定的

2.1 种子度量值为什么是路由引入的第一个关卡

路由协议之间互相"介绍"路由的时候,新协议根本不认识这条路由原来的度量值含义。比如OSPF的Cost基于带宽计算,RIP的Metric基于跳数计算,两者单位都不一样,没法直接换算。所以规定:外部路由进入新协议时,新协议给它一个初始度量值,这个初始值就是种子度量值。

多数协议对种子度量值有默认值,但默认值往往不代表"合理值":

  • OSPF引入外部路由:默认种子度量值为1,类型默认为OE2。也就是说,OSPF把外部路由当成"外部类型2",初始Cost就是1,不随链路开销累加(OE2只算外部度量本身,OSPF域内路径开销不累加;OE1则会在进入OSPF域后累加内部Cost)。
  • RIP引入外部路由:默认种子度量值为0。RIP的度量是跳数,0意味着"就在直连网段旁边",这在RIP里是个反直觉的设定——你引入一条远在千里之外的静态路由,初始跳数却是0,等于骗了RIP。
  • IS-IS引入外部路由:默认种子度量值为0。
  • 直连路由引入:某些场景下会把直连路由直接引入协议,种子度量值同样遵循上述协议默认值,但通常直连路由不需要做引入,协议直接宣告即可。本实验里单独提直连,是为了让你理解"哪些路由需要引入、哪些不需要"。

这个"默认值不合理"的问题,直接导致一个经典现象:OSPF引入RIP路由时,如果只写一条简单的import-route rip,所有被引入的路由Cost全是1;RIP引入OSPF路由时,如果不管种子度量值,所有被引入的路由跳数全是0。前者会让路由选路失真,后者会让RIP域内出现"虚假最优路径"。所以只要做路由引入,第一件事就是问自己:新协议给的初始值,符合这条路由的真实"距离"吗?

2.2 种子度量值在不同协议里的生效规则

先把几个实践中最常用的规则列出来,方便对照:

协议引入命令默认种子度量值调整方式注意事项
OSPFimport-route rip1(类型OE2)import-route rip cost 10 type 1默认OE2只算外部度量,外部Cost相同则路径选路看内部Cost,但OE2不累加内部Cost
RIPimport-route ospf0(跳数)import-route ospf metric 3必须显式设置,否则跳数为0,整网选路会出大问题
OSPFimport-route static1(类型OE2)import-route static cost 5静态路由无协议开销概念,必须给合理Cost
RIPimport-route static0(跳数)import-route static metric 2同上

在华为eNSP里,种子度量值命令通常写作metric参数,不同协议位置不同,OSPF的引入命令里叫cost,RIP的引入命令里叫metric,这个命名差异也容易坑人——我自己就在实验里把RIP的metric参数填到OSPF的cost字段里,结果设备直接报错,语法都过不了。

再补一个细节:OSPF引入外部路由时,type 1(OE1)和type 2(OE2)的种子度量值含义不同。OE2的Cost不累加OSPF域内开销,所以你设置cost 10,整条路由在OSPF域内的外部Cost就一直是10;OE1的Cost会累加,路由器计算开销是"外部Cost + 到ASBR的内部开销"。多数实验保持默认OE2即可,但如果你希望外部路由的选路能"感知"OSPF域内的路径长度,就要用OE1。种子度量值不是孤立的数字,它的计算方式影响最终选路,必须连着类型一起看。

2.3 直连路由、静态路由、动态协议:三种来源的引入差异

本实验的标题明确列出"静态、直连、OSPF、RIP",其中直连路由是最特殊的一类,因为直连路由通常不需要"引入"——直连接口一旦配置IP并启用,路由器自己就会产生直连路由。那为什么要在引入实验里单独提直连?

因为实践中有一个经典操作:把直连路由引入到动态协议里。比如我有一台路由器,接口是物理直连某个网段,但我希望OSPF域内的其他设备也能学到这个网段,而我又不想把接口加进OSPF的network宣告里——这么做有时候是为了避免OSPF在某个接口上建立邻居,有时候是为了把非OSPF接口的网段通告给全网。这时候可以用import-route direct,直连路由以外部路由身份进入OSPF。

但这里有个非常隐蔽的坑:直连路由进入OSPF后,它是外部路由,不是OSPF内部路由(Inter-area或者Intra-area)。两者的区别在于:外部路由不会参与SPF计算(至少不会作为链路状态参与),它的传递依赖ASBR的Type 5 LSA(或者NSSA场景下的Type 7 LSA)。这意味着如果某个区域是Stub区域,外部路由默认不进入Stub区域。所以"直连引入"并不是简单的"让全网学到",还牵扯到区域类型限制。

静态路由引入也有个容易混淆的地方。静态路由本身在路由表里是存在的,你不做引入,它只在本地路由器上生效;一旦做的引入,它变成"外部路由"进入OSPF或者RIP,其他路由器才能从协议角度学到这条静态路由。也就是说,引入动作解决的是"传播"问题,不是"生成"问题。静态路由已经在本地生成了,引入只是让它被协议传递出去。

3. 综合实验拓扑设计与需求分析:先把网络"画明白"再动手

3.1 拓扑选型:三台设备起底,四台设备更完整

这个实验我自己在eNSP里至少跑过三四种拓扑变体,最推荐的是四台路由器组成的环形/链形混合结构,因为三台设备虽然能跑通基本引入,但没法把"OSPF域内选路"和"RIP域内选路"的差异体现出来。推荐拓扑如下:

  • R1、R2、R3组成一个三角形,R1和R2之间、R2和R3之间跑OSPF,区域0;
  • R3和R4之间跑RIP;
  • R1上配置一条静态路由指向模拟外部网络的网段(比如R1的Loopback 1,网段10.1.1.0/24,通过ip route-static指向NULL0或者下一跳给R1的某个直连接口);
  • R4上有Loopback网段(比如172.16.1.0/24),作为RIP域内的末端网络。

为什么这么设计?因为实验目标要覆盖"静态、直连、OSPF、RIP的路由引入",单向引入只能验证"OSPF域能学到RIP域的路由"或者反之,双向引入才能验证"两个协议域互相能学到对方的路由"。拓扑里给出的天然边界就是R3:左边是OSPF世界,右边是RIP世界,R3是ASBR(对OSPF而言)也是边界路由器(对RIP而言),所有引入操作都集中在R3上。R1的静态路由则上挂外部网段,演示"协议域之外的路由来源"如何被引进来。

如果你只想快速验证种子度量值,三台设备也能做:R1和R2之间OSPF,R2和R3之间RIP,R2做双向引入。但四台设备的好处是:你能在R2(OSPF域内非ASBR)上观察引入路由的传递,而三台设备里R2既是OSPF路由器又是ASBR,现象混在一起,不利于理解"外部路由从ASBR扩散到整个OSPF域"的过程。

3.2 地址规划与协议部署要点

地址规划建议直接用简单清晰的网段,别搞花里胡哨的VLSM,实验里越简单越不容易错:

设备接口IP地址协议
R1GE 0/0/010.0.12.1/24OSPF区域0
R1Loopback 01.1.1.1/32OSPF区域0(宣告)
R1Loopback 110.1.1.1/24静态引入源
R2GE 0/0/010.0.12.2/24OSPF区域0
R2GE 0/0/110.0.23.2/24OSPF区域0
R3GE 0/0/110.0.23.3/24OSPF区域0
R3GE 0/0/010.0.34.3/24RIP
R4GE 0/0/010.0.34.4/24RIP
R4Loopback 04.4.4.4/32RIP(宣告)

OSPF配置的核心是network宣告,RIP配置的核心也是network宣告,但是注意:RIP的network宣告使用的是主类网络号。比如R3的10.0.34.3/24,在RIP里要写成network 10.0.0.0,如果你按照OSPF的习惯写成network 10.0.34.0,华为设备会提示掩码不匹配,RIP根本不接受子网掩码。这是很多做过OSPF再来学RIP的人必踩的坑,我当年也在这里卡了十分钟,一直怀疑是邻居关系没起来,结果问题只是宣告网段格式错了。

拓扑规划还有个细节:R1的Loopback 1(10.1.1.1/24)是用来做静态路由引入的。在R1上写一条ip route-static 10.1.1.0 255.255.255.0 NULL0,让路由器认为自己有一条指向外部网段的静态路由。注意,NULL0是黑洞接口,目的是让这条静态路由"看起来存在",又不依赖真实物理接口。你甚至可以把NULL0改成Loopback 1的直连网段再写路由,效果等同,NULL0更简洁。

3.3 实验目标列表:动手前先把验证标准写清楚

做实验最忌讳的是"配完看都不看就说通了"。我在做路由引入实验前,会给每个验证点写一个预期结果,配完一项核对一项:

  • 全网OSPF邻居和RIP邻居都达到Full/Established状态;
  • R1能ping通R4的Loopback 4.4.4.4,R4能ping通R1的Loopback 1.1.1.1;
  • R3上通过display ip routing-table能看到OSPF、RIP、Static三种来源的路由条目;
  • R2上能看到外部路由条目,协议类型显示为O_ASE(OSPF外部路由),而不是OSPF内部路由的O_IA或直连的Direct;
  • 把R3上引入命令的种子度量值改大改小,观察R2路由表里外部路由的Cost变化,理解种子度量值对选路的影响。

这几个验证点,每一个都对应一个知识点,最终目标不是"全网通",而是你能指着路由表里任何一条路由,说出它是怎么来的、为什么是这个度量值、经过哪些协议转换。能做到这一步,这个实验才算真正做完。

4. eNSP实操配置全流程:从零敲到全网互通

4.1 基础配置:接口、OSPF、RIP的初始化

先把所有设备的接口IP配好,这一步不用动脑,但必须检查。在eNSP里命令行输入system-view进入系统视图,逐台配置:

# R1 基础配置 sysname R1 interface GigabitEthernet 0/0/0 ip address 10.0.12.1 255.255.255.0 undo shutdown interface LoopBack 0 ip address 1.1.1.1 255.255.255.255 interface LoopBack 1 ip address 10.1.1.1 255.255.255.0

R2、R3、R4按地址规划表配好。这里想多说一句:eNSP里接口的shutdown状态经常被忽略。新建拓扑拖出来的路由器,接口默认是up的,但如果你之前做过其他实验,可能残留了shutdown配置。配完IP后用display interface brief批量检查,看到接口状态是up才继续。

然后是OSPF和RIP的基础部署,以R2为例:

# R2 OSPF配置 ospf 1 router-id 2.2.2.2 area 0 network 10.0.12.0 0.0.0.255 network 10.0.23.0 0.0.0.255

R3同时配置OSPF和RIP,注意R3的OSPF宣告10.0.23.0,RIP宣告10.0.0.0(主类):

# R3 OSPF配置 ospf 1 router-id 3.3.3.3 area 0 network 10.0.23.0 0.0.0.255 # R3 RIP配置 rip 1 version 2 network 10.0.0.0

R4的RIP宣告10.0.0.0(包括Loopback 4.4.4.4所在的4.0.0.0主类网络,以及10.0.34.0网段)。这里特别提醒:RIP version 2必须显式指定,华为设备默认RIP版本是RIPv1,而RIPv1不支持VLSM和CIDR,如果R3配了version 2而R4没配,两边hello报文版本不一致,邻居建立不起来。检查版本兼容是RIP排错的第一步。

配完基础协议后,先验证一下:R1和R2、R2和R3之间OSPF邻居应该Full,R3和R4之间RIP邻居应该Established。如果这一步都没通,后面的路由引入就是无源之水,先回头查接口状态和宣告网段。

4.2 静态路由引入:把"本地静态"变成"全网可达"

R1上配置静态路由指向外部网段,这里直接使用黑洞接口路由:

# R1 配置静态路由 ip route-static 10.1.1.0 255.255.255.0 NULL0

这条静态路由配置后,R1的路由表里会出现10.1.1.0/24的Static路由。但注意,OSPF不会自动知道这条路由,需要在R1的OSPF进程里做静态引入:

# R1 把静态路由引入OSPF ospf 1 import-route static

默认情况下,这条静态路由会被引入为OSPF外部路由,Cost为1,类型为OE2。可以在R2上查看效果:

display ip routing-table 10.1.1.0

你会看到路由表里出现一条O_ASE路由,Cost为1。如果想让这条外部路由在OSPF域内更"合理",比如让所有OSPF路由器知道外部网段距离ASBR(R1)有一点距离,可以设置显式度量值:

# R1 引入静态路由并设置外部Cost为50 ospf 1 import-route static cost 50 type 1

设成type 1(OE1)之后,R2上看到的Cost就不再是固定的50,而是50加上R2到R1的OSPF内部Cost。这就是之前讲过的种子度量值计算方式差异,在这条命令里能直观看到。

4.3 OSPF与RIP双向引入:R3上的关键配置

这个实验的重点是R3,它同时运行OSPF和RIP,要在两个协议之间做双向引入。先做OSPF引入RIP:

# R3 OSPF引入RIP ospf 1 import-route rip

这条命令会把R3从RIP学到的所有路由(包括10.0.34.0和4.4.4.4/32)引入OSPF。引入后,这些路由在OSPF域内变成外部路由,默认Cost为1。这时候你ssh到R1,display ip routing-table 4.4.4.4,能看到一条O_ASE路由,Cost为1,优先级为150。R1能ping通4.4.4.4吗?能,因为路由已经传过来了。

但是注意,此时从R1到4.4.4.4的Cost是1吗?如果R1和R4之间的链路全部算进去,实际路径是R1-R2-R3-R4,经过三段物理链路。但OE2不累加内部Cost,所以R1看到的外部路由Cost就是R3引入时设置的种子度量值1。这个现象在路由表里看起来"不真实",但OE2的设计初衷就是"外部开销占主导,内部路径长度无关紧要"。如果想让它累加内部开销,必须用import-route rip cost 1 type 1改为OE1。

再做RIP引入OSPF,这才是最容易出问题的方向:

# R3 RIP引入OSPF rip 1 import-route ospf 1

如果不指定metric,默认种子度量值为0。R3会把从OSPF学到的路由(包括10.0.12.0、1.1.1.1/32、10.1.1.0/24等)引入RIP,跳数初始为0。R4收到这些路由后,会认为"哦,到这些网段只需要0跳",然后向自己的邻居继续通告时跳数变成1。路由可达性没问题,但RIP域内选路完全失真——比如R4如果还有别的出口,它可能因为"0跳"的假象错误选择最差路径。

正确的做法是指定合理种子度量值。RIP是逐跳累加的,通常建议设置2~3的初始值,这样经过一个RIP路由器后跳数变成3~4,符合"这些路由确实来自其他协议域"的直觉:

# R3 RIP引入OSPF并设置种子度量值为3 rip 1 import-route ospf 1 metric 3

R4的路由表里,1.1.1.1/32和10.1.1.0/24这些路由的Metric会变成3,而10.0.34.0直连网段和RIP域内路由的Metric保持原始值(直连为0、RIP学习为1)。这个对比非常直观地展示了种子度量值的作用:你设置的初始值,直接决定了外部路由在其他协议的"距离起点"。

4.4 直连路由引入:有些场景你逃不掉

虽然直连路由本来就在路由表里,但实践中"把直连引入动态协议"的需求很常见。本实验里可以在R3上做一次直连引入,观察效果:

# R3 把直连路由引入RIP(仅为观察效果,实验后删除) rip 1 import-route direct

执行后,R4会收到10.0.23.0/24这个网段的路由,来源显示为RIP,Metric为0(RIP默认种子度量值)。注意,10.0.23.0/24其实是R3的OSPF接口网段,正常情况下RIP域不需要知道这个路由,因为R4去往OSPF域会通过默认路由或者引入路由完成。之所以做这个操作,是为了让你观察一个现象:直连路由一旦被引入,它在目标协议里也成了"外部路由",在R4上看到的它是RIP路由,而不是OSPF路由。

华为文档里对这个场景有个官方建议:尽量通过network宣告来传播直连网段,而不是用import-route direct,因为后者会造成路由表里出现本可以通过协议内部宣告就直接传播的冗余外部路由。但有些场景下,路由器的某个接口不能加入OSPF(比如和第三方设备对接、接口属于特殊业务网段),这时候必须用import-route direct。这属于"不得不用"的情况,本实验只做理解,不推荐在生产环境滥用。

直连引入的种子度量值调整同样通过metric参数控制,和RIP引入其他协议一致。OSPF引入直连则用cost参数。注意OSPF里直连引入的默认值为1,如果你把一条直连网段引入OSPF,所有OSPF路由器都会认为这条外部路由Cost为1,等于"ASBR自己家门口就是目的地",实际情况可能完全不是这样。

5. 验证与排错:路由表里的真相与那些"看似通了其实没通"的坑

5.1 验证思路:从协议邻居、路由表、Ping、tracert四层推进

路由引入做完之后,验证绝不能只停留在"能ping通就行",因为很多坑是ping通了也发现不了的。我的验证顺序如下:

第一步看协议邻居。display ospf peer检查OSPF邻居是否Full,display rip neighbor检查RIP邻居是否Established。邻居不正常的,后续路由引入一定有问题。

第二步看路由表。在R1上执行display ip routing-table,至少应该看到以下类型的路由:

  • Direct和Static:本地路由;
  • OSPF:10.0.23.0/24的O路由、1.1.1.1/32的O路由;
  • O_ASE:外部网段10.1.1.0/24、RIP域的4.4.4.4/32和10.0.34.0/24。

在R4上执行同样命令,应该看到RIP学习到的OSPF域路由,包括1.1.1.1/32、10.0.12.0/24、10.1.1.0/24,Metric应该是3(我们设置的种子度量值),而不是0。

第三步双向ping。R1 ping R4的Loopback(4.4.4.4),R4 ping R1的Loopback(1.1.1.1)。注意:R1 ping 4.4.4.4走的是R1-R2-R3-R4路径,回程必须依赖R3把OSPF外部路由引入RIP,如果R3只做了OSPF引入RIP没做RIP引入OSPF,R4根本没有去往1.1.1.1的路由,ping就会超时。这就是路由引入的方向性问题,很多人只配置了单向引入,然后发现"能去不能回",一脸茫然。

第四步tracert。tracert 4.4.4.4能确认实际转发路径。如果出现路径环回,比如R1的流量到了R3又弹回R2,说明路由表里存在环路,通常是因为双向引入时没有做过滤,把本协议域的路由又引了回去。本实验拓扑简单,环路概率低,但tracert仍然是验证路由引入正确性的最直观手段——它能告诉你"路由表认为"和"实际转发"是否一致。

5.2 经典故障一:RIP域看不到OSPF引入的路由,或Metric全是0

先说现象:配置了rip 1 import-route ospf 1,但R4的路由表里没有OSPF域的路由;或者有,但Metric显示为0,怎么看怎么不对劲。

没有OSPF域路由的排查思路,按顺序来:

第一,确认R3的RIP进程有没有启用import-route ospf 1,注意ospf进程号必须与R3的OSPF进程号一致,如果写错进程号,命令不报错但实际引入不了。执行display current-configuration configuration rip检查。

第二,确认OSPF域里有哪些路由被R3学到。display ospf routing看R3的OSPF路由表,如果R3自己都没有这些路由,它无从引给RIP。这一步很多人会跳过去直接怀疑RIP,其实问题可能出在OSPF邻居或者OSPF宣告上。

第三,确认RIP没有开启其他过滤。华为RIP里可以配置filter-policy,如果之前实验残留了过滤策略,即使引入命令生效,路由也可能被过滤掉。排查时直接看display rip 1 route,确认R3本地RIP路由表里有没有这些引入路由。

Metric为0的情况则是种子度量值没设。解决很简单:给引入命令加metric 3。但这里有个细节:如果你先配了import-route ospf 1 metric 3,再查看R4的RIP路由表,Metric应该是3;但R4再往它的下游通告时,会变成4。跳数在RIP里是逐跳累加的,种子度量值只是起点,后面的每一跳都会加1。这符合RIP的距离矢量本质。

5.3 经典故障二:OSPF域看到外部路由,但Cost异常或者选路不符合预期

另一个高频问题是:R1上能看到RIP域的外部路由(O_ASE),但Cost全是1,而且无论路径长短都一样。这个现象前面解释过,OE2不累加内部Cost。如果你希望外部路由体现出"R1到R3有多远",必须用type 1。

实操里用一个小例子说明:假设R1-R2和R2-R3之间各是千兆链路,OSPF Cost为1,R1到R3的内部Cost就是2。如果R3引入RIP路由时设置cost 10 type 1,R1看到的外部路由Cost是12(10外部+2内部),R2看到的是11(10外部+1内部)。这时如果RIP域还有另一个ASBR,R1会综合"外部Cost+内部Cost"选择最优路径,选路就符合直觉了。

如果保持cost 10 type 2,R1和R2看到的外部Cost都是10,完全一样。此时R1到RIP域如果存在两条等价路径(比如拓扑里再加一个R5做双点引入),OE2只能靠内部Cost区分,外部Cost相同的情况下选内部Cost小者;但如果外部Cost本身不同(比如两个ASBR设置了不同的cost),OE2就会直接选择外部Cost小的那一条,完全不看内部路径长短。这个选路逻辑,很多人学到CCNP级别都搞混,其实核心就一句话:OE2先比外部Cost,外部Cost相同再比内部Cost;OE1是外部Cost+内部Cost的和参与比较。

5.4 经典故障三:环路与回程问题

双向引入的路由引入场景里,最危险的坑是环路。本实验只有一台ASBR(R3),环路概率低,但你得理解原理,因为生产环境几乎都是双点双向引入。

假设有R3和R5两台设备同时做OSPF和RIP的双向引入。R3把RIP域路由引入OSPF,R5也把RIP域路由引入OSPF,同时R3又把OSPF域路由引入RIP、R5也做同样的操作——那么RIP域里会出现"OSPF引入回来的RIP路由",OSPF域里也会出现"RIP引入回来的OSPF路由"。如果不做任何控制,路由会反复横跳,甚至在路由表里形成环路。

本实验里可以做一个简化模拟:在R3上配置RIP引入OSPF之后,再把这条引入命令反过来配一遍,即双向都做之后,注意观察R3的路由表。你会发现R3从RIP学到的路由里有OSPF域的路由(比如1.1.1.1的RIP版本),从OSPF学到的路由里有RIP域的路由(比如4.4.4.4的OSPF版本)。这两条路由并存,但因为它们是不同优先级(OSPF优先级10/150,RIP优先级100),R3选路时优先选择OSPF或直连,不会立即形成环路。但如果哪天OSPF邻居断开,R3可能会临时使用RIP学到的1.1.1.1路由,下一跳指向R4,而R4又会把流量送回R3,环路就产生了。

防环的常规手段是路由过滤,在ASBR上通过filter-policy、acl或者route-policy控制引入的路由方向。本实验拓扑简单不建议过度设计,但你必须知道:做路由引入,只做必要方向、明确过滤范围,是防止实验"成功"变"事故"的底线。

6. 经验总结:跑通之后的进阶思考与生产环境注意事项

把实验跑通之后,有几个从"会配置"到"会设计"的问题值得多想一层。

第一个是优先级和管理距离。不同路由来源的优先级不同,华为设备默认:直连0、OSPF 10、静态60、RIP 100。做路由引入时,协议优先级决定了同一前缀多条路由并存时的胜出者。比如R3从RIP学到了4.4.4.4(RIP优先级100),同时OSPF也把4.4.4.4引了回来(O_ASE优先级150),两个协议都认为自己是"正确路径",但R3会优先生效优先级更低的RIP路由。路由引入的本质是"制造同前缀多来源",你怎么控制最终路由表里的胜出者,比单纯配置引入命令更重要。

第二个是路由回灌问题。用一句话概括:不要把从协议A引入来的路由再引入回协议A。R3从RIP学到了4.4.4.4,你把这条路由又通过OSPF引入RIP再通告给R4,R4收到一条"RIP域内自己产生的网段被外部引入回来了"的路由,这在复杂拓扑里就是环路催化剂。本实验里R3把OSPF域路由引入RIP,其中不应该包含RIP域自己的路由——华为设备在进行import-route时,默认不会引入通过相同协议进程学习到的路由,但如果你在同一个RIP进程里做了直接引入和OSPF引入,直连接口网段和RIP域内路由的边界要心里有数。

第三个是eNSP实操里的一些小技巧。

  • 实验前先undo terminal monitor,避免日志刷屏干扰命令行操作;
  • 配置完成后save保存快照,做破坏性实验前先保存一份,方便回滚;
  • eNSP的RIP协议报文交互比较慢,有时候配置完neighbor不会立刻Established,等几秒再查;
  • 改完引入配置后,reset ospf process和reset rip process可以快速重建协议链路,比干等收敛快得多。注意这两个命令会短暂中断业务,实验环境无所谓,生产环境慎用。

第四个是种子度量值在生产中的实际意义。很多工程师在配置路由引入时最常问的一句话是:"这个metric到底填多少合适?"我的经验是:先弄明白目标协议的度量值含义,再结合外部路由的"真实距离"去填。RIP填跳数,你就数一下从ASBR到目标网段经过几台路由器,填一个比这个数稍大的初始值;OSPF填Cost,你就看链路带宽折算,填一个和真实链路开销同量级的数值。比如外部网段在ASBR旁边,OSPF引入就填1~10;外部网段在好几跳之外,就填几十甚至几百。填完之后用display ip routing-table观察选路结果,反过来验证数值是否合理。

最后说一个我一直强调的实践习惯:做完一个实验,把路由表导出来,逐条分析每一行路由的来源、优先级、度量值、下一跳。很多人在实验里只看"通没通",不看路由表细节,结果生产环境一出问题就无从下手。路由引入实验的目的不是跑通,而是让你在面对一张密密麻麻的路由表时,能像一个经验丰富的网络工程师那样,三秒钟内判断出每一条路由是不是符合设计意图。种子度量值、外部路由类型、协议优先级这些概念,在这张表里全都有映射。看懂这张表,才算真的懂了路由引入。

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

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

立即咨询