基于route-map解决路由重分发中次优路由问题

2022-03-23 01:35:30高正康宋丹
网络安全技术与应用 2022年2期
关键词:双点路由表度量

◆高正康 宋丹

基于route-map解决路由重分发中次优路由问题

◆高正康 宋丹

(安徽理工大学计算机科学与工程学院 安徽 232001)

在常规的企业网络中,由于多种因素的影响,需要运行多种不同的路由选择协议,而这就必须要使用路由重分发技术了。本文针对路由重分发过程中路由协议的配置顺序及协议的内在性质不同,导致出现次优路由和路由环路等问题,借助EVE-ng(Emulated Virtual Environment,虚拟仿真环境)模拟器,通过搭建网络环境进行实验,分析了问题产生的原因并给出了两种切实可行的解决方案,其一是通过修改路由管理距离,改变路由的优先级;其二是通过route-map进行路由过滤,从产生次优路由的根源解决问题。

路由选择协议;重分发;次优路由;路由环路;网络模拟器

在正常的网络环境中,一个单一的IP路由协议是管理网络中IP路由的首选方案。在某些情况下(如公司的合并,多个网络管理员管理的多个部门,使用多个厂商设备的网络环境等)必须使用多个路由协议[1]。由于各种路由协议采用的算法、度量值计算方式等不尽相同,默认情况下,不同路由协议学习到的路由信息不能共享,因而多协议网络并不能实现全网互通[2]。如果想要这些运行不同路由选择协议的网络能够互连互通,就需要至少有一台路由器运行多种路由选择协议来实现不同网络之间的通信,而实现不同网络之间通信的关键技术就是路由重分发。

当只使用一台路由器来重分发路由时,如果这台路由器出现故障,不同路由域中的主机就无法互相通信。为避免这种单点故障,大多数重分发设计都要求至少有两台路由器执行重分发[3]。但是,若双点双向的路由重分发设计不当,也会产生一些如次优路由、路由环路等问题。大多数情况下,是在接收方路由器上面通过修改管理距离来解决次优路由问题,但数据在次优路由的转发下,已经消耗了网络设备的CPU和内存资源,造成了不必要的浪费。本文通过route-map进行路由的过滤,从源头解决次优路由问题,降低转发资源的浪费,提高网络设备的转发能力。

1 什么是路由重分发

路由重分发(Route Redistribution)简单来说就是将一种路由选择协议产生的路由条目发送到另一个路由选择协议中,通常在那些负责从一个AS内学习路由,然后向另一个AS内广播的路由器那里进行配置。一般情况下,同时运行两种(或两种以上)路由协议的路由器,称为边界路由器。边界路由器是不同路由协议之间的桥梁,负责协议间的路由重分发操作[2]。重分发总是向外的,执行重分发的路由器不会修改其路由表。可以被重分发的路由有两种,一是宣告进该协议的接口的直连路由,二是通过该协议学习到的并且已经被加入路由表的协议路由。

2 重分发过程中要考虑的问题

2.1 度量值(Metric)

度量值是某一路由协议用于判别到达目的网络最佳路径的方法。当路由协议通过动态交互发现到达某一目的网络存在多条可达路径时,路由协议必须判断出其中哪一条是最佳的路径并把它添加到系统路由表中。路由协议会给每一条可达路径计算出一个度量值,度量值越小,路径越优。不同的协议,其度量值不同;RIP的度量是跳数,OSPF的度量是带宽,EIGRP的度量是带宽和延时等[4]。

2.2 管理距离(Administrative Distance)

管理距离(也称为AD值)是指一种路由协议的路由可信度。每一种路由协议按可靠性从高到低,依次分配一个信任等级,这个信任等级就叫管理距离。AD值越低,则它的优先级越高。常见的路由选择协议的管理距离见表1。

表1 常见路由选择协议的管理距离

路由类型管理距离 直连接口0 静态路由1 EIGRP汇总防环路由5 EBGP20 EIGRP90 OSPF110 RIP120

3 实验

3.1 实验环境

本文基于EVE-ng(Emulated Virtual Environment,仿真虚拟环境)模拟器[5],结合一个简化但并不影响实际效果的网络拓扑,针对OSPF(Open Shortest Path First,开放式最短路径优先)和RIP(Routing Information Protocol,路由信息协议)协议的多边界路由重分发产生的问题,通过分析问题产生的原因,给出了几个切实可行的解决方案。实验所用网络拓扑如图1所示。

图1 实验所用网络拓扑图

其中,各设备除互联的物理接口外,每台设备还配置了一个环回口loopback0,用来模拟网络设备身后的网络。路由选择协议运行情况是,边界路由器R1的ethernet0/0,loopback0;R2的ethernet0/0,ethernet0/1,loopback0;R4的ethernet0/1宣告进OSPF 110进程中;边界路由器R4的ethernet0/0,loopback0;R3的ethernet0/0,ethernet0/1,loopback0;R1的ethernet0/1宣告进RIP协议的进程中。每个接口具体的地址如表2所示。

表2 路由器接口IP地址

设备名设备接口名接口地址 R1 Ethernet0/012.1.1.1/24 Ethernet0/113.1.1.1/24 Loopback01.1.1.1/24 R2 Ethernet0/024.1.1.2/24 Ethernet0/112.1.1.2/24 Loopback02.2.2.2/24 R3 Ethernet0/013.1.1.3/24 Ethernet0/134.1.1.3/24 Loopback03.3.3.3/24 R4 Ethernet0/034.1.1.4/24 Ethernet0/124.1.1.4/24 Loopback04.4.4.4/24

3.2 实验方法

通过将四台路由器的不同接口划分到不同的路由选择协议中,构建出两个AS域。通过路由重分发,使得这两个域内的路由互联互通。在重分发时,我们按照顺时针和逆时针两个方向进行路由重分发,并分析是否会出现次优路由,以及设计了两种解决办法来解决可能出现的次优路由问题。

3.3 顺时针方向的路由重分发

(1)在R1上完成OSPF重分发进RIP

在双点双向重分发中,如果一台边界路由器执行完路由重分发后产生了次优路由,就会使得另一台边界路由器的路由表选择错误的路由条目。所以在进行重分发之前,先查看R4上的路由表,可以提前判断出R4上既有RIP路由亦有OSPF路由,其中RIP路由为13.1.1.0/24,3.3.3.0/24,OSPF路由为1.1.10/24,12.1.1.0/24,2.2.2.0/24,查看结果如图2所示。

图2 R4的路由表

和判断的完全一致。

现在,在R1上完成重分发,将OSPF路由重分发进RIP进程中,重分发命令为:

R1(config)#router rip

R1(config-router)#redistribute ospf 110 metric 1

重分发后,OSPF域中的1.1.1.0/24,12.1.1.0/24,2.2.2.0/24这三条路由将会进入到RIP进程中。通过判断,由于RIP路由的管理距离为120,而OSPF路由的管理距离为110。故R1在访问以上3个网段时,根据管理距离越小越可靠、越优先的原则,仍然选用OSPF路由。所以,在R1上完成OSPF路由重分发到RIP进程中以后,没有产生次优路由,则R4的路由表也不会发生变化。

(2)在R4上完成RIP重分发进OSPF

同理,在进行重分发之前,先查看R1上的路由表,可以提前判断出R1上既有RIP路由亦有OSPF路由,其中RIP路由为4.4.4.0/24,34.1.1.0/24,3.3.3.0/24,OSPF路由为24.1.1.0/24,2.2.2.0/24,查看结果如图3所示。

图3 R1的路由表

和判断的完全一致。

现在,在R4上完成重分发,将RIP路由重分发进OSPF进程中,重分发命令为:

R4(config)#router ospf 110

R4(config-router)#redistribute rip subnets

重分发后,RIP域中的4.4.4.0/24,34.1.1.0/24,3.3.3.0/24这三条路由将会进入到OSPF进程中。此时,查看R2的路由表,可以看见R2上多了4条O E2类型的路由,如图4所示。

图4 被次优路由影响的R2路由表

同样,这四条路由也会经过R1进入到R1的LSDB(Link State DataBase,链路状态数据库)中。那么,这4条路由会不会影响R1的路由表呢?答案是肯定会的,并且会影响R1路由表中的4.4.4.0/24,34.1.1.0/24,3.3.3.0/24这3条路由条目,使得这3条路由所携带的标志由“R”变为“O E2”,下一跳由“13.1.1.3”变为“12.1.1.2”,具体如图5所示。这是由于R1从OSPF域中获得这3条OSPF路由,其管理距离为110,而从RIP域中获得的这3条路由的管理距离为120,而又因为管理距离越小,代表路由越可靠,路由越优先的原则,所以R1上的这3条路由选择了来自OSPF域的。以上这种情况的出现,显然是路由重分发导致了次优路由问题。

图5 被次优路由影响的R1路由表

根据上述分析,我们这里给出两种解决方案:

方案一:根据管理距离优先于度量值的原则,我们可以采用通过修改管理距离的方法使以上三条路由的下一跳恢复为13.1.1.3,可以采取以下两种思路:

思路1:将R1访问4.4.4.0/24,34.1.1.0/24,3.3.3.0/24的OSPF路由的管理距离改大,使其大于RIP的管理距离,即至少改为121;

思路2:将R1访问4.4.4.0/24,34.1.1.0/24,3.3.3.0/24的RIP路由的管理距离改小,使其小于OSPF的管理距离,即至多改为119;

由于篇幅有限,这里以思路1做演示,先用标准ACL抓取那三条出错的路由,再在OSPF进程中修改管理距离时调用ACL。具体命令如下所示:

R1(config)#access-list 10 permit 3.3.3.0

R1(config)#access-list 10 permit 4.4.4.0

R1(config)#access-list 10 permit 34.1.1.0

R1(config)#router ospf 110

R1(config-router)#distance 121 4.4.4.4 0.0.0.0 10

管理距离修改完毕后,查看R1的路由表,次优路由问题被解决,路由表恢复正常,即R1针对那3条路由选择了来自RIP域的路由条目,如图6所示。

图6 恢复正常的R1路由表

方案二:通过route-map解决次优路径问题

使用route-map解决该问题有以下三个优点:

一是因为标准ACL在网络工具中的定位是最底层的工具,通常不建议直接使用最底层的工具;

二是因为route-map功能强大,不仅可以直接被调用,也可以在route-map语句中调用其他路由过滤工具,还可以根据路由的一些参数匹配路由,也可以修改某些路由参数。一些常见的路由参数如表3所示。

表3 可以匹配的常见路由参数

路由参数匹配的配置命令 标准ACLmatch ip address acl 通告者路由器match ip route-source 下一跳IP地址match ip next-hop 路由的出接口match interface 路由的标记match tag 路由的类型match route-type 路由的度量值match metric

三是因为使用route-map在边界路由器上进行路由的过滤,可以从源头解决次优路由传播,减少次优路由的影响范围,减小次优路由在传播过程中对网络设备内存和CPU的消耗。

在配置解决方案二之前,先清除一下解决方案一,只需在OSPF进程中删除修改管理距离的配置命令及其调用的标准ACL。具体命令如下:

R1(config)#router ospf 110

R1(config-router)#no distance 121 4.4.4.4 0.0.0.0 10

清除解决方案一的配置后,R1会再次受到次优路由的影响,所以,接下来在R4上配置解决方案二。

首先,使用标准ACL抓取会引起次优路由的路由条目;然后,使用route-map的deny语句来调用ACL10,因为route-map有一条默认语句,拒绝所有其他路由条目,所以别忘记再写一条空的permit语句,放行所有其他路由条目;最后,在OSPF进程中重分发RIP路由的语句后面调用该route-map即可。具体命令如下:

R4(config)#access-list 10 permit 3.3.3.0

R4(config)#access-list 10 permit 4.4.4.0

R4(config)#access-list 10 permit 34.1.1.0

R4(config)#route-map R-to-O deny 10

R4(config-route-map)#match ip address 10

R4(config)#route-map R-to-O permit 20

R4(config)#router ospf 110

R4(config-router)#redistribute rip subnets route-map R-to-O

此时,被次优路由影响的R1路由表就又恢复正常了。

至此,就已经完成了双点单向的路由重分发了,还需要逆时针完成另一个方向的双点单向路由重分发,才算是完全完成双点双向路由重分发。

3.4 逆时针方向的路由重分发

由于篇幅有限这里就不再赘述,只提供重分发时的命令及发生环路时解决方法的命令,其重分发及解决次优路径的原理与顺时针方向的重分发相同。在R4上将OSPF路由重分发进RIP进程中,在R1上将RIP路由重分发进OSPF进程中。配置命令如下:

R4(config)#router rip

R4(config-router)#redistribute ospf 110 metric 1

R1(config)#router ospf 110

R1(config-router)#redistribute rip subnets

经过分析,在R4上将OSPF路由重分发进RIP进程中不会产生次优路由问题;而在R1上将RIP重分发进OSPF中后,会导致R4的路由表上去往3.3.3.0/24,13.1.1.0/24这两个网络的路由条目选择打“O E2”的次优路由,如图7所示。

图7 受次优路径影响的R4路由表

这里的解决方法使用和上面方案二一样的,具体原理不多赘述,具体配置命令如下:

R1(config)#access-list 10 permit 3.3.3.0

R1(config)#access-list 10 permit 13.1.1.0

R1(config)#route-map R-to-O-2 deny 10

R1(config-route-map)#match ip address 10

R1(config)#route-map R-to-O-2 permit 20

R1(config)#router ospf 110

R1(config-router)#redistribute rip subnets route-map R-to-O-2

此时,被次优路由影响的R4路由表就恢复正常了。

至此,双点双向路由重分发的配置及解决重分发过程中出现次优路径的方法和配置全部结束。

4 结束语

路由重分发可以使得使用多种路由选择协议的大型网络互联互通,但是,如果重分发操控不当很容易产生次优路径和路由环路问题。本文基于EVE-ng虚拟仿真环境模拟器搭建了一个网络实验环境,通过模拟两款路由选择协议的双点双向路由重分发,详细阐述了重分发中次优路由的产生原因,并且通过修改管理距离和使用route-map过滤路由这两种方式对问题进行了行之有效的解决,并已在许多实际网络环境中所使用。

[1]李窦杰,陈德媛,李锐.双点双向重分布中的次优路径问题及其解决办法[J].中国新通信,2014,16(09):88-91.

[2]陈利.基于ENSP的多边界路由引入问题的分析与解决[J].伊犁师范学院学报(自然科学版),2021,15(01):58-66.

[3]张韬.路由重分发中管理距离值的配置与调整[J].科技视界,2013(22):38+57.

[4]刘玉贞,李雪菲.路由协议重分发技术的研究与实现[J].计算机与网络,2016,42(09):62-65.

[5]唐灯平,凌兴宏.基于EVE-NG模拟器搭建网络互联技术实验仿真平台[J].实验室研究与探索,2018,37(05):145-14

[6]闵应骅.计算机网络路由研究综述[J].计算机学报,2003(06):641-649.

[7]马记,刘刚.浅谈策略路由与路由策略[J].网络安全和信息化,2021(07):78-80.

[8]李进珍,蔡烽榕,马记.探究路由与环路的问题[J].网络安全和信息化,2018(03):47-48.

猜你喜欢
双点路由表度量
有趣的度量
直升机双点吊挂应用研究
模糊度量空间的强嵌入
基于OSPF特殊区域和LSA的教学设计与实践
迷向表示分为6个不可约直和的旗流形上不变爱因斯坦度量
组播状态异常导致故障
双点蚀缺陷管道剩余强度分析*
化工机械(2016年3期)2016-12-25 08:28:04
地质异常的奇异性度量与隐伏源致矿异常识别
双点压力机抗偏载能力分析与解决方案
双点蚀缺陷管道剩余强度计算方法
腐蚀与防护(2015年8期)2015-02-15 03:43:30