路由引入中次优路径问题分析与解决

2023-12-25 11:24
长江工程职业技术学院学报 2023年4期
关键词:双点路由表路由器

柯 跃

(长江工程职业技术学院,武汉 430212)

0 引 言

在IP网络中如果只使用一种路由协议,显然无法满足网络互联互通的要求。因此,大型网络为了提高网络的健壮性,会采用多种路由协议。而每一种路由协议都有其实现原理,不同路由协议之间不能交换路由信息,为了实现多种路由协议之间的通信,需使用路由重分发技术,又称为路由引入[1]。路由引入是指在边界路由器上,将某一种路由协议的路由信息引入到另一种路由协议中的技术[2]。

路由引入主要有三种应用场景:将直连路由引入动态路由协议中,将静态路由引入动态路由协议中,动态路由协议之间互相引入。其中在动态路由协议之间互相引入时,会产生次优路径、路由环路等问题[3]。以RIP和OSPF两种路由协议进行互相重分发为例来分析和解决上述问题。

1 双点双向路由引入实验

1.1 路由优先级

路由优先级又称为管理距离(administrative distance),是指路由协议的优先级[4]。路由协议有多种,路由器通过不同路由协议学习到多种路由。为了区别这些路由的优先次序问题,人们就对不同来源的路由规定了不同优先级,并约定优先级值越小,路由的优先级别就越高。这样,当路由器学习到多条去往目标网络相同的路由时,就会选择最高优先级的路由将之加入到路由表中(RIB),而将其他路由置于未激活状态。不同厂家规定的路由协议优先级默认值(默认值可以手动更改)不尽相同,本实验使用华为设备,华为所定义的路由优先级默认值如表1所示。

表1 路由的优先级

1.2 度量值

度量值(metric)又称为开销(cost),用来确定去往目标网络的最优转发路径[4]。不同的路由协议,对度量值的衡量不一样,比如RIP协议的度量值是指经过路由器的跳数,跳数越小,路由的开销就越小,此时路径越优;而OSPF协议的度量值是带宽,即带宽越大,开销值越小,路径越优。当同一种路由协议学习到多条去往同一目标网络的路由时,将优先选择开销最小的路由当作最优路径。

1.3 基于RIP与OSPF双点双向路由引入实验

在路由重分发的应用场景中往往会使用双点双向路由引入的方式,图1为双点双向路由引入拓扑图。实验中使用华为软件eNSP来进行分析和方案验证,路由器全部都采用AR2220。

图1 双点双向路由引入拓扑

在图1中,电脑PC1的IP地址为9.9.9.9,R1至R4的接口及其IP地址都如图所示,子网掩码全部为24位。路由器R1、R2、R3运行OSPF协议,同属于区域0;路由器R2、R3、R4运行RIPv2协议。其中路由器R2和R3作为边界路由器,同时运行OSPF协议和RIP协议,并在R2和R3上分别配置OSPF协议和RIP协议互相引入。路由器R2的配置如图2所示。

图2 R2路由引入配置

路由器R3的配置如图3所示。

图3 R3路由引入配置

路由器R1作为连接电脑PC1的路由器,R1的GE0/0/2口所在网段为9.9.9.0,属于直连路由。因此需要在R1上配置将直连路由9.9.9.0引入OSPF区域0中。路由器R1的配置如图4所示。

图4 R1路由引入配置

按照图1所标注和上述要求配置将路由器R1至R4、PC1配置完成,双点双向路由引入实验已经做完。在此场景中,存在两台边界路由器R2和R3,且都配置路由双向引入,提高了网络的可靠性。

在正常情况下,路由器R4去往PC1的路由同时有两条,即R4-R2-R1-PC1和R4-R3-R1-PC1,这样即实现了流量的负载均衡和网络的冗余备份。而路由器R2去往PC1的路由也有两条,即R2-R1-PC1和R2-R4-R3-R1-PC1,那么该选择那一条路径作为最优路径呢?很显然根据上文所述,R2去往R1的路由属于OSPF协议学习到的,其优先级为10;而R2去往R4的路由属于RIP协议学习到的,其优先级为100,由此可知R2-R1-PC1为最优路径加入到路由表中。同理,路由器R3去往PC1的最优路径为R3-R1-PC1。

下面分别查看路由器R2、R3、R4的路由表和数据转发路径是否如上述分析一样。

R2的数据转发路径如图5所示,用tracert命令来跟踪数据包的转发过程。

图5 R2转发路径

图5表明,R2路由正常,符合上文分析结果。接着查看R3的数据转发路径如图6所示。

图6 R3转发路径

R3的数据包转发选择了R3-R4-R2-R1-PC1这条非最优路径进行路由,并且去往9.9.9.0/24所在网络的路由下一跳指向了192.168.34.4这个IP地址,此IP地址为路由器R4的接口GE0/0/1的IP地址,此路由是通过RIP协议学习到,这显然不符合预期。这表明R3的路由表选择了次优路径。

最后再来看R4的数据转发路径如图7所示。

图7 R4转发路径

R4的路由表如图8所示。

图8 R4的路由表(部分)

由图7和图8可以看到,R4去往目标网络9.9.9.0/24的路径只有一条,即R4-R2-R1-PC1,与前文中的结论不符,还缺少了一条路径R4-R3-R1-PC1。

2 次优路径问题分析

在图1的实验中,有RIP协议和OSPF协议两个路由域,两个路由域的边界设备R2和R3作为路由引入的节点。在路由器R2和R3中分别进行双点双向路由引入后,R3到达目标网络9.9.9.0/24的路由没有选择通过OSPF路由域的最优路径R3-R1-PC1,而是选择了通过RIP路由域的次优路径R3-R4-R2-R1-PC1进行数据转发,此现象就是次优路径问题,路径R3-R4-R2-R1-PC1称为次优路径。次优路径会对网络造成严重影响,增加数据包转发延迟。

次优路径问题是路由选择原理导致的,路由器通过不同路由协议会学习到去往目标网络的最佳路径,然后将其添加到路由表中[5]。当路由器学习到多条可到达同一个目标网络的路由时,路由器会先比较这些路由所属路由协议的优先级值,优先级值越小的路由优先级就越高。若同一种路由协议中学习到多条路由,则比较开销。

在华为产品上,RIP协议的优先级为100,而OSPF协议中有两个优先级,分别是域内优先级,值为10;域外优先级,值为150。根据华为路由选路原理,分析图1中次优路径产生的原因。

(1)R1中引入了直连路由,R1会通过OSPF协议将直连路由9.9.9.0/24以5类LSA的方式通告到OSPF域中,这样R2和R3都会学习到一条去往网络9.9.9.0/24的外部路由,其优先级为150,并且下一跳指向R1,将该路由保存到路由表中。R2的路由表如图9所示。

图9 R2的路由表(部分)

(2)其次由于R2配置了将OSPF路由引入到RIP中,因此R2会将通过OSPF协议学习到路由发布到RIP域中,R4就学习到了去往网络9.9.9.0/24的路由,并保存到路由表中。如图10所示。

图10 R4的路由表

(3)最后由于路由器R4与R3同属于一个RIP路由域,R3会通过RIP协议从R4那里学习到去往网络9.9.9.0/24的路由。与此同时,R3与R1同属于一个OSPF域,因此R3也会从R1的通告中学习到去往网络9.9.9.0/24的路由。即R3会同时收到来自R1和R4的去往网络9.9.9.0/24的两条路由信息,R3就会根据路由选路原理来选择最优路径。这时问题就出现了,R3从R4那里学习到的去往网络9.9.9.0/24的路由是通过RIP协议学习到的,这条路由的优先级默认值就是100;而R3从R1那里学习到的去往网络9.9.9.0/24的路由是通过OSPF协议学习到的,且属于外部路由(O_ASE),该条路由的优先级默认值为150。所以R3会将R3-R1-PC1这条路由置于未激活状态,而将R3-R4-R2-R1-PC1这条路由加入到路由表中,置于激活状态。事实上从R3去往PC1的路由最优路径是R3-R1-PC1,可是在本实验中R3却选择了次优路径R3-R4-R2-R1-PC1,这就是次优路径问题产生的过程。

R3的路由表信息如图11和图12所示。

图11 R3的路由表

图12 R3的OSPF路由表

(4)同理在路由器R2上也会出现去往目标网络9.9.9.0/24的次优路径。

3 次优路径问题解决方法

双点双向路由引入场景中很容易出现次优路径问题,通过前文的分析提出了两种解决方法。

方法一:修改OSPF域外部路由的优先级默认值来避免出现次优路径问题。其主要思想是在路由器R2和R3上将9.9.9.0/24这条OSPF域外路由的优先级默认值修改为小于100的值即可。因为只有这条域外路由的优先级值小于RIP协议的优先级默认值100,R3就不会将从RIP协议学习到的路由作为最优路径写到路由表中。

配置方法:先在R2和R3上创建一条ACL用来匹配9.9.9.0/24这个网络,然后在路由策略(route policy)中调用该ACL,将匹配到的去往目标网络9.9.9.0/24的路由优先级默认值设置为70(低于100即可)。最后在OSPF视图模式下使用命令preference调用route-policy,并使之生效。配置命令如下:

R2的配置:

[R2]acl 2000

[R2-acl-basic-2000]rule 5 permit source 9.9.9.0 0

[R2-acl-basic-2000]quit

[R2]route-policy test permit node 5

[R2-route-policy]if-match acl 2000

[R2-route-policy]apply preference 70

[R2-route-policy]quit

[R2]ospf 1

[R2-ospf-1]preference ase route-policy test

[R2-ospf-1]quit

R3的配置:

[R3]acl 2000

[R3-acl-basic-2000]rule 5 permit source 9.9.9.0 0

[R3-acl-basic-2000]quit

[R3]route-policy test permit node 5

[R3-route-policy]if-match acl 2000

[R3-route-policy]apply preference 70

[R3-route-policy]quit

[R3]ospf 1

[R3-ospf-1]preference ase route-policy test

[R3-ospf-1]quit

结果验证:在路由器R2和R3上按上述方法配置完成后,再来查看路由表验证是否达到效果。R3的路由表如图13所示。

图13 R3的路由表

再来看R4的路由表如图14所示。

图14 R4的路由表

从图13可以看到,R3去往目标网络9.9.9.0/24的路由是最优路径R3-R1-PC1;从图14可以看到,R4去往目标网络9.9.9.0/24的路由有两条等价路径,分别是R4-R2-R1-PC1和R4-R3-R1-PC1,实现了负载均衡和冗余备份。但方法一有弊端:须提前知道目标网络才能配置,且在实际应用中目标网络也不止一个;还有网络变化和路由汇聚可能导致通过ACL进行精准匹配的方法变得繁琐。

第二种方法:使用路由策略(route-policy)设置路由标记,然后过滤带标记的路由来解决次优路径问题和避免路由环路。路由标记(tag)是指路由所携带的一种标记信息,常用的动态路由协议都支持路由标记的方式。在边界路由器上通过对不同路由进行标记,然后使用路由策略将带有标记的路由过滤掉,放行其他路由。这样可以避免边界路由器因路由优先级不同而产生次优路径的问题。

边界路由器R2的配置如下:

[R2]route-policy rip-to-ospf deny node 10

[R2-route-policy]if-match tag 10

[R2]route-policy rip-to-ospf permit node 20

[R2-route-policy]apply tag 20

[R2]ospf 1

[R2-ospf-1]import-route rip 1 route-policy rip-to-ospf

[R2]rip 1

[R2-rip-1]import-route ospf 1

同理,路由器R3的配置跟R2相同即可。

结果验证:在路由器R2和R3上按上述方法配置完成后,再来查看路由表验证是否达到效果。R2的路由表如图15所示。

图15 R2的路由表

R4的路由表如图16所示。

图16 R4的路由表

从图15可以看到,R2去往目标网络9.9.9.0/24的路由是指向下一跳R1的最优路径,R3同理;从图16可以看到,R4去往目标网络9.9.9.0/24的路由有两条等价路径,分别是R4-R2-R1-PC1和R4-R3-R1-PC1,实现了负载均衡和冗余备份。方法二与方法一相比的优势在于:当域外网络环境发生变化时,比如R1再接入新的网络或加入新的路由,都不需要再进行大量修改配置。

4 结 语

在大型网络环境中,双点双向路由引入是实现不同路由协议相互通信的一种常见技术,然而路由引入不可避免会带来次优路径问题。通过华为模拟器建立环境复现了次优路径,分析了产生次优路径的原因,最后提出了两种解决次优路径的方法,并通过实验对这两种方法进行了验证和对比。结果表明能有效避免次优路径问题,并且能实现链路冗余备份和流量的负载均衡,对实际应用中相似的网络结构具有参考意义。

猜你喜欢
双点路由表路由器
买千兆路由器看接口参数
直升机双点吊挂应用研究
路由器每天都要关
基于OSPF特殊区域和LSA的教学设计与实践
无线路由器的保养方法
双点蚀缺陷管道剩余强度分析*
双点压力机抗偏载能力分析与解决方案
双点蚀缺陷管道剩余强度计算方法
基于新路由表的双向搜索chord路由算法
无线路由器辐射可忽略