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

文档序号:7764190阅读:190来源:国知局
专利名称:一种避免路由黑洞的方法、装置及路由设备的制作方法
技术领域
本发明涉及计算机网络通信领域,尤其涉及一种避免路由黑洞的方法、装置及路 由设备。
背景技术
一个网络一般是由多台路由设备组成,不同路由设备之间互相配合完成用户数据 的转发,如果一台路由设备(比如设备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迅速选择第二条路径访问服务 器D0RTB重启完毕,立即发送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路由收敛
5过程慢些,特别是安装大量路由到路由表的耗时比较大。在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中第一路由设备和第二路由设备之间实际的第一路径开销值和所 述第一路径开销值的倍数值,计算出所述第一路由设备和第二路由设备之间的第二路径开 销值;所述第二路径开销值满足使用该第二路径开销值进行路由计算时,同一路由通过所 述第一路由设备的路径的路径开销值均大于未通过所述第一路由设备的路径的路径开销 值;所述第二路由设备根据所述第二路径开销值进行路由计算,并根据计算结果更新
6路由表。本发明实施例提供的一种避免路由黑洞的方法之二,包括第一路由设备完成重启后,与第二路由设备建立起邻居关系;所述第一路由设备根据自身和第二路由设备之间实际的第一路径开销值和预设 的与所述第一路径开销值对应的倍数值,生成路径开销类型-长度-值TLV ;所述第一路径 开销值与所述倍数值的乘积满足将所述乘积作为第一路由设备和第二路由设备之间的路 径开销值进行路由计算时,同一路由通过所述第一路由设备的路径的路径开销值均大于未 通过所述第一路由设备的路径的路径开销值;将所述路径开销TLV携带在第一链路状态数据包LSP报文中发送至所述第二路由 设备。本发明实施例提供的避免路由黑洞的装置之一,包括接收单元,用于接收所属路由设备的邻居路由设备在完成重启后发送的第一链路 状态数据包LSP报文;路径开销计算单元,用于提取所述第一 LSP报文携带的路径开销类型-长度-值 TLV,根据所述路径开销TLV中所属路由设备和该完成重启的邻居路由设备之间实际的第 一路径开销值和所述第一路径开销值的倍数值,计算出所属路由设备和该完成重启的邻居 路由设备之间的第二路径开销值;所述第二路径开销值满足使用该第二路径开销值进行路 由计算时,同一路由通过该完成重启的邻居路由设备的路径的路径开销值均大于未通过该 完成重启的邻居路由设备的路径的路径开销值;路由更新单元,用于根据所述第二路径开销值进行路由计算,并根据计算结果更 新路由表。本发明实施例提供的避免路由黑洞的装置之二,包括邻居建立单元,用于在所属路由设备完成重启后,建立所属路由设备和与其相邻 的路由设备之间的邻居关系;路径开销类型-长度-值TLV生成单元,用于根据所属路由设备和邻居路由设备 之间实际的第一路径开销值和预设的与第一路径开销值对应的倍数值,生成路径开销类 型-长度-值TLV ;所述第一路径开销值与所述倍数值的乘积满足使用将所述乘积作为所 属路由设备和邻居路由设备之间的路径开销值进行路由计算时,同一路由通过该所属路由 设备的路径的路径开销值均大于未通过该所属路由设备的路径的路径开销值;发送单元,用于将所述路径开销TLV携带在第一链路状态数据包LSP报文中发送 至所述邻居路由设备。本发明实施例提供的路由设备,包括本发明实施例提供的上述避免路由黑洞的装
置之一和/或之二。本发明实施例的有益效果包括本发明实施例提供的避免路由黑洞的方法、装置及路由设备,作为发生重启的第 一路由设备的邻居的第二路由设备接收第一路由设备发送的携带路径开销TLV的第一 LSP 报文,第二路由设备根据该路径开销TLV中的第一路由设备和第二路由设备之间实际的第 一路径开销值和对应的倍数值,计算出第一路由设备和第二路由设备之间的第二路径开销 值,第二路径开销值满足使用该第二路径开销值进行路由计算时,同一路由通过第一路由
7设备的路径开销值均大于未通过第一路由设备的路径的路径开销值,这样,可保证在第一 路由设备完成重启之后的短暂时间内(此时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报文与现有技
8术中的LSP报文有所不同,在第一 LSP报文中,携带有了本发明实施例定义的路径开销TLV, 如图3所示的是一个路径开销TLV具体格式的示意图。在该路径开销TLV中包含类型值字段;长度值字段;路径正常值字段;路径倍数值字段。上述路径正常值字段,记录了第一路由设备和第二路由设备之间根据具体网络情 况确定的实际路径开销值(即第一路径开销值),第一路由设备和第二路由设备之间的实 际路径开销值的确定方法属于本领域的现有技术,在此不再赘述。上述路径倍数值字段,记录了预先设定的路径开销值的倍数值,这个倍数值必须 满足下面的条件如果使用该倍数值与第一路径开销值相乘的结果作为第一路由设备和第 二路由设备之间的路径开销值进行路由计算的话,同一路由通过重启后的第一路由设备的 所有路径的路径开销值均大于未通过该重启后的第一路由设备的路径的路径开销值。第一路径开销值的倍数值预先设定并设置于第一路由设备中,在设定这个倍数值 时,如果经过第一路由设备的路径有多条,路径倍数值可根据各个路径的带宽进行微调,带 宽大的路径,可以将倍数值设置的稍小,带宽小的路径,可以将倍数值设置的稍大,但都必 须满足前述的条件。在具体实施时,在第一路由设备发送给第二路由设备的第一 LSP报文中,还可以 同时携带IS-IS协议允许设置的路径开销最大值,在第二路由设备接收到该第一 LSP报 文之后,如果该第二路由设备当前处于窄度量模式,那么按照本发明实施例提供的上述步 骤S202 S203规避路由黑洞,如果该第二路由设备当前未处于窄度量模式,那么可按照 现有技术的做法即直接使用该路径开销最大值作为第一路由设备和第二路由设备之间的 路径开销值进行路由计算。当然,不论第二路由设备是否处于窄度量模式,执行上述步骤 S201 S203都能够避免路由黑洞的问题。在上述步骤S202中,第二路由设备根据根据该路径开销TLV中第一路由设备和第 二路由设备之间实际的第一路径开销值和该第一路径开销值的倍数值,计算出所述第一路 由设备和第二路由设备之间的第二路径开销值的过程,就是将第一路径开销值与第一开销 值的倍数值相乘得到第二路径开销值的过程。第二路径开销值可以规避现有IS-IS协议对 路径开销最大值的大小的限制,保证第二路由设备在第一路由设备刚重启后,使用该第二 路径开销值进行路由计算的结果,将不经过该重启的第一路由设备的路径作为转发数据报 文的路径。在上述步骤S203中,第二路由设备更新本地路由表,就是将未包含第一路由设备 的路由安装至本地路由表的过程。第二路由设备根据第二路径开销值进行路由计算,由于 同一个路由的所有经过该第一路由设备的路径的路径开销值,均大于未通过该第一路由设 备的路径的路径开销值,那么按照路径开销值最小为最优的路由计算策略,必然将未经过 该第一路由设备的路径作为计算结果,也就是将未包含有该第一路由设备的路由安装至本 地的路由表,由此第二路由设备将目的地址归属为与本自治域BGP路由出口的路由设备相 连的其他自治域的数据报文经由不包含该第一路由设备的路由进行转发。
9
以图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,用于在所属路由设备完成重启后,建立所属路由设备和与其相 邻的路由设备之间的邻居关系;
12
路径开销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中的第一路由设备和第二路由设备之间实际的第 一路径开销值和对应的倍数值,计算出第一路由设备和第二路由设备之间的第二路径开销 值,第二路径开销值满足使用该第二路径开销值进行路由计算时,同一路由所有通过第一 路由设备的路径开销值均大于未通过第一路由设备的路径的路径开销值,这样,可保证在 第一路由设备完成重启之后的短暂时间内,第二路由设备必然通过其他未经过第一路由设 备的备份路径来转发数据报文,避免了现有技术窄度量模式下,即使第一路由设备将其与
13第二设备之间的路径开销设置为最大值,由于备份路径开销值过大造成数据报文通过未学 习到BGP路由的第一路由设备转发形成的路由黑洞的问题。进一步地,本发明实施例提供的避免路由黑洞的方法、装置及路由设备,第二路由 设备再次依据第一 LSP报文中的第一路径开销值进行路由计算,如果确定第一路由设备是 到达BGP路由出口的最佳IS-IS下一跳,则生成下一跳TLV,并通过hello报文发送给第一 路由设备,第一路由设备根据下一跳TLV生成优先级与BGP路由等同的策略路由,该策略路 由指示第二路由设备发送目的地址归属于与BGP路由出口的路由设备相连的其他自治域 的数据报文经由第一路由设备转发至BGP出口的路由设备,这样,在第一路由设备完成重 启,而BGP路由收敛尚未完成之前,直接将第二路由设备发送的目的地址归属于其他自治 域的数据报文转发给BGP路由出口的路由设备,而不用像现有技术那样等待BGP完成收敛 或者等待指定的时间之后才恢复该主用路径的使用,不仅避免了现有技术中采用等待指定 时间后不论BGP路由是否收敛完成即通过发生重启的第一路由设备转发数据报文带来的 路由黑洞的问题,而且还提高了备份路径和主用路径之间切换的速度。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
一种避免路由黑洞的方法,其特征在于,包括作为发生重启的第一路由设备的邻居的第二路由设备接收所述第一路由设备在完成重启后发送的第一链路状态数据包LSP报文;所述第二路由设备提取所述第一LSP报文携带的路径开销类型 长度 值TLV,根据所述路径开销TLV中第一路由设备和第二路由设备之间实际的第一路径开销值和所述第一路径开销值的倍数值,计算出所述第一路由设备和第二路由设备之间的第二路径开销值;所述第二路径开销值满足使用该第二路径开销值进行路由计算时,同一路由通过所述第一路由设备的路径的路径开销值均大于未通过所述第一路由设备的路径的路径开销值;所述第二路由设备根据所述第二路径开销值进行路由计算,并根据计算结果更新路由表。
2.如权利要求1所述的方法,其特征在于,所述第二路径开销值通过将所述第一路径 开销值与所述第一路径开销值的倍数值相乘得到。
3.如权利要求1或2所述的方法,其特征在于,在更新路由表的步骤之后,还包括所述第二路由设备利用所述第一路径开销值进行路由计算;若进行路由计算的结果确定所述第一路由设备是到边界网关协议BGP路由出口的最 佳中间系统到中间系统IS-IS的下一跳,则生成下一跳路径TLV ;所述下一跳路径TLV包括 所述BGP路由出口的路由设备的标识和作为最佳IS-IS下一跳的所述第一路由设备的标 识;所述第二路由设备完成本地LSP数据库与其邻居路由设备的LSP数据库的同步之后, 将下一跳路径TLV携带在hello报文中发送至所述第一路由设备。
4.如权利要求1所述的方法,其特征在于,第二路由设备接收所述第一路由设备发送 的第一 LSP报文之后,还包括清除本地存储的所述第一路由设备在发生重启之前发送的所有LSP报文,将接收到的 第一 LSP报文进行存储并通过连接所述第一路由设备的接口之外的其他运行IS-IS协议的 接口进行泛洪转发。
5.一种避免路由黑洞的方法,其特征在于,包括第一路由设备完成重启后,与第二路由设备建立起邻居关系;所述第一路由设备根据自身和第二路由设备之间实际的第一路径开销值和预设的与 所述第一路径开销值对应的倍数值,生成路径开销类型-长度-值TLV ;所述第一路径开销 值与所述倍数值的乘积满足将所述乘积作为第一路由设备和第二路由设备之间的路径开 销值进行路由计算时,同一路由通过所述第一路由设备的路径的路径开销值均大于未通过 所述第一路由设备的路径的路径开销值;将所述路径开销TLV携带在第一链路状态数据包LSP报文中发送至所述第二路由设备。
6.如权利要求5所述的方法,其特征在于,在第一路由设备将路径开销TLV携带在第一 LSP报文中发送至第二路由设备的步骤之后,还包括第一路由设备接收所述第二路由设备发送的携带有下一跳TLV的hello报文;所述下 一跳路径TLV包括边界网关协议BGP路由出口的路由设备的标识和所述第二路由设备的最 佳中间系统到中间系统IS-IS下一跳的路由设备的标识;所述第一路由设备确定所述第二路由设备的最佳IS-IS下一跳的路由设备为自身时, 进行路由计算,判断是否能够达到所述BGP路由出口的路由设备;若判断结果为是,第一路由设备生成优先级与BGP路由相同的IS-IS策略路由并保存 至本地路由表中,所述IS-IS策略路由定义了将所述第二路由设备发送的数据报文转发给 所述BGP路由出口的路由设备的路由;所述第一路由设备向所述第二路由设备发送未携带路径开销TLV的第二 LSP报文。
7.如权利要求6所述的方法,其特征在于,第一路由设备向第二路由设备发送所述第 二 LSP报文之后,还包括接收第二路由设备转发的数据报文;按照所述IS-IS策略路由,转发来自第二路由设备的数据报文至所述BGP路由出口的 路由设备。
8.如权利要求6或7所述的方法,其特征在于,还包括第一路由设备判断BGP是否收 敛完成;若判断BGP收敛已完成,第一路由设备删除自身路由表中的所述IS-IS策略路由。
9.一种避免路由黑洞的装置,其特征在于,包括接收单元,用于接收所属路由设备的邻居路由设备在完成重启后发送的第一链路状态 数据包LSP报文;路径开销计算单元,用于提取所述第一 LSP报文携带的路径开销类型-长度-值TLV, 根据所述路径开销TLV中所属路由设备和该完成重启的邻居路由设备之间实际的第一路 径开销值和所述第一路径开销值的倍数值,计算出所属路由设备和该完成重启的邻居路由 设备之间的第二路径开销值;所述第二路径开销值满足使用该第二路径开销值进行路由计 算时,同一路由通过该完成重启的邻居路由设备的路径的路径开销值均大于未通过该完成 重启的邻居路由设备的路径的路径开销值;路由更新单元,用于根据所述第二路径开销值进行路由计算,并根据计算结果更新路 由表。
10.如权利要求9所述的装置,其特征在于,还包括下一跳TLV生成单元和Hello报 文发送单元;所述路径开销计算单元,还用于在路由安装单元更新路由表之后,利用所述第一路径 开销值进行路由计算;所述下一跳TLV生成单元,用于在所述路径开销计算单元根据第一路径开销值进行路 由计算的结果确定该完成重启的邻居路由设备是到边界网关协议BGP路由出口的最佳中 间系统到中间系统IS-IS下一跳,则生成下一跳路径TLV ;所述下一跳路径TLV包括所述 BGP路由出口的路由设备的标识和该完成重启的邻居路由设备的标识;所述Hello报文发送单元,用于在完成所属路由设备本地LSP数据库与其各邻居路由 设备的LSP数据库的同步之后,将所述下一跳路径TLV携带在hello报文中发送至该完成 重启的邻居路由设备。
11.一种避免路由黑洞的装置,其特征在于,包括邻居建立单元,用于在所属路由设备完成重启后,建立所属路由设备和与其相邻的路 由设备之间的邻居关系;路径开销类型-长度-值TLV生成单元,用于根据所属路由设备和邻居路由设备之间 实际的第一路径开销值和预设的与第一路径开销值对应的倍数值,生成路径开销类型_长 度-值TLV ;所述第一路径开销值与所述倍数值的乘积满足使用将所述乘积作为所属路由 设备和邻居路由设备之间的路径开销值进行路由计算时,同一路由通过该所属路由设备的 路径的路径开销值均大于未通过该所属路由设备的路径的路径开销值;发送单元,用于将所述路径开销TLV携带在第一链路状态数据包LSP报文中发送至所 述邻居路由设备。
12.如权利要求11所述的装置,其特征在于,还包括=Hello报文接收单元、路由计算单 元和中间系统到中间系统IS-IS策略路由生成单元;所述Hello报文接收单元,用于接收所述邻居路由设备发送的携带有下一跳TLV的 hello报文;所述下一跳路径TLV包括边界网关协议BGP路由出口的路由设备的标识和所 述邻居路由设备的最佳IS-IS下一跳的路由设备的标识;所述路由计算单元,用于确定所述邻居路由设备的最佳IS-IS下一跳的路由设备为所 属路由设备时,进行路由计算,判断所属路由设备是否能够达到所述BGP路由出口的路由 设备;所述IS-IS策略路由生成单元,用于在路由计算单元判断结果为是时,生成优先级与 BGP路由相同的IS-IS策略路由并保存至所属路由设备本地路由表中,所述IS-IS策略路由 定义了将所述邻居路由设备发送的数据报文转发给所述BGP路由出口的路由设备的路由;所述发送单元,还用于向所述邻居路由设备发送未携带路径开销TLV的第二 LSP报文。
13.如权利要求12所述的装置,其特征在于,所述发送单元,还用于在向所述邻居路由 设备发送第二 LSP报文之后,按照所述IS-IS策略路由,转发所述邻居路由设备发送的数据 报文至所述BGP路由出口的路由设备。
14.如权利要求12或13所述的装置,其特征在于,还包括删除单元,用于判断BGP是否收敛完成,并在BGP收敛已完成时,删除所属路由设备本 地路由表中的所述IS-IS策略路由。
15.一种路由设备,其特征在于,包括如权利要求9 10任一项所述的避免路由黑洞的 装置和/或如权利要求11 14任一项所述的避免路由黑洞的装置。
全文摘要
本发明公开了一种避免路由黑洞的方法、装置及路由设备,该方法包括第二路由设备根据第一路由设备发送的路径开销TLV中第一路径开销值和对应倍数值,计算出第一路由设备和第二路由设备之间的第二路径开销值;第二路径开销值满足使用该第二路径开销值进行路由计算时,同一路由通过第一路由设备的路径的路径开销值均大于未通过第一路由设备的路径的路径开销值;第二路由设备根据第二路径开销值将数据报文经由未通过第一路由设备的备份路径转发。本发明保证在IS-IS协议窄度量模式下,第一路由设备完成重启后的短暂时间内,第二路由设备必然经由未通过第一路由设备的备份路径转发数据报文,更可靠地解决了路由黑洞的问题。
文档编号H04L12/56GK101984596SQ201010531390
公开日2011年3月9日 申请日期2010年11月4日 优先权日2010年11月4日
发明者兰加兴 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1