双点双向重分布中的次优路径问题及其解决办法
2014-07-01李窦杰陈德媛李锐
李窦杰 陈德媛 李锐
【摘要】 在大型的互联网络中,会同时运行多个路由协议,为了在同一个互联网络中高效地支持多种路由选择协议,必须在这些不同的路由选择协议之间共享路由信息[1],即进行路由的重分布。在重分布的过程中,会造成次优路径问题。利用图形化网络环境模拟器GNS3搭建网络拓扑,通过对双向双点重分布实验的研究,来分析管理距离值对于路由选择的影响。本文设计了4种方案来解决这个问题。
【关键词】 重分布 双向双点 管理距离 次优路径 PBR
The solution of sub-optimal path in two-way route redistribution
LI Doujie,College of Overseas Education, New York Institute of Technology, Nanjing Campus(NYIT-NUPT) and Nanjing University of Posts and Telecommunications
CHEN Deyuan,School of Electronic Science and Engineering Nanjing University of Posts and Telecommunications
LI Rui,School of Photonic and Electronic Engineering Nanjing University of Posts and Telecommunications
Abstract:Large networks will running multiple protocols, so the routes have to redistribute. Redistribution insure the validity of the networks. In the process of the redistribution, it may generate the trouble of sub-optimal path. In order to solve this problem, we use GNS3(Graphical Network Simulator) to build simulation network environment. By researching the two-way redistribution, we can analyze the effect of the administrative distance in routing selection. In this paper, we designed four solutions to correct sub-optimal.
keywords:Redistribution,Two-way,Administrative distance,Optimal-path,PBR
根据中国电信集团公司的统一规划,中国电信湖北分公司需要完成HSTP同点码替换割接工程。在HSTP割接的同时,为确保骨干DXC设备的退网,按照省公司的要求,同步进行了骨干DXC省内电路退网工程。为了确保骨干信令业务在割接期间的安全性,我们在工程实施过程中提出并采用了“两次过江方案”,以解决骨干DXC省内电路退网过程中带来的安全隐患。
一、两次过江方案提出的背景
1.1 HSTP割接中与骨干DXC省内电路退网相关的基本原则
由于本次HSTP替换割接是采用“同信令点编码”方式进行割接,在考虑到安全性方面的相关因素后,HSTP替换割接工程中与骨干DXC省内电路退网有关的基本原则如下:(1)在割接准备及实施阶段的网络调整,必须保证骨干七号信令网的安全性;(2)在割接过程中,原则上不在进行数据异动,主要以传输电路割接为主,且割接点原则上应集中在一个长途传输机房内;(3)骨干DXC上的省内电路退网后,HSTP至省内任意一个局点间至少应开放2个不同传输路由的电路用于承载信令链路。
1.2 割接前省内信令网网络现状
如图1所示,在HSTP割接前,HSTPA/B到省内各本地网共开放电路4个2M,且在LSTP侧的一条电路中同时存在到HSTPA和HSTPB的链路。因此针对本次HSTP割接替换工程,省内信令网存在以下两个问题:(1)HSTPA/B至省内LSTP1/2只开放了4个2M,不满足两个局点间至少应开放2个不同传输路由的电路用于承载信令链路的要求;(2)省内LSTP侧同一条电路中存在开往2个不同HSTP的电路,导致HSTPA割接时,省内LSTP到HSTPB的信令链路也同时中断。
二、网络优化基本思路与两次过江方案的提出
针对省内信令网网络结构中存在的两个不同问题,我们提出了以下网络优化基本思路:(1)在HSTPA/B所在机楼的长途传输机房各新增2个2M以满足两个局点间至少应开放2个不同传输路由的电路用于承载信令链路的要求;(2)通过调整骨干DXC数据,使每一条电路上仅开放1个方向的信令链路;(3)在HSTP替换割接前,HSTPA/B至LSTP1/2必须各有一半链路分别经过DXC1/2进行交叉。(4)原已开放的电路由同一机楼的HSTP使用,分别与省内LSTP1、LSTP2对开信令链路。(5)对于分布在2个长途传输机房新增的4个2M如何使用,可采用以下两种方式中的一种:方法一:4个2M分别由另一个机楼的HSTP使用;方法二:4个2M分别由所在一个机楼的HSTP使用。
目前唯一存在问题的就是新增电路的使用方法。经过对两个方法的分析,对比如下:
(1)方法一:对原有网络结构异动较小,容易实现HSTPA/B至LSTP1/2各有一半链路分别经过DXC1/2进行交叉;由于HSTP与长途传输电路不在一个机楼,因此在HSTP替换割接时,割接点会大量分散到两个长途传输机房内,增加HSTP割接难度;该方法会长期大量占用过江中继资源。
(2)方法二:HSTP与长途传输电路在一个机楼,割接点可集中在一个长途传输机房;不占用任何过江中继资源。需要提出专门的方案以实现HSTPA/B至LSTP1/2各有一半链路分别经过DXC1/2进行交叉。
经过统筹分析,并结合HSTP替换割接基本原则,建议采用方法二的思路进行网络优化。
为此,我们第一次提出了以下解决方案(以HSTPA 链路C为例):如图2所示,当链路C从交换机出来后,通过第一条过江电路达到另一机楼的DXC2设备,经过DXC2交叉后,通过第二条过江电路5回到HSTPA所在机楼的长途传输机房,接入到省内长途传输电路中。在割接完毕后,原链路使用的2条过江电路均可释放。
在整个方案中,链路C分别经历了两次过江中继,因此该方案也就是本文的重点——“两次过江方案”。
三、结束语
按照二次过江方案,完成对HSTPA/B至全省14个本地网(含武汉)进行了网络优化。总计节约过江中继资源52个2M,也为湖北省HSTP替换割接工程和骨干DXC省内电路退网工作奠定了良好的基础。同时,两次过江方案在对于后期的骨干DXC省际电路的退网也有着一定的借鉴作用。
在整个IP互联网络中如果从配置管理和故障管理角度看,我们通常更愿意运行一种路由选择协议,而不是多种路由选择协议。然而,现代网络又常常迫使我们接受多协议IP路由选择这一事实。在某些情况下(如公司的合并,多个网络管理员管理的多个部门,使用多个厂商设备的网络环境等)必须使用多个路由协议。运行多个路由协议的网络环境必须使用路由重分布技术[2]。当多种路由协议“被拼凑”在一起时,使用重分布是很有必要的,而且重分布也是严谨网络设计的一部分[3]。
当只使用一台路由器来重分发路由时,如果这台路由器出现故障,不同路由域中的主机就无法互相通信,为避免这种单点故障,大多数重分发设计都要求至少有两台路由器执行重分发。两个领域之间有多个重分发点时,也会带来一些问题[4]。比如说会产生次优路径问题。我们通常所说的路由技术其实是由两项最基本的活动组成,即确定最优路径和传输信息单元[5]。最佳路径依赖于不同的衡量标准,在确定最佳路径的路由算法中,路由表(Routing Tables)是一个重要的数据结构, 其中包含了网络的路由信息[6]。
本文借鉴了路由重分发中次优路径的解决方案[7]一文中的思路,并加以改进,利用PBR(policy based routing)和distance命令语句设计了4种方案来解决这个问题。
一、次优路径的产生
1.1 网络拓扑结构图
图1为双点双向重分布的网络结构拓扑图,本文利用图形化网络环境模拟器GNS3搭建网络拓扑,在GNS3中使用Cisco C7200(即图中的R1-R5)路由器作为实验的路由器。图中R1的s1/1串行接口,R2,R4的s1/0串行接口运行RIP协议,R1的s1/0串行接口,R3,R4的s1/1串行接口以及R4的f0/0以太接口运行OSPF(Open Shortest Path First)协议(是一种在内部网络中广泛使用的路由协议[8]),R1,R4同时运行了RIP和OSPF协议,会在上面进行双向双点的重分布[9]。同时,R2,R3上分别起一个环回口。R5上输入命令:no ip routing ip default-gateway 45.1.1.4用来模拟一台主机。
1.2 次优路径的定义
多路由协议的使用会产生两个或多个到达目的的不用路径,而如何确定目的地的最佳路径,必须基于管理距离(administrative distance)和度量值(Metric)。不同的协议,其度量值不同;RIP的度量是跳数,OSPF的度量是带宽,EIGRP的度量是带宽和延时等[10]。网络中路由器会首先比较管理距离,如果管理距离相同,则比较度量值。管理距离值被看做一个可信度,管理距离值越小,协议可信度越高。下面列出一些协议的管理距离值:
EIGRP(内部管理距离) 90
IGRP 100
OSPF 110
ISIS 115
RIP 120
EIGRP(外部管理距离)170
在这个实验中,R1,R4上同时运行了OSPF和RIP两个协议,并做了双向重分布。因此,路由器就要通过比较管理距离值从中进行比较选择。因此,R4选择了管理距离为110的OSPF路由而没有选择管理距离为120的RIP路由,从而造成了次优路径。 路由协议之间特性相差非常大,在重分发时若忽略了对度量值和管理距离差异的考虑,将导致网络中出现某些或者全部路由交换失败,甚至造成路由环路或者网络黑洞[1]。
1.3 次优路径现象
当R5和R2之间要进行通信时,理论上R4直接从s1/0走去R2是最优的路径,但是实际情况同过命令show ip route可以看到如图2:
通过图2可以得知,R4去R2并没有选择直接从s1/0走,而是走34网段,即经过R3,R1最后再到R2,这说明此时路由并未选择最佳路径,产生了次优路径。
在R4上通过抓包软件Wireshark抓包,可以看到在R4上只收到了来自R3的OSPF路由更新,如图3所示。
二、对次优路径的分析
2.1 理想的路由传输路径
路由器通过评估度量值来决定最佳路径。要确定路由器的最佳路径,就需要对指向相同目的网络的多条路径进行评估,从中选出到达该网络的最佳或最短路径[11]。路由路径的选择也取决于网络中的路由协议[12]。当R5和R2通信时,数据包经过R4,R4上做了双向重分布,因为OSPF的管理距离110小于RIP的管理距离120,所以选择下一跳为R3,再经过R1,R1上也做了双向重分布,最后到达R2。但这不是最理想的路径,数据包应该直接从R4去往R2完成数据的传输,这个路径才是最优的。
2.2 次优路径产生的原因
R2上的路由信息到达R1,R1上做RIP到OSPF的重分布,R1和R3都跑了OSPF并已经建立起了OSPF邻居,R1传递给了R3。一个OSPF区域内的数据库要同步,所以R3可以传递给R4。R4收到一条管理距离为110的OSPF路由,与此同时,R2发给R4的一条管理距离为120的RIP路由也到达R4(为路由协议边界),不同协议学到同一条路由,优先选择管理距离小的。因为OSPF的管理距离小,所以没有安装R(RIP)路由。在R4上做了RIP到OSPF的重分布。但是根据重分布原则,需要复制路由表,但是路由表中没有R(RIP)路由,所以这个重分布其实是失败的。如果重分布失败,那么在R4的数据库中就不会有自己产生的一条2.2.2.2的五类LSA(Link-State Advertisement),所以R4并没有选择直接去R2,而是通过R4—R3—R1—R2,在R3上也只能看到一个下一跳,没有负载均衡。
三、解决方法
既然造成次优路径的原因是因为管理距离的问题,那么首先我们会想到通过修改管理距离来解决次优路径。本文提供4种解决的方案。
第一种解决方案:
在R4上,希望把重分布过来的路由的管理距离改为121(只要大于RIP的管理距离120即可),而OSPF内部的路由(即R3传递的路由)管理距离值不变。那么利用distance命令来实现这一需求,如图4所示。
第二种解决方案:
第二种方案是写一个访问控制列表精确匹配,只针对1.1.1.1通告的2.2.2.0路由将AD改为121,对1.1.1.1通告的其它路由AD不变。这是对第一种方案的再优化,如图5所示。
这里是对distance命令的一种用法:distance [distance] [IP Source address] [Wildcard bits] [IP Standard access list number] 。distance是想要修改的管理距离值;IP Source address是通告路由器的router-id;Wildcard bits是反掩码,用来确定IP Source address的地址范围;IP Standard access list number是要挂的访问控制列表号。
第三种方案:
还可以通过为OSPF设置外部路由的管理距离来解决,只要将外部路由的管理距离增大到超过重分布进来的协议的AD就可以。
■
修改之后在R4上通过命令show ip route同样可以看到,去往2.2.2.0的下一跳变为24.1.1.2,如图6所示。
这个方案相比第二种方案的优势在于,将来有新的路由加进来,我们不需要再修改列表。这在较大型的网络中比较适合使用,可以省去没添加一条新的路由就要重新编写访问控制列表的麻烦,同时也减少了设备的内存占用。但是,这个方案的缺点是不能对路由进行精确的操控。在路由条目数不多的情况下,推荐第二种方案。
第四种方案:
计算机网络中,传统的路由过程往往是依据一个路由表,根据IP包的目的地址进行路由选择, 在实际的使用中,有时我们希望不仅仅根据IP包的目的地址进行路由,而且希望根据IP包的源地址或其它信息进行路由选择,通常称这种路由为基于策略的路由,策略路由提供了一种更复杂的包转发机制[13]。
PBR就是使用route-map这一工具对某个接口进来的数据流做一些策略,符合条件的按相应的策略进行路由,不符合条件的按正常情况进行转发[14]。PBR优于路由表——如果路由器上设置了PBR,当数据包到达路由器时,是先匹配PBR,如果匹配上了,直接按PBR进行转发,如果没匹配上,再去找路由表进行转发,所以说PBR覆盖了正常的路由选择进程。PBR中不匹配的数据包不会DENY(丢弃),而是normal forwarding(正常转发)。
通过PBR(policy based routing)来对源是45.1.1.5的数据流量设置下一跳,手动让其选择最优路径。在未做更改前,在R5上通过命令traceroute 2.2.2.2 来观察[15],如图7所示:
发现去往R2并没有选择走24网段,而是通过R4—R3—R1—R2。
在R4上建立一个标准访问控制列表匹配来自R5的流量
■
再写一个route-map,如图8所示。
最后调用。PBR的调用是要在数据包传递的入向接口,即R4的f0/0,如图9所示。
此时在R5上traceroute可看到如图10所示。
四、总结
重分布是大型网络拓扑中必不可少的一个步骤,不同的协议的协议有不同的管理距离值,这将有可能引发次优路径问题。本文通过GNS3图形化网络环境模拟器搭建了模拟实验环境,分析并给出了解决次优路径的四种方案。对大型网络合理有效的运行起到了积极的作用。