首页> 中国专利> 一种避免路由黑洞的方法、装置及路由设备

一种避免路由黑洞的方法、装置及路由设备

摘要

本发明公开了一种避免路由黑洞的方法、装置及路由设备,该方法包括:第二路由设备根据第一路由设备发送的路径开销TLV中第一路径开销值和对应倍数值,计算出第一路由设备和第二路由设备之间的第二路径开销值;第二路径开销值满足使用该第二路径开销值进行路由计算时,同一路由通过第一路由设备的路径的路径开销值均大于未通过第一路由设备的路径的路径开销值;第二路由设备根据第二路径开销值将数据报文经由未通过第一路由设备的备份路径转发。本发明保证在IS-IS协议窄度量模式下,第一路由设备完成重启后的短暂时间内,第二路由设备必然经由未通过第一路由设备的备份路径转发数据报文,更可靠地解决了路由黑洞的问题。

著录项

  • 公开/公告号CN101984596A

    专利类型发明专利

  • 公开/公告日2011-03-09

    原文格式PDF

  • 申请/专利权人 北京星网锐捷网络技术有限公司;

    申请/专利号CN201010531390.7

  • 发明设计人 兰加兴;

    申请日2010-11-04

  • 分类号H04L12/56;

  • 代理机构北京同达信恒知识产权代理有限公司;

  • 代理人郭润湘

  • 地址 100036 北京市海淀区复兴路29号中意鹏奥大厦东楼11层

  • 入库时间 2023-12-18 01:43:44

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-05-30

    授权

    授权

  • 2011-04-20

    实质审查的生效 IPC(主分类):H04L12/56 申请日:20101104

    实质审查的生效

  • 2011-03-09

    公开

    公开

说明书

技术领域

本发明涉及计算机网络通信领域,尤其涉及一种避免路由黑洞的方法、装置及路由设备。

背景技术

一个网络一般是由多台路由设备组成,不同路由设备之间互相配合完成用户数据的转发,如果一台路由设备(比如设备A)通过路由协议学习知道如果要到达目的地址(比如地址D)需要通过另一台路由设备(比如设备B),可是路由设备B却没有到达目的地址D的路由,路由设备A将到达目的地址D的用户数据转发给路由设备B,路由设备B由于没有目的地址D的路由,只能将数据丢弃,这种现象称为“路由黑洞”(Black hole),这种现象一般情况下持续时间比较短,所以也被称瞬时路由黑洞(Transient Black hole)。

以图1的瞬时路由黑洞的场景为例,图1中的源主机S要访问服务器D中间要经过多台路由设备,有两种路径可走:第一条路径是S-RTE-RTA-RTB-RTD-RTF-D,第二条路径是S-RTE-RTA-RTC-RTD-RTF-D。自治域1内路由设备RTA、RTB、RTC、RTD运行边界网关协议(Border Gateway Protocol,BGP)和中间系统到中间系统路由协议(Intermediate System to IntermediateSystem,IS-IS),每个路由器的BGP协议模块负责学习其他自治域的路由(自治域2和自治域3的路由),IS-IS协议模块则负责自治域1内的路由学习。正常情况下,路由设备RTA通过其BGP协议模块学习知道到达目的服务器D的下一跳为RTD,至于RTA如何到达RTD,BGP协议模块不能知晓,需要由其IS-IS协议模块来学习。IS-IS模块通过学习知道RTA既可以通过RTB,也可以通过RTC到达RTD,由于RTA通过RTB到达RTD的线路质量好(比如带宽较高)即路径开销值小,经过权衡,RTA最终选择RTB作为到达RTD的下一跳。这样,源主机S选择第一条路径即S-RTE-RTA-RTB-RTD-RTF-D作为主路径访问服务器D,第二条路径作为备份路径,只有第一条路径不通的时候才选用。

在网络运行过程中,如果RTB由于设备升级或硬件故障等原因下电重启,第一条路径S-RTE-RTA-RTB-RTD-RTF-D瞬间就不能用了,源主机S迅速选择第二条路径访问服务器D。

RTB重启完毕,立即发送IS-IS协议报文,迅速和RTA、RTD建立起IS-IS邻居关系并完成路由收敛,RTA通过IS-IS协议已经知道RTB恢复正常,根据IS-IS路由选择结果,这时源主机S应通过主路径即通过重启路由设备RTB和服务器D之间通信。

在RTB与RTA、RTD建立IS-IS邻居同时,RTB也要与RTA、RTD建立BGP邻居,与IS-IS路由的快速收敛相比,BGP路由的收敛就慢了很多。BGP路由收敛慢的原因如下:首先,BGP是每隔15秒(默认时间)与BGP邻居尝试一次建立连接,如果BGP邻居的IP地址是直连的地址,那么BGP邻居建立时间为0~15秒,而很多情况下,BGP邻居IP地址必须通过IS-IS协议来学习的,那么BGP邻居必须等IS-IS路由收敛完成才能开始建立,建立时间就会超过15秒。其次,BGP邻居建立后,路由器的BGP协议模块开始同步大量外部路由并进行路由计算,最后根据计算结果安装路由到路由表,这些操作都会比IS-IS路由收敛过程慢些,特别是安装大量路由到路由表的耗时比较大。

在RTA通过IS-IS知道可以通过RTB到达RTD的时候,RTB还没学习到服务器D的BGP路由。这样,当RTA将到达服务器D的数据转发给RTB时,RTB由于没有到达服务器D的BGP路由,只能将数据丢弃,造成了瞬时路由黑洞,直到RTB通过BGP协议学习到服务器D的BGP路由。

现有标准RFC3277针对上述路由黑洞的问题,提出下述解决方案:

一旦路由设备重启完成,并和其他路由设备建立IS-IS邻居关系后,将所有经过发生重启的路由设备(以下称为重启路由设备)的路径开销值设置得非常高并通过链路状态数据包(Link State Packets,LSP)报文立即发送出去。邻居收到该LSP报文后,通过比较路径开销,发现通过该重启路由设备的路径开销大于备份路径的路径开销,于是继续选择备份路径转发数据。当BGP路由完成收敛或过了指定时间(比如5分钟),重启路由设备发送携带正常路径开销值的LSP报文发给邻居,邻居收到后,根据IS-IS协议学习结果重新选择该重启路由设备作为下一跳转发数据,这样,路由黑洞就被避免了。例如图1中,RTB重启后,如果与RTA建立新的邻居关系,就立即发送携带高路径开销值的LSP报文,RTA收到后,继续使用RTC作为到达服务器D的下一跳。当RTB的BGP收敛完成或过了指定时间,RTB发送携带正常路径开销值的LSP报文,RTA收到后,根据IS-IS协议学习结果选择RTB作为到达RTD的下一跳。

但上述解决方案存在下述问题:

在IS-IS协议窄度量模式(narrow metric)下,由于IS-IS协议报文规定只能用6个比特位来设置路径开销即最大值只能为63(例如图1中RTB到RTA的路径开销最大值只能设置为63),如果备份路径总开销比通过重启路由设备的路径总开销大63(或更大),那么即使将通过重启路由设备的路径开销设置成最大值63,数据还会通过重启路由设备的路径来转发,依然不能避免瞬时路由黑洞的问题。另外,依靠BGP收敛完成或过了指定时间(比如5分钟)将数据从备份路径切换回主线路的做法,如果存在时间值设置太小,而BGP路由数量巨大来不及收敛的话,瞬时路由黑洞的问题依然存在。

发明内容

本发明提供一种避免路由黑洞的方法、装置及路由设备,用以更可靠地解决现有技术中在路由器完成重启之后产生的路由黑洞的问题。

本发明提供的一种避免路由黑洞的方法,包括:

作为发生重启的第一路由设备的邻居的第二路由设备接收所述第一路由设备在完成重启后发送的第一链路状态数据包LSP报文;

所述第二路由设备提取所述第一LSP报文携带的路径开销类型-长度-值TLV,根据所述路径开销TLV中第一路由设备和第二路由设备之间实际的第一路径开销值和所述第一路径开销值的倍数值,计算出所述第一路由设备和第二路由设备之间的第二路径开销值;所述第二路径开销值满足使用该第二路径开销值进行路由计算时,同一路由通过所述第一路由设备的路径的路径开销值均大于未通过所述第一路由设备的路径的路径开销值;

所述第二路由设备根据所述第二路径开销值进行路由计算,并根据计算结果更新路由表。

本发明实施例提供的一种避免路由黑洞的方法之二,包括:

第一路由设备完成重启后,与第二路由设备建立起邻居关系;

所述第一路由设备根据自身和第二路由设备之间实际的第一路径开销值和预设的与所述第一路径开销值对应的倍数值,生成路径开销类型-长度-值TLV;所述第一路径开销值与所述倍数值的乘积满足:将所述乘积作为第一路由设备和第二路由设备之间的路径开销值进行路由计算时,同一路由通过所述第一路由设备的路径的路径开销值均大于未通过所述第一路由设备的路径的路径开销值;

将所述路径开销TLV携带在第一链路状态数据包LSP报文中发送至所述第二路由设备。

本发明实施例提供的避免路由黑洞的装置之一,包括:

接收单元,用于接收所属路由设备的邻居路由设备在完成重启后发送的第一链路状态数据包LSP报文;

路径开销计算单元,用于提取所述第一LSP报文携带的路径开销类型-长度-值TLV,根据所述路径开销TLV中所属路由设备和该完成重启的邻居路由设备之间实际的第一路径开销值和所述第一路径开销值的倍数值,计算出所属路由设备和该完成重启的邻居路由设备之间的第二路径开销值;所述第二路径开销值满足使用该第二路径开销值进行路由计算时,同一路由通过该完成重启的邻居路由设备的路径的路径开销值均大于未通过该完成重启的邻居路由设备的路径的路径开销值;

路由更新单元,用于根据所述第二路径开销值进行路由计算,并根据计算结果更新路由表。

本发明实施例提供的避免路由黑洞的装置之二,包括:

邻居建立单元,用于在所属路由设备完成重启后,建立所属路由设备和与其相邻的路由设备之间的邻居关系;

路径开销类型-长度-值TLV生成单元,用于根据所属路由设备和邻居路由设备之间实际的第一路径开销值和预设的与第一路径开销值对应的倍数值,生成路径开销类型-长度-值TLV;所述第一路径开销值与所述倍数值的乘积满足:使用将所述乘积作为所属路由设备和邻居路由设备之间的路径开销值进行路由计算时,同一路由通过该所属路由设备的路径的路径开销值均大于未通过该所属路由设备的路径的路径开销值;

发送单元,用于将所述路径开销TLV携带在第一链路状态数据包LSP报文中发送至所述邻居路由设备。

本发明实施例提供的路由设备,包括本发明实施例提供的上述避免路由黑洞的装置之一和/或之二。

本发明实施例的有益效果包括:

本发明实施例提供的避免路由黑洞的方法、装置及路由设备,作为发生重启的第一路由设备的邻居的第二路由设备接收第一路由设备发送的携带路径开销TLV的第一LSP报文,第二路由设备根据该路径开销TLV中的第一路由设备和第二路由设备之间实际的第一路径开销值和对应的倍数值,计算出第一路由设备和第二路由设备之间的第二路径开销值,第二路径开销值满足使用该第二路径开销值进行路由计算时,同一路由通过第一路由设备的路径开销值均大于未通过第一路由设备的路径的路径开销值,这样,可保证在第一路由设备完成重启之后的短暂时间内(此时BGP路由尚未收敛完成),第二路由设备必然通过其他未经过第一路由设备的备份路径来转发数据报文,避免了现有技术窄度量模式下,即使第一路由设备将其与第二设备之间的路径开销设置为最大值,由于备份路径开销值过大造成数据报文通过未学习到BGP路由的第一路由设备转发形成的路由黑洞的问题。

附图说明

图1为现有RFC3277提供的瞬时路由黑洞的场景的示意图;

图2为本发明实施例提供的避免路由黑洞的方法的流程图之一;

图3为本发明实施例提供的路径开销TLV的格式的示意图;

图4为本发明实施例提供的避免路由黑洞的方法的流程图之二;

图5为本发明实施例提供的下一跳TLV的格式的示意图;

图6为本发明实施例提供的避免路由黑洞的方法的流程图之三;

图7为本发明实施例提供的避免路由黑洞的方法的流程图之四;

图8为本发明实施例提供的避免路由黑洞的装置的结构示意图之一;

图9为本发明实施例提供的避免路由黑洞的装置的结构示意图之二。

具体实施方式

下面结合附图,对本发明实施例提供的一种避免路由黑洞的方法、装置及路由设备分别进行详细地说明。

本发明实施例提供的避免路由黑洞的方法,在作为发生重启的第一路由设备的邻居的第二路由器设备的一侧,如图2所示,包括下述步骤:

S201、第二路由设备接收第一路由设备在完成重启后发送的第一链路状态数据包(Link-State Packet,LSP)报文;

S202、第二路由设备提取第一LSP报文携带的路径开销类型-长度-值(Type-Length-Value,TLV),根据该路径开销TLV中第一路由设备和第二路由设备之间实际的第一路径开销值和预设的该第一路径开销值对应的倍数值,计算出所述第一路由设备和第二路由设备之间的第二路径开销值;

在本步骤S202中,第二路径开销值满足使用该第二路径开销值进行路由计算时,同一路由通过第一路由设备的路径的路径开销值均大于未通过第一路由设备的路径的路径开销值;

S203、第二路由设备根据第二路径开销值进行路由计算,并根据计算结果更新本地路由表;

下面对上述各步骤进行详细说明。

在上述步骤S201之后,作为第一路由设备的邻居的第二路由设备清除本地LSP报文数据库存储的该第一路由设备在发生重启之前发送的所有LSP报文,将接收到的第一LSP报文进行存储,并通过除了连接该第一路由设备的接口之外其他运行IS-IS协议的接口进行泛洪转发。

在上述步骤S202中,第一路由设备发送给第二路由设备的第一LSP报文与现有技术中的LSP报文有所不同,在第一LSP报文中,携带有了本发明实施例定义的路径开销TLV,如图3所示的是一个路径开销TLV具体格式的示意图。

在该路径开销TLV中包含:

类型值字段;

长度值字段;

路径正常值字段;

路径倍数值字段。

上述路径正常值字段,记录了第一路由设备和第二路由设备之间根据具体网络情况确定的实际路径开销值(即第一路径开销值),第一路由设备和第二路由设备之间的实际路径开销值的确定方法属于本领域的现有技术,在此不再赘述。

上述路径倍数值字段,记录了预先设定的路径开销值的倍数值,这个倍数值必须满足下面的条件:如果使用该倍数值与第一路径开销值相乘的结果作为第一路由设备和第二路由设备之间的路径开销值进行路由计算的话,同一路由通过重启后的第一路由设备的所有路径的路径开销值均大于未通过该重启后的第一路由设备的路径的路径开销值。

第一路径开销值的倍数值预先设定并设置于第一路由设备中,在设定这个倍数值时,如果经过第一路由设备的路径有多条,路径倍数值可根据各个路径的带宽进行微调,带宽大的路径,可以将倍数值设置的稍小,带宽小的路径,可以将倍数值设置的稍大,但都必须满足前述的条件。

在具体实施时,在第一路由设备发送给第二路由设备的第一LSP报文中,还可以同时携带IS-IS协议允许设置的路径开销最大值,在第二路由设备接收到该第一LSP报文之后,如果该第二路由设备当前处于窄度量模式,那么按照本发明实施例提供的上述步骤S202~S203规避路由黑洞,如果该第二路由设备当前未处于窄度量模式,那么可按照现有技术的做法即直接使用该路径开销最大值作为第一路由设备和第二路由设备之间的路径开销值进行路由计算。当然,不论第二路由设备是否处于窄度量模式,执行上述步骤S201~S203都能够避免路由黑洞的问题。

在上述步骤S202中,第二路由设备根据根据该路径开销TLV中第一路由设备和第二路由设备之间实际的第一路径开销值和该第一路径开销值的倍数值,计算出所述第一路由设备和第二路由设备之间的第二路径开销值的过程,就是将第一路径开销值与第一开销值的倍数值相乘得到第二路径开销值的过程。第二路径开销值可以规避现有IS-IS协议对路径开销最大值的大小的限制,保证第二路由设备在第一路由设备刚重启后,使用该第二路径开销值进行路由计算的结果,将不经过该重启的第一路由设备的路径作为转发数据报文的路径。

在上述步骤S203中,第二路由设备更新本地路由表,就是将未包含第一路由设备的路由安装至本地路由表的过程。第二路由设备根据第二路径开销值进行路由计算,由于同一个路由的所有经过该第一路由设备的路径的路径开销值,均大于未通过该第一路由设备的路径的路径开销值,那么按照路径开销值最小为最优的路由计算策略,必然将未经过该第一路由设备的路径作为计算结果,也就是将未包含有该第一路由设备的路由安装至本地的路由表,由此第二路由设备将目的地址归属为与本自治域BGP路由出口的路由设备相连的其他自治域的数据报文经由不包含该第一路由设备的路由进行转发。

以图1的网络拓扑图为例,发生重启的路由设备RTB向其邻居RTA发送第一LSP报文,RTA根据第一LSP报文中的路径开销TLV,计算RTA和RTB之间的第二路径开销值,并根据该第二路径开销值进行路由计算,在RTB重启完成之后的短暂时间内,选择备用的路径即RTA-RTC-RTD的路径来转发从源主机S发送的报文。这样可避免在BGP收敛完成之前,RTA选择将源主机S发送的报文发送至RTB,而RTB由于BGP收敛尚未完成,无法获知到达服务器D的BGP路由从而丢弃该报文所产生的路由黑洞问题。

为了让经过RTB的主路径尽快恢复使用,避免现有技术中等待指定时间后不论BGP收敛是否收敛完成即将数据报文转发路径转回主用路径(经由第一路由设备的路径)所带来的路由黑洞问题,本发明实施例在上述步骤S203即第二路由设备将未通过所述第一路由设备的路由安装至路由表之后,如图4所示,还执行下述步骤:

S401、第二路由设备利用第一路径开销值进行路由计算;

在本步骤S401中,第二路由设备将第一路径开销值作为自身与第一路由设备之间的路径开销值(也即使用两者之间真实的路径开销值)进行路由计算。

S402、根据路由计算的结果判断第一路由设备是否是到BGP路由出口的最佳IS-IS下一跳,若是,那么执行下述步骤S403,否则退出该流程。

S403、第二路由设备生成下一跳路径TLV,该下一跳路径TLV包括作为BGP路由出口的路由设备的标识和作为最佳IS-IS下一跳的第一路由设备的标识;

本发明实施例中下一跳路径TLV的格式如图5所示,该下一跳路径TLV包括类型值字节、长度值字节、以及BGP路由出口的路由设备的标识字节和最佳IS-IS下一跳的标识的字节。该图5所示的TLV中,指示了到达多个BGP路由出口的路由设备的ID,以及对应的最佳IS-IS下一跳的ID(也就是第一路由设备的ID)。在具体实施时,该下一跳路径TLV也可以只携带一个BGP路由出口的路由设备的ID以及对应的最佳IS-IS下一跳的ID,在下一跳路径TLV中包含多个BGP路由出口的路由设备的ID时,还可以在每个BGP路由出口的路由设备的ID之后,增加携带该BGP路由出口对应的QoS标记。

S404、第二路由设备完成本地LSP数据库与其邻居路由设备的LSP数据库的同步;

S405、第二路由设备将步骤S403生成的下一跳路径TLV携带在hello报文中发送至第一路由设备。

第一路由设备收到该hello报文之后的处理流程,在下述第一路由设备一侧的描述过程进一步说明。

本发明实施例提供的避免路由黑洞的方法,在作为发生重启的第一路由设备的一侧,如图6所示,包括下述步骤:

S601、发生重启的第一路由设备完成重启后,和与其相邻的第二路由设备建立起邻居关系;

S602、第一路由设备根据自身和第二路由设备之间实际的第一路径开销值和预设的与第一路径开销值对应的倍数值,生成路径开销TLV;该第一路径开销值与倍数值的乘积满足:将乘积作为第一路由设备和第二路由设备之间的路径开销值进行路由计算时,同一路由所有通过第一路由设备的路径的路径开销值均大于未通过第一路由设备的路径的路径开销值;

S603、将路径开销TLV携带在第一LSP报文中发送至第二路由设备。

需要说明的是,本步骤S601~S603的执行时间在图2所示的步骤S201之前。

在上述步骤S603之后,也就是在上述第二路由设备将生成的下一跳路径TLV携带在hello报文中发送至第一路由设备之后,如图7所示,还包括下述步骤:

S701、第一路由设备接收第二路由设备发送的携带有下一跳TLV的hello报文;下一跳路径TLV包括BGP路由出口的路由设备的标识和第二路由设备的最佳IS-IS下一跳的路由设备的标识;

S702、第一路由设备确定第二路由设备的最佳IS-IS下一跳的路由设备为自身,执行路由计算,判断是否能够达到BGP路由出口的路由设备;若判断结果为是,执行下述步骤S703;若否,退出本流程。

S703、第一路由设备生成IS-IS策略路由并保存至本地路由表中;该IS-IS策略路由定义了将第二路由设备发送的数据报文转发给BGP路由出口的路由设备的路由;

该策略路由的优先级与BGP路由的优先级等同,如果第一路由设备中存在比BGP路由优先级更高的路由,那么该策略路由并不生效,第一路由设备将按照优先级更高的路由转发数据,但没有更高优先级的路由的情况下,第一路由设备将按照策略路由定义的路由来转发数据报文。

在本自治域内只有一个BGP出口的情况下,第一路由设备在收到第二路由设备发送的数据报文时,如果是该数据报文是本自治域内的数据报文(目的地址归属于本自治域),那么按照已经学习到的IS-IS路由转发,如果该数据报文不是本自治域内的数据报文,那么按照策略路由,直接将该数据报文转发给BGP路由出口的路由设备即可。

若在前述步骤S402中,由于本自治域内存在多个BGP路由出口,第二路由设备发送的hello报文中的下一跳路径TLV中携带有每个BGP路由出口对应的QoS标记,那么在本步骤S703第一路由设备,相应生成的IS-IS策略路由中也携带有该BGP路由出口对应的QoS标记。

相应地,第二路由设备发送数据报文时可在数据报文中打上BGP路由出口的Qos标记,那么第一路由设备在重启完成之后,BGP路由收敛完成之前,可以根据IS-IS策略路由和数据报文中的BGP路由出口的Qos标记,将该数据报文转发至与Qos标记对应的BGP路由出口的路由设备。

S704、第一路由设备向第二路由设备发送未携带路径开销TLV的第二LSP报文。

在本步骤S704中,第一路由设备发送给第二路由设备的第二LSP报文可采用现有技术中LSP报文的格式,即取消了路径开销TLV的LSP报文,如果之前发送的第一LSP报文中除了携带路径开销TLV之外还携带IS-IS协议允许设置的路径开销最大值,在本步骤中,第一路由设备也需要取消携带该路径开销最大值。第一路由设备在该第二LSP报文中只需要携带第一路由设备和第二路由设备之间的实际的第一路径开销值即可。

第二路由设备收到第二LSP报文后,采用第一路由设备和第二路由设备之间实际的第一路径开销值进行路由计算,选择第一路由设备作为到达BGP路由出口的下一跳,将需要经BGP路由出口的路由设备转发的数据报文发送给第一路由设备。第一路由设备在收到第二路由设备转发的报文之后,直接按照IS-IS策略路由,将该数据报文转发至BGP路由出口的路由设备,而不需要像现有技术中那样,需要等待BGP完成收敛或者等待指定的时间之后,数据报文才能经由第一路由设备发送至BGP路由出口的路由设备,在避免路由黑洞的同时,还提高了主备路径的切换速度。

上述过程以图1所示的网络拓扑为例,发生重启的RTB根据RTA发送的hello报文中的下一跳TLV,生成一条优先级与BGP路由等同的策略路由,该策略路由指示RTB,如果是RTA转发的且目的地址为自治域2内某个设备例如服务器D的数据报文,转发给与自治域2相连的作为BGP出口的RTD。

RTB根据该策略路由,将邻居RTA转发的发往自治域2内服务器D的数据报文直接转发给下一跳RTD。

在第一路由设备转发数据报文至BGP路由出口的路由设备的同时,第一路由设备判断BGP是否收敛完成,若判断BGP收敛完成,第一路由设备删除自身路由表中的IS-IS策略路由。此后按照BGP路由的指示进行数据转发。

基于同一发明构思,本发明实施例还提供了一种避免路由黑洞的装置和路由设备,由于该避免路由黑洞的装置和路由设备解决问题的原理与前述避免路由黑洞的方法相似,因此该实现路由泛洪的装置和交换机的实施可以参见方法的实施,重复之处不再赘述。

本发明实施例提供的避免路由黑洞的装置之一,如图8所示,包括:

接收单元801,用于接收所属路由设备的邻居路由设备在完成重启后发送的第一链路状态数据包LSP报文;

路径开销计算单元802,用于提取第一LSP报文携带的路径开销类型-长度-值TLV,根据所述路径开销TLV中所属路由设备和该完成重启的邻居路由设备之间实际的第一路径开销值和所述第一路径开销值的倍数值,计算出所属路由设备和该完成重启的邻居路由设备之间的第二路径开销值;所述第二路径开销值满足使用该第二路径开销值进行路由计算时,同一路由通过该完成重启的邻居路由设备的路径的路径开销值均大于未通过该完成重启的邻居路由设备的路径的路径开销值;

路由更新单元803,用于根据所述第二路径开销值进行路由计算,并根据计算更新路由表。

进一步地,本发明实施例提供的避免路由黑洞的装置,如图8所示,还包括:下一跳TLV生成单元804和Hello报文发送单元805;其中:

路径开销计算单元802,还用于在路由安装单元更新路由表之后,利用所述第一路径开销值进行路由计算;

下一跳TLV生成单元804,用于在所述路径开销计算单元802根据第一路径开销值进行路由计算的结果确定该完成重启的邻居路由设备是到BGP路由出口的最佳IS-IS下一跳,则生成下一跳路径TLV;所述下一跳路径TLV包括所述BGP路由出口的路由设备的标识和该完成重启的邻居路由设备的标识;

Hello报文发送单元805,用于在完成所属路由器本地LSP数据库与其各邻居路由设备的LSP数据库的同步之后,将所述下一跳路径TLV携带在hello报文中发送至该完成重启的邻居路由设备。

本发明实施例提供的一种避免路由黑洞的装置之二,如图9所示,具体包括:

邻居建立单元901,用于在所属路由设备完成重启后,建立所属路由设备和与其相邻的路由设备之间的邻居关系;

路径开销TLV生成单元902,用于根据所属路由设备和邻居路由设备之间实际的第一路径开销值和预设的与第一路径开销值对应的倍数值,生成路径开销TLV;第一路径开销值与所述倍数值的乘积满足:使用将所述乘积作为所属路由设备和邻居路由设备之间的路径开销值进行路由计算时,同一路由通过该所属路由设备的路径的路径开销值均大于未通过该所属路由设备的路径的路径开销值;

发送单元903,用于将所述路径开销TLV携带在第一LSP报文中发送至所述邻居路由设备。

进一步地,本发明实施例提供的上述避免路由黑洞的装置,如图9所示,还包括:Hello报文接收单元904、路由计算单元905和IS-IS策略路由生成单元906;

Hello报文接收单元904,用于接收所述邻居路由设备发送的携带有下一跳TLV的hello报文;所述下一跳路径TLV包括BGP路由出口的路由设备的标识和所述邻居路由设备的最佳IS-IS下一跳的路由设备的标识;

路由计算单元905,用于确定所述邻居路由设备的最佳IS-IS下一跳的路由设备为所属路由设备时,进行路由计算,判断所属路由设备是否能够达到所述BGP路由出口的路由设备;

IS-IS策略路由生成单元906,用于在路由计算单元判断结果为是时,生成优先级与BGP路由相同的IS-IS策略路由并保存至所属路由设备本地路由表中,所述IS-IS策略路由定义了将所述邻居路由设备转发的数据报文转发给所述BGP路由出口的路由设备的路由;

发送单元903,还用于向所述邻居路由设备发送未携带路径开销TLV的第二LSP报文。

进一步地,本发明实施例提供的上述避免路由黑洞的装置中的发送单元903,还用于在向所述邻居路由设备发送第二LSP报文之后,按照所述IS-IS策略路由,转发所述邻居路由设备发送的数据报文至所述BGP路由出口的路由设备。

进一步地,本发明实施例提供的上述避免路由黑洞的装置,如图9所示,还可以包括:删除单元907,用于判断BGP是否收敛完成,并在BGP收敛已完成时,删除所属路由设备本地路由表中的所述IS-IS策略路由。

本发明实施例提供的两种上述避免路由黑洞的装置,可以设置于同一个路由设备中,也可以分别在两个不同的路由设备上实现。

本发明实施例还提供了一种路由设备,该路由设备同时包含有本发明实施例提供的上述两种避免路由黑洞的装置或者包含其中任意一个。

本发明实施例提供的避免路由黑洞的方法、装置及路由设备,作为发生重启的第一路由设备的邻居的第二路由设备接收第一路由设备发送的携带路径开销TLV的第一LSP报文,第二路由设备根据该路径开销TLV中的第一路由设备和第二路由设备之间实际的第一路径开销值和对应的倍数值,计算出第一路由设备和第二路由设备之间的第二路径开销值,第二路径开销值满足使用该第二路径开销值进行路由计算时,同一路由所有通过第一路由设备的路径开销值均大于未通过第一路由设备的路径的路径开销值,这样,可保证在第一路由设备完成重启之后的短暂时间内,第二路由设备必然通过其他未经过第一路由设备的备份路径来转发数据报文,避免了现有技术窄度量模式下,即使第一路由设备将其与第二设备之间的路径开销设置为最大值,由于备份路径开销值过大造成数据报文通过未学习到BGP路由的第一路由设备转发形成的路由黑洞的问题。

进一步地,本发明实施例提供的避免路由黑洞的方法、装置及路由设备,第二路由设备再次依据第一LSP报文中的第一路径开销值进行路由计算,如果确定第一路由设备是到达BGP路由出口的最佳IS-IS下一跳,则生成下一跳TLV,并通过hello报文发送给第一路由设备,第一路由设备根据下一跳TLV生成优先级与BGP路由等同的策略路由,该策略路由指示第二路由设备发送目的地址归属于与BGP路由出口的路由设备相连的其他自治域的数据报文经由第一路由设备转发至BGP出口的路由设备,这样,在第一路由设备完成重启,而BGP路由收敛尚未完成之前,直接将第二路由设备发送的目的地址归属于其他自治域的数据报文转发给BGP路由出口的路由设备,而不用像现有技术那样等待BGP完成收敛或者等待指定的时间之后才恢复该主用路径的使用,不仅避免了现有技术中采用等待指定时间后不论BGP路由是否收敛完成即通过发生重启的第一路由设备转发数据报文带来的路由黑洞的问题,而且还提高了备份路径和主用路径之间切换的速度。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号