CN101217471B - 一种优化路由的方法及装置 - Google Patents
一种优化路由的方法及装置 Download PDFInfo
- Publication number
- CN101217471B CN101217471B CN2007103078135A CN200710307813A CN101217471B CN 101217471 B CN101217471 B CN 101217471B CN 2007103078135 A CN2007103078135 A CN 2007103078135A CN 200710307813 A CN200710307813 A CN 200710307813A CN 101217471 B CN101217471 B CN 101217471B
- Authority
- CN
- China
- Prior art keywords
- forwarding address
- address
- route
- effective
- forwarding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000001514 detection method Methods 0.000 claims abstract description 30
- 238000004364 calculation method Methods 0.000 claims abstract description 15
- 238000012360 testing method Methods 0.000 claims description 29
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 238000005457 optimization Methods 0.000 abstract description 2
- 230000009191 jumping Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 238000013316 zoning Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种优化路由的方法及装置,所述方法包含如下步骤:(a)在进行协议间路由重分配时,在协议报文中填写转发地址;(b)在计算路由前,检测协议报文中转发地址是否有效;(c)计算路由,如果转发地址有效,使用该转发地址作为下一跳,如果转发地址无效,不使用该转发地址计算路由。所述装置,包括路由计算模块和转发地址有效性检测模块。采用本发明的方法,在物理链路允许的情况下,最大可能的避免了绕道转发的情况;同时,如果由于物理链路的限制,导致转发地址不可达时,则采取绕道转发的方式,避免路由失效,同时保证了路由的高效性和可靠性。
Description
技术领域
本发明涉及通讯领域,尤其涉及一种优化路由的方法及装置。
背景技术
在整个IP互联网络中,常常存在多种路由协议,为了保证报文的正常转发,存在路由在不同的路由协议之间重分配的需求。如果一个链路上同时运行着两种路由协议,并且某个路由协议需要引入另外一个路由协议的路由,则可能存在非最佳路由的情况,即所谓的报文绕道问题,这加重了网络协议边界路由器的负担。
例如:在图1中,A与C之间通过RIP(Routing information Protocol,路由信息协议)协议连接,而A与B之间通过OSPF(Open Shortest Path First,开放最短路径优先)协议连接。A通过RIP协议学习到网络N的路由,并将该路由通过OSPF协议通告给B。由于B并没有运行RIP协议,并不知道C的存在,故它计算出的下一跳为A。所有到达N的报文都必须通过A绕道转发,增加了A的负担。
常用的路由协议都通过增加一个转发地址的字段来指定明确下一跳,从而避免报文绕道的问题。在以太网中,这样做是没有问题的,但在NBMA(非广播多路访问网络)网络或者帧中继网络中,如果B和C之间没有配置PVC(Permanent Virtual Circuit,永久虚拟电路),在B上则可能会出现路由器C不可达的问题,即转发地址不可达问题。
例如:在图2中,A通告路由N给B时,将转发地址填写为C,B在计算路由时,如果发现转发地址非0,则使用该转发地址作为下一跳,但标准协议中没有要求检查该转发地址的有效性,有可能B,C之间没有配置PVC,导致转发地址不可达的问题出现。
为了解决转发地址不可达问题,现在通用的做法是有两种:
1.在所有NBMA或者帧中继网络中,都不允许填写转发地址,这样做虽然规避了转发地址不可达问题,但还是没有解决绕道转发的问题。
2.由管理员指定是否允许填写转发地址,稍微增加了一些灵活性。管理员可以根据BC之间是否可达来决定A是否填写转发地址。但这种方法还是有缺点:即该方法仍然无法从根本上同时解决转发地址不可达和转发绕道这两个问题。
例如图3中,BC不可达,但DC可达。
如果要求A填写转发地址,则B无法到达网络N。
如果禁止A填写转发地址,则又会出现从D到N的报文必须绕道A,增加了A的负担。现有的技术方案无法解决这样的两难问题。
发明内容
本发明要解决的技术问题是提供一种优化路由的方法,解决现有报文转发绕道和转发地址不可达的问题。
为了解决上述技术问题,本发明提供了一种优化路由的方法,包含如下步骤:
(a)在进行协议间路由重分配时,在协议报文中填写转发地址;
(b)在计算路由前,检测协议报文中转发地址是否有效;
(c)计算路由,如果转发地址有效,使用该转发地址作为下一跳,如果转发地址无效,不使用该转发地址计算路由。
进一步地,所述方法应用于以太网或非广播多路访问网络NBMA或帧中继网络。
进一步地,所述步骤(c)中,计算路由时,如果转发地址无效,对于路由信息协议RIP,将通告该转发地址给本设备的路由设备作为下一跳;对于开放最短路径优先OSPF,将创建该转发地址的路由设备作为下一跳。
进一步地,所述步骤(b)中,检查转发地址有效性通过如下一种或多种方式实现,使用Ping指令,或通过地址转换协议ARP,或检查配置信息。
进一步地,所述步骤(b)中,如果转发地址有效性待定,将所述转发地址对应的路由加入一待定路由表,等待获得转发地址有效性检测结果后重新计算路由,执行步骤(c)。
进一步地,所述重新计算路由还包括如下步骤:获得所述转发地址有效性检测结果后,从所述待定路由表中删除该转发地址对应的路由;如果检测结果为转发地址无效,将通告该转发地址的路由设备或创建该转发地址的路由设备作为下一跳。
进一步地,所述步骤(b)中,如果转发地址有效性待定,则将该转发地址作为下一跳,相应的路由加入路由表,设置待定标志位,指示该路由不可用,获得所述转发地址有效性检测结果后,如果检测结果为转发地址有效,则删除相应路由的所述待定标志位。
进一步地,设置一有效地址列表,表中记录了有效地址和该地址有效的条件,所述步骤(b)中,检查转发地址有效性时,如果该转发地址位于所述有效地址列表中,且满足该地址有效的条件,则该转发地址有效。
本发明还提供了一种优化路由的装置,包括路由计算模块,还包括转发地址有效性检测模块,其中,
所述转发地址有效性检测模块,用于在计算路由前,检测协议报文中转发地址是否有效,将检测结果发送给所述路由计算模块;
所述路由计算模块,用于根据检测结果计算路由,如果转发地址有效,使用该转发地址作为下一跳,如果转发地址无效,不使用该转发地址计算路由。
进一步地,所述转发地址有效性检测模块维护一个有效地址列表,表中记录了有效地址和该地址有效的条件,所述检测模块进行转发地址有效性检查时,检查该转发地址是否位于所述有效地址列表中,如果位于,且满足该地址有效的条件,则该转发地址有效。
采用本发明的方法,在物理链路允许的情况下,最大可能的避免了绕道转发的情况;同时,如果由于物理链路的限制,导致转发地址不可达时,则采取绕道转发的方式,避免路由失效,同时保证了路由的高效性和可靠性。
附图说明
图1是现有技术中报文绕道问题的示意图;
图2是现有技术中转发地址不可达问题的示意图;
图3是现有技术中报文绕道和转发地址不可达两难问题的示意图;
图4是本发明中优化路由的方法的流程图;
图5是本发明应用场景的示意图;
图6是本发明中增加转发地址有效性检查后的路由计算流程图;
图7是本发明中收到有效检测结果后路由协议的处理流程图。
具体实施方式
本发明的优化路由方法通过判断转发地址的有效性,根据转发地址是否有效进行不同的处理,解决了绕道转发和转发地址不可达的问题。
本发明提供一种优化路由的装置,包括路由计算模块和转发地址有效性检测模块,其中,
转发地址有效性检测模块,用于在计算路由前,检测协议报文中转发地址是否有效,将检测结果发送给路由计算模块;
路由计算模块,用于根据检测结果计算路由,如果转发地址有效,使用该转发地址作为下一跳,如果转发地址无效,不使用该转发地址计算路由。
如图4所示,本发明中优化路由方法包括以下步骤:
步骤401:在进行协议间路由重分配时,在协议报文中填写转发地址;
与现有技术中通用做法不同,即使是在NBMA网络或者帧中继网络环境中,也需要填写转发地址;
步骤402:在计算路由前,检查协议报文中的各个转发地址是否有效;
转发地址的有效性检测有多种不同的实现方式。
方式一,通过ping指令来实现转发地址的有效性检测;
转发地址有效性检测模块进行转发地址的有效性检测时,向该地址发送ping报文,如果在指定的时间范围内收到Ping回应报文,则说明该地址有效。将该地址和当前时间戳放入有效地址列表中,并向路由计算模块发送该地址有效的消息。如果超时仍然没有收到Ping回应报文,说明该地址无效,向路由计算模块发送地址无效消息。
方式二,通过ARP(Address Resolution Protocol,地址转换协议)协议来实现转发地址的有效性检测;
转发地址有效性检测模块向被测地址发送一个ARP映射请求,等待对端应答,如果在指定的时间内能收到对端的ARP应答,则说明该地址是有效的。同样将该地址与当前时间戳放入有效地址列表,并向路由计算模块发送该地址有效的消息。如果超时仍然没有收到ARP应答,说明该地址无效,向路由计算模块发送地址无效消息。
方式三,对于帧中继网络,可以直接通过配置信息进行有效性检测;
对于接口是特定类型的网络(如帧中继等),可以检测对端之间的配置,如果与对端之间配有PVC等配置,则说明该转发地址是有效的,直接返回该地址有效。否则返回无效消息。
具体设备可以根据当前环境选择其中一种进行转发地址的有效性检查。
步骤403:根据步骤2中的检测结果计算路由,如果检测发现转发地址有效,即转发地址可达,则使用该转发地址作为下一跳;如果转发地址无效,即转发地址不可达,不使用该转发地址计算路由。
对于RIP(距离矢量协议),则以通告该路由(或转发地址)给本设备的相邻路由设备(将此路由发送给本设备的相邻路由设备)作为下一跳;
对于OSPF(链路状态协议),使用通告该LSA(或转发地址)的ASBR(即创建转发地址所属的该LSA的ASBR)作为下一跳。
下面结合附图对本发明的方法在OSPF动态路由协议中的应用进行说明。
如图5中,路由设备A在通告外部路由N时,虽然接口10.1.1.2是NBMA(或者帧中继)网络,但仍然将路由设备C的地址10.1.1.1放入LSA(LinkState Advertisement,链路状态通告)中的转发地址字段中,并发送给其他的邻居设备B,D。
其他邻居路由设备获得该LSA,在OSPF进行路由计算时,除了进行正常的协议规定正常计算路由流程之外,还需要对LSA中携带的转发地址进行有效性检查,如果发现该转发地址无效,则不使用该转发地址,而是以通告该路由的路由设备作为下一跳(即本例中的A),从而绕过无效转发地址,达到优化路由的目的。
如图6所示,增加转发地址有效性后,OSPF进行路由计算的具体步骤如下:
步骤601,OSPF按照协议要求进行SPF(最短路径优先)路由,计算区域内和区域间路由;
步骤602,OSPF计算外部LSA,遍历所有外部LSA进行AS(AutonomousSystem自治系统)外部路由计算,判断是否已处理完所有外部LSA,如果是,结束,否则,进行下一个LSA的路由计算,如果发现该LSA携带转发地址,转到步骤603;
步骤603,通过转发地址有效性检测模块对该地址的有效性进行检测;
步骤604,根据检测结果进行处理;检测结果包括三种:该地址有效、该地址无效和该地址的有效性待定;如果该转发地址有效,转到步骤605;如果该转发地址无效,转到步骤606,如果该转发地址待定,转到步骤607,
步骤605,如果该转发地址有效,则将该转发地址作为下一跳,把相应的路由加入到路由表,转到步骤602;
步骤606,如果该转发地址无效,则不使用该转发地址,以通告该路由的ASBR(Autonomous System Boundary Router,自治系统边界路由器)(即创建该路由的ASBR)作为下一跳计算路由,转到步骤602;
步骤607,如果该转发地址有效性待定,则暂时将该转发地址作为下一跳,将相应的路由加入路由表,并设置待定标志位,指示该路由不可用,转入步骤608;
步骤608,将该转发地址相应的路由加入一个待定路由Hash表,该待定路由Hash表以转发地址为Key,等待转发地址有效性检测模块通告OSPF模块检测结果后,根据该检测结果进行路由的重新计算,转入步骤602。
上述步骤中,待定路由Hash表以转发地址为Key,则该Hash表以路由的转发地址为Key进行Hash算法,并且同一个Hash桶中按Key进行排序,这样就可以很方便的根据转发地址找到该转发地址对应的所有路由。
一个转发地址可能对应有多条路由,也就是说,多条路由的转发地址可能是相同的,获得一个有效性检测结果后路由的更新可能会影响多条路由。上述步骤608中,如图7所示,OSPF根据转发地址有效性检测模块的检测结果进行路由的更新的具体方法包括以下步骤:
步骤701,OSPF收到检测模块的检测结果通知后,从待定路由Hash表中找到该转发地址对应的所有路由,依次遍历这些路由;
步骤702,判断待定路由Hash表中该转发地址对应的所有路由是否都处理完毕,如果是,处理结束;否则,转到步骤703;
步骤703,取出下一条路由,将此路由从待定路由Hash表中删除;
步骤704,判断该转发地址是否有效,如果无效,转到步骤705,否则,转到步骤706;
步骤705,该转发地址无效,以路由通告者为下一跳重新计算路由,并更新路由表,转到步骤702;
步骤706,该转发地址有效,在路由表中查找该转发地址相应的路由,将查找到的路由的待定标志位删除,则该路由正式开始生效,转到步骤702。
一个转发地址对应一个或多个路由,转发地址有效,它所对应的路由都有效。例如,某设备从某个ASBR学习到了多条路由,那么这多条路由的转发地址是相同的,如果进行转发地址有效性检测后该ASBR可达,则可以将所有这些路由都设置为有效状态。
上述实施方式描述了本发明的方法在OSPF协议中的应用,但本发明也同样适用于RIP等携带转发地址的任何其他动态路由协议。
转发地址有效性检测模块还维护一个有效地址列表,该表中分别记录了有效地址和该地址有效的条件即该地址上次检查的时间戳(即最后一次对该地址进行检测的时间,该时间戳也就是该地址有效的时间戳)。
转发地址有效性检测模块对某个转发地址进行检测前,首先检查地址列表:
如果该地址列表中存在该地址并且该地址的时间戳未超时(此处超时是指时间戳表示时间与当前检测时间超出了系统设定的时间间隔),则认为该地址有效;
如果该地址列表中不存在该地址,则对此转发地址进行有效性检测(检测方法如步骤402中所示),检测结果为有效时,将该地址加入列表,并记录下当前时间作为时间戳;检测结果为无效时,不对列表作处理;
如果该地址列表中存在该地址但该地址超时;则对此转发地址进行有效性检测(检测方法如步骤402中所示),检测结果为有效时,用当前时间更新转发地址对应的时间戳;检测结果为无效,则将该地址从有效地址列表中删除。
转发地址有效性检测模块维护该有效地址列表有助于提高系统效率。
本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明做出各种相应的改变和变形,这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (10)
1.一种优化路由的方法,包含如下步骤:
(a)在进行不同的路由协议之间路由重分配时,在协议报文中填写转发地址;
(b)在计算路由前,检测协议报文中转发地址是否有效;
(c)计算路由,如果转发地址有效,使用该转发地址作为下一跳,如果转发地址无效,不使用该转发地址计算路由。
2.如权利要求1所述的方法,其特征在于:
所述方法应用于以太网或非广播多路访问网络NBMA或帧中继网络。
3.如权利要求1所述的方法,其特征在于:
所述步骤(c)中,计算路由时,如果转发地址无效,对于路由信息协议RIP,将通告该转发地址给本设备的路由设备作为下一跳;对于开放最短路径优先OSPF,将创建该转发地址的路由设备作为下一跳。
4.如权利要求1所述的方法,其特征在于:
所述步骤(b)中,检查转发地址有效性通过如下一种或多种方式实现,使用Ping指令,或通过地址转换协议ARP,或检查配置信息。
5.如权利要求1所述的方法,其特征在于:
所述步骤(b)中,如果转发地址有效性待定,将所述转发地址对应的路由加入一待定路由表,等待获得转发地址有效性检测结果后重新计算路由,执行步骤(c)。
6.如权利要求5所述的方法,其特征在于:
所述重新计算路由还包括如下步骤:获得所述转发地址有效性检测结果后,从所述待定路由表中删除该转发地址对应的路由;如果检测结果为转发地址无效,将通告该转发地址的路由设备或创建该转发地址的路由设备作为下一跳。
7.如权利要求1所述的方法,其特征在于:
所述步骤(b)中,如果转发地址有效性待定,则将该转发地址作为下一跳,相应的路由加入路由表,设置待定标志位,指示该路由不可用,获得所述转发地址有效性检测结果后,如果检测结果为转发地址有效,则删除相应路由的所述待定标志位。
8.如权利要求1所述的方法,其特征在于:
设置一有效地址列表,表中记录了有效地址和该地址有效的条件,所述步骤(b)中,检查转发地址有效性时,如果该转发地址位于所述有效地址列表中,且满足该地址有效的条件,则该转发地址有效。
9.一种优化路由的装置,包括路由计算模块,其特征在于,还包括转发地址有效性检测模块,其中,
所述转发地址有效性检测模块,用于在进行不同的路由协议之间路由重分配时,在计算路由前,检测协议报文中转发地址是否有效,将检测结果发送给所述路由计算模块;
所述路由计算模块,用于根据检测结果计算路由,如果转发地址有效,使用该转发地址作为下一跳,如果转发地址无效,不使用该转发地址计算路由。
10.如权利要求9所述的装置,其特征在于:
所述转发地址有效性检测模块维护一个有效地址列表,表中记录了有效地址和该地址有效的条件,所述检测模块进行转发地址有效性检查时,检查该转发地址是否位于所述有效地址列表中,如果位于,且满足该地址有效的条件,则该转发地址有效。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007103078135A CN101217471B (zh) | 2007-12-28 | 2007-12-28 | 一种优化路由的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007103078135A CN101217471B (zh) | 2007-12-28 | 2007-12-28 | 一种优化路由的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101217471A CN101217471A (zh) | 2008-07-09 |
CN101217471B true CN101217471B (zh) | 2011-12-07 |
Family
ID=39623834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007103078135A Expired - Fee Related CN101217471B (zh) | 2007-12-28 | 2007-12-28 | 一种优化路由的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101217471B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011029241A1 (zh) * | 2009-09-14 | 2011-03-17 | 华为技术有限公司 | 一种路由处理方法、系统和路由器 |
CN102957573B (zh) * | 2011-08-24 | 2017-05-17 | 中兴通讯股份有限公司 | 一种路径检测的实现方法及节点 |
CN104243320A (zh) * | 2014-09-10 | 2014-12-24 | 珠海市君天电子科技有限公司 | 一种优化网络访问路径的方法及装置 |
-
2007
- 2007-12-28 CN CN2007103078135A patent/CN101217471B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101217471A (zh) | 2008-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2432164B1 (en) | Node device and communication method | |
CN1973486B (zh) | 在采用受保护链路的数据网络中避免微环的方法和装置 | |
CN101953124B (zh) | 在数据通信网络中构造绕过多条不可用链路的修复路径 | |
RU2574812C2 (ru) | Способ и узел детектирования маршрута в сети передачи данных | |
US9264327B2 (en) | Communication network management system, method and program, and management computer | |
EP3028434B1 (en) | Packet forwarding | |
JPWO2010018755A1 (ja) | トランスポート制御サーバ、ネットワークシステム及びトランスポート制御方法 | |
CN110391951A (zh) | 以太网段标识邻接检测处理方法及装置、存储介质 | |
JP5884892B2 (ja) | ネットワークシステム、コントローラ、及び負荷分散方法 | |
CN106130819B (zh) | Vtep异常的检测方法及装置 | |
EP2599270B1 (en) | A network device and method of routing traffic | |
CN101355486A (zh) | 一种路由切换的方法、设备及系统 | |
JP6443864B2 (ja) | パケット紛失検出を実装するための方法、装置、およびシステム | |
CN105721321A (zh) | 一种等价多路径的出接口更新方法及装置 | |
CN108768796A (zh) | 链路故障检测方法及装置 | |
CN101599898A (zh) | 多链路故障环境下采用lfa方式的路由器避免环路的方法 | |
CN103532840B (zh) | 一种链路切换方法和装置 | |
CN103297340A (zh) | Mpls和bgp组网中的路由收敛方法和设备 | |
CN101217471B (zh) | 一种优化路由的方法及装置 | |
CN111064668A (zh) | 路由表项的生成方法、装置及相关设备 | |
CN102769552B (zh) | 一种通过bfd检测lsp时传输bfd报文的方法和设备 | |
CN111970196B (zh) | 一种建立备份路径、切换备份路径的方法和路由设备 | |
CN101478489B (zh) | 一种is-is协议控制默认路由通告的方法和系统 | |
US8699376B2 (en) | Method and system for de-synchronizing link state message refreshes | |
JP5726062B2 (ja) | ネットワーク中継装置及び経路制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111207 |