一种IP网络中重路由的实现方法
技术领域
本发明涉及网络通讯技术领域,具体涉及一种IP网络中重路由的实现方法。
背景技术
在IP(网际协议)网络中,重路由(Reroute)技术不仅可以均衡网络负载,还可以增强网络的可靠性,因此,重路由技术在路由器等网络设备中已经开始广泛的应用。
重路由技术即为一个目的地址配置多个下一跳的网络节点,数据报文可以通过配置的多个下一跳网络节点进行数据传输。当一个下一跳的网络节点失效时,可以继续使用配置的另一个下一跳网络节点进行报文转发,因而重路由技术保证了网络的可靠性。
为一个目的地址配置多个下一跳网络节点可通过运行支持等值路由的路由协议如OSPF(开放式最短路径优先协议)等来实现,也可以由路由器通过其它配置策略如配置静态路由等来实现。
在重路由技术中,当某个下一跳的网络节点失效,应将该网络节点从路由信息中删除。网络节点失效的消息一般是通过路由收敛的过程得到的,当路由器的某一端口失效时,必须要等待一个较长的路由收敛过程才能将以此端口为出端口的路由下一跳从转发信息中删除,因而重路由生效时间较长。在这段路由收敛过程的时间内,数据报文仍然会选择这些下一跳网络节点进行报文转发,而不能及时的重路由到其它可能的负载分担项上,造成重路由生效过程中的丢包率较高。
目前,主要采用IP快速重路由方法、IP路由快速收敛方法来解决重路由生效时间较长而引起的丢包率较高的问题。
IP快速重路由的实现过程如下:
在转发模块中建立一张端口状态表,保存网络设备中每个端口的工作状态。当检测到端口不能正常工作时如物理链路失效或人工操作将端口关闭等,立即更新端口状态表。在报文转发过程中,如果查转发表得到的表项含有多个下一跳的负载分担项,在按照某种规则选定一个下一跳后,在端口状态表中检查这个下一跳出端口的状态,如果该出端口的状态为失效,则使用另一个下一跳进行尝试,直至遍历全部负载分担项为止。在检测到最后一个负载分担项时可以不再检查出端口的状态,而直接使用这个下一跳发送报文。
对于有多块线路卡的分布式路由器和其它类似网络设备,在维护端口状态表的同时,还需要维护一张线路卡状态表。当检测到线路卡不能正常工作时,立即更新线路卡状态表。在报文转发过程中,在检测端口状态表之前,先检查线路卡状态表,如果下一跳的目的线路卡状态为失效,则不必再检查目的端口的状态。
由于检测并更新端口状态的动作比路由收敛的动作快的多,所以本方法可以快速实现重路由功能,有效的解决了数据转发过程中丢包率较高的问题。但是,该方法只能适用于存在等价路径的情况下,在增强的IP快速重路由技术中,由于其支持非等价负载分担的下一跳,所以在IP路由中有一个主用下一跳,一般由IGP(内部路由协议)通过计算决定,为保证在主用下一跳出现故障时数据报文仍可以进行传输,需要由人工静态指定一个备份端口。
由于备份端口是人工指定的,所以当备份端口先于主用端口发生故障时,即使存在其他的备份端口,也不能实现快速重路由的功能,而且,在网络拓扑复杂的情况下不能保证人工静态指定的备份端口最优。
IP路由快速收敛的实现过程如下:
IP路由快速收敛主要是通过算法如SPF(最短路径优先)算法和网络设备优化如对网络设备的定时器优化来加快路由计算的时间,这样,在故障发生时,可以快速发现故障,并快速生成新的路由。
为避免SPF算法造成不必要的路由震荡,可以将SPF只运行于受到拓扑变化影响的树节点上,为了快速发现和响应故障,并通知其他网络设备,需要对网络设备中的fast-hello(快速握手)定时器、fast-flooding(快速散播)定时器、路由计算毫秒定时器等进行优化,使网络节点快速发现故障、快速通知其他邻接节点、并使CPU尽快进行路由计算。
由于该方法是在故障发生后才计算新的路由,使重路由保护倒换速度慢,而且增加了算法的复杂度,需要更强的CPU处理能力,实现成本高。
发明内容
本发明的目的在于,提供一种IP网络中重路由的实现方法,利用协议来确定被保护的端口的备份端口,以实现降低重路由的实现成本,提高网络可靠性的目的。
为达到上述目的,本发明提供的一种IP网络中重路由的实现方法,包括:
a、确定网络节点到下一跳网络节点的端口为需要被保护的端口;
b、通过配置命令模拟被保护的端口故障,根据协议确定所述被保护的端口的备份端口;
c、在所述被保护的端口不能正常工作时,根据所述被保护的端口的备份端口将数据报文传输至所述下一跳网络节点。
所述步骤a中被保护的端口为:网络节点到预定目的地址的最短路径中本网络节点到下一跳网络节点的端口。
所述步骤b中的协议包括:链路状态路由协议。
所述步骤b包括:
在CPU空闲时,根据协议确定所述被保护的端口的备份端口。
所述根据协议确定所述被保护的端口的备份端口的步骤包括:
根据协议的最短路径算法计算并确定网络节点不通过所述被保护的端口到达预定目的地址的最短路径,并将该路径中的本网络节点到下一跳网络节点的端口确定为所述被保护的端口的备份端口。
所述方法还包括:
当所述备份端口出现故障时,根据协议的最短路径算法自动计算并确定网络节点到达预定目的地址的其他最短路径,并将该路径中的本网络节点到下一跳网络节点的端口确定为所述被保护的端口的备份端口。
本发明实施例还提供了另外一种IP网络中重路由的实现方法,包括:
确定网络节点到下一跳网络节点的端口为需要被保护的端口;
通过配置命令模拟被保护的端口故障,根据协议确定所述被保护的端口的备份端口;
存储所述被保护的端口和备份端口的状态信息;
网络节点需要进行数据传输时,获取所述存储的被保护的端口的状态信息并判断;
如果所述被保护的端口为有效状态,网络节点根据所述被保护的端口将数据报文传输至所述下一跳网络节点;
如果所述被保护的端口为失效状态,网络节点根据有效状态的备份端口将数据报文传输至所述下一跳网络节点。
通过上述技术方案的描述可明显得知,本发明利用协议自动确定被保护端口的备份端口,在被保护的端口故障时,就可以快速切换到备份端口,加快了端口保护倒换速度;本发明通过模拟被保护的端口故障来促使协议自动计算并确定其备份端口,使本发明提供的技术方案易于实现;由于本发明的备份端口 是采用最短路径算法计算确定的,所以本发明能够适用于复杂的网络拓扑,并保证包含备份端口的路由是在被保护端口出现故障后的最短路径;在备份端口出现故障时,协议能够自动检测,并自动重新计算新的备份端口,避免了备份端口在被保护的端口故障前出现故障而引起的丢包现象;本发明提供的技术方案针对一个网络节点的一个端口时,能够实现链路保护,针对一个网络节点的所有端口时,能够实现节点保护,在邻接的多个网络节点中分别实现时,能够实现从源网络节点到预定目的地址的整个路径的保护;本发明对备份端口的确定过程可以在CPU空闲的时候进行,且采用普通的最短路径算法即可完成,简化了重路由的实现过程,降低了网络设备开销;从而通过本发明提供的技术方案实现了降低重路由的实现成本,提高网络可靠性的目的。
附图说明
图1是本发明的实现重路由的示意图1;
图2是本发明的实现重路由的示意图2。
具体实施方式
本发明的核心是:确定网络节点到预定目的地址的路由中本网络节点到下一跳网络节点的端口为需要被保护的端口,根据协议确定被保护的端口的备份端口,网络节点根据被保护的端口、备份端口将数据报文传输至所述预定目的地址。
下面基于本发明的核心思想对本发明提供的技术方案做进一步的描述。
在通讯网络中运行链路状态路由协议后,在网络中各个网络节点上都会自动计算并获得从本网络节点到达预定目的地址的最短路径。数据报文就是根据这些预定路由从本网络节点到下一跳网络节点的端口传输至下一跳网络节点并最终传输至预定目的地址的。
为保证预定路由中本网络节点到下一跳网络节点的端口在出现故障时,不 会造成数据报文的丢包现象,本发明需要将该端口确定为需要被保护的端口,然后利用协议如链路状态协议为被保护的端口自动计算并确定备份端口,这样,在被保护的端口出现故障时,网络节点能够将数据报文从本网络节点通过备份端口采用除原路由之外的最短路径传输至对应的下一跳网络节点,并最终传输至预定目的地址。
由于备份端口的确定是由协议根据最短路径算法自动计算得出的,所以,本发明能够保证备份端口是除被保护的端口之外的最优端口,使本发明能够适用于网络拓扑复杂的网络环境中。
利用协议为被保护的端口设置备份端口的方法可以通过模拟被保护的端口故障的模式来实现,即设定被保护的端口故障,使协议自动计算并确定被保护的端口的备份端口。
模拟被保护的端口故障可以通过配置命令的方式来实现,即在配置命令中指定被保护的端口。当协议接收到该配置命令时,协议会自动采用最短路径算法,忽略链路状态数据库中被保护端口的信息来计算一个新的最短路径,将该计算出的新的最短路径中本网络节点到下一跳网络节点的端口确定为被保护的端口的备份端口。
由于利用协议自动计算并确定被保护的端口的备份端口会消耗CPU(中央处理器)的资源,为防止备份端口的自动计算并确定过程减缓网络节点中路由的收敛速度,本发明利用协议自动计算并确定备份端口的过程可以在CPU空闲时进行,判断CPU是否为空闲可根据CPU的资源利用情况来确定。本发明可以将确定备份端口的过程放在网络节点的正常路由计算完毕后进行。
确定了被保护的端口和其备份端口后,可以将被保护的端口和其备份端口的信息均存储在转发表中。
在网络节点需要进行数据报文的传输时,根据转发表中处于有效状态的端口进行数据报文的传输,即当被保护的端口为有效状态时,根据被保护的端口 进行数据报文的传输,当被保护的端口为无效状态时,根据处于有效状态的备份端口进行数据报文的传输。
判断端口是否处于有效状态,可以采用建立端口状态表的方式来解决。在端口状态表中保存网络节点中每个端口的工作状态,根据端口检测结果对端口状态表中的端口状态进行更新。在网络节点进行数据报文传输过程中,可以从端口状态表中获取被保护的端口及备份端口的状态。
协议在检测到备份端口出现故障时,会自动为被保护的端口重新确定一个备份端口,即协议会自动采用最短路径算法,忽略链路状态数据库中被保护端口的信息来计算一个新的最短路径,将该计算出的新的最短路径中本网络节点到下一跳网络节点的端口确定为被保护的端口的备份端口。
这样,在备份端口先于被保护的端口出现故障时,由于协议会自动为被保护的端口确定一个有效状态的备份端口,所以在被保护的端口出现故障时,一定会有一个备份端口处于有效状态,通过进行路由切换,数据报文一定能够通过处于有效状态的备份端口传输至相应的下一跳网络节点,避免了备份端口在被保护的端口故障前出现故障而引起的数据报文的丢包现象,快速、有效的实现了重路由的功能,有效的保证了网络节点中该预定路由传输的可靠性。
上述是以在一个网络节点的一个预定路由中指定被保护的端口,利用协议自动计算并确定备份端口为例进行描述的,如果数据报文从源网络节点到预定目的地址的网络节点的整个传输过程中的各网络节点均使用上述方法,则只要源网络节点与预定目的地址的网络节点间存在可以通达的路径,数据报文就一定可以通过最短路径传输至预定目的地址的网络节点,实现了整个路径的保护,有效的保证了源网络节点与预定目的地址的网络节点间数据传输的可靠性。如果通讯网络的网络节点的各路由中的本网络节点到下一跳网络节点的端口均被指定为被保护的端口,则在该网络节点处就不会发生数据报文丢包的现象,有效的保证了该网络节点数据传输的可靠性,实现了节点的保护。
当网络节点中所有端口均需要进行保护,即均需要设置为被保护的端口时,可采用对节点的每个端口分别设置配置命令来实现,本发明还提供一种方便的设置方法,即在配置命令中指定网络节点,就可以实现对该网络节点中的各端口分别配置备份端口的功能。
下面结合附图1对本发明提供的技术方案进行说明。
在图1中,R1、R2、R3、R4、R5为通讯网络中的网络节点,在上述节点中运行链路状态路由协议后,设定从R1到R5的最短路径为R1-R2-R5,从R3到R5的最短路径为R3-R2-R5。
在R1-R2-R5路由中,指定网络节点R1到R2的端口为被保护的端口,称其为R1-R5主用端口;协议采用最短路径算法会自动计算并确定R1到R3的端口为备份端口,称其为R1-R5备用端口。
在R3-R2-R5路由中,指定网络节点R3到R2的端口为被保护的端口,称其为R3-R5主用端口;协议采用最短路径算法会自动计算并确定R3到R4的端口为备份端口,称其为R3-R5备用端口。
网络节点R1的转发表中会存储R1-R2-R5路由的被保护的端口R1-R5主用端口和备份端口R1-R5备用端口的信息。
网络节点R3的转发表中会存储R3-R2-R5路由的被保护的端口R3-R5主用端口和备份端口R3-R5备用端口的信息。
端口状态表中存储每个端口的工作状态,网络设备维护端口状态表,当检测到某个端口不能正常工作如物理链路失效或人工操作将端口关闭时,立即在端口状态表中更新其状态。
设定网络节点R2失效,则端口状态表中R1-R5主用端口和R3-R5主用端口都会成为失效状态。
当网络节点R1需要将数据报文传输至R5时,由于端口状态表中R1-R5主用端口失效,所以,网络节点R1将数据报文从R1-R5备用端口传输至网络节点R3, 由于端口状态表中R3-R5主用端口失效,所以,网络节点R3将数据报文从R3-R5备用端口传输至网络节点R4,并由网络节点R4将数据报文最终传输至预定目的地址网络节点R5。
从上面的描述过程中可明显看出,只要R1与R5之间存在可以通达的路径,本发明就可以采用通达路径中的最短路径将数据报文传输至预定目的地址。
当图1中R1-R5备用端口先于R1-R5主用端口出现故障时,本发明实现重路由的方法如附图2所示。
在图2中,设定R1-R5主用端口的状态为有效状态时,R1-R5备用端口出现故障。
这样,当网络设备检测到R1-R5备用端口的状态为无效状态时,协议自动采用最短路径算法计算并确定R1-R6-R7-R5为R1-R2-R5和R1-R3-R2-R5之外的最短路径,则将该路径中网络节点R1到R6的端口设定为R1-R5主用端口的备份端口,称其为R1-R5备用端口1。
这样在R1-R5主用端口出现故障时,可以利用R1-R5备用端口1进行数据报文的传输,使数据报文的传输路由能够实现快速切换,避免了数据报文的丢包现象。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化。