基于边界网关协议的路由老化方法、装置和路由器的制作方法

文档序号:7929268阅读:185来源:国知局
专利名称:基于边界网关协议的路由老化方法、装置和路由器的制作方法
技术领域
本发明涉及网络通讯技术领域,具体涉及基于BGP的路由老化方法、基于BGP的路由老化装置和路由器。
背景技术
Border Gateway Protocol (边界网关协议,BGP)分布式技术方案即设置多个BGP分布点,例如在多个单板中分别设置BGP进程、BGP线程等,所有的路由(如VPN路由或IP路由等)被分配到多个BGP分布点处进行处理。BGP分布式技术方案能够减轻BGP集中式技术方案中单一 BGP进程或线程等的路由处理压力,避免BGP路由处理的性能瓶颈问题,从而提高BGP的路由处理能力以及路由容量。 在实现本发明过程中,发明人发现在BGP分布式技术方案中,多种不同的原因可能均会导致BGP分布点重新启动;在BGP分布点重新启动过程中,路由可能会发生变化,例如某VPN路由或IP路由被撤销等;在BGP分布点启动完成后,由于该BGP分布点无法获知在启动过程中发生变化的路由,因此,该BGP分布点也就不能够通知BGP邻居更新变化的路由。为了保证BGP邻居存储正确的路由,可以采用BGP集中式技术方案中的处理方式,即BGP分布点在启动完成后与所有的BGP邻居断连,并重新建立连接,在连接成功重建后,各BGP邻居重新收集路由。该处理方式虽然能够使BGP邻居存储正确的路由,但是,任何一个BGP分布点的重新启动都会影响到所有的BGP邻居。

发明内容
本发明实施方式提供一种基于BGP的路由老化方法、装置和路由器,可在不与BGP邻居断连的情况下,更新BGP邻居中存储的路由。 本发明实施方式提供的一种路由老化方法,BGP分布点在重新启动后,所述方法包括 向BGP邻居发送路由请求消息,所述BGP邻居为具有在邻居不断连情况下老化路由能力的BGP邻居; 接收所述BGP邻居根据所述路由请求消息发送的路由,并对接收到的路由进行路由处理; 向所述BGP邻居发送路由处理后的路由,使所述BGP邻居根据接收到的路由进行路由老化。 本发明实施方式提供的基于BGP的路由老化装置,包括 路由请求模块,用于在BGP分布点重新启动后,向BGP邻居发送路由请求消息,所述BGP邻居为具有在邻居不断连情况下老化路由能力的BGP邻居; 路由处理模块,用于对BGP分布点接收到的路由进行路由处理,所述接收到的路由为BGP邻居根据所述路由请求消息发送的路由; 路由发送模块,用于在路由处理模块完成路由处理后,向BGP邻居发送路由处理
4后的路由,使BGP邻居根据接收到的路由进行路由老化。 本发明实施方式提供的路由器,设置有多个BGP分布点,该路由器包括 路由请求模块,用于在BGP分布点重新启动后,向BGP邻居发送路由请求消息,所
述BGP邻居为具有在邻居不断连情况下老化路由能力的BGP邻居; 接收模块,用于接收BGP邻居根据所述路由请求消息发送的路由; 路由处理模块,用于对接收模块接收的路由进行路由处理; 路由发送模块,用于在路由处理模块完成路由处理后,向BGP邻居发送路由处理 后的路由,使BGP邻居根据接收到的路由进行路由老化。 通过上述技术方案的描述可知,在BGP分布点重新启动后,通过向BGP邻居发送路 由请求消息,BGP分布点可以接收到BGP邻居发送的路由并实现路由处理,BGP分布点通过 向BGP邻居发送路由处理后的路由,使BGP邻居可以根据接收到的路由对其存储的路由进 行老化处理,从而在不需要BGP邻居间断连并重新建立连接的情况下,也能够使BGP邻居存 储正确的路由,避免了一个BGP分布点重新启动而影响到所有的BGP邻居的问题。


图1是本发明实施例一的基于BGP的路由老化方法流程图; 图2是本发明实施例二适用的基于RD的分布式路由处理的结构示意图; 图3是本发明实施例三的基于BGP的路由老化方法流程图; 图4是本发明实施例四的基于BGP的路由老化装置示意图; 图5是本发明实施例四的路由处理模块示意图; 图6是本发明实施例四的路由发送模块示意图。
具体实施例方式
下面结合附图对基于BGP的路由老化方法的具体实现过程进行举例说明。
实施例一、基于BGP的路由老化方法流程如附图1所示。 图1中,步骤100、多个BGP分布点中的至少一个BGP分布点重新启动。导致BGP 分布点重新启动的原因如资源耗尽、BGP分布点所在单板异常等,本实施例不限制导致BGP 分布点重新启动的原因。BGP分布点的种类有多种,例如,基于RD的BGP分布点等,本实施 例不限制BGP分布点的具体表现形式。 步骤110、重新启动的BGP分布点在重新启动完成后,在不断连BGP分布点与BGP 邻居之间的连接的情况下,BGP分布点向BGP邻居发送路由请求消息。这里的BGP邻居可 以为具有在邻居不断连情况下老化路由能力的BGP邻居。 在一个网络中,如果所有的节点都肯定具有在邻居不断连情况下老化路由的能 力,则BGP分布点可以在重新启动后,直接向所有的BGP邻居发送路由请求消息。如果不 是所有的节点均肯定具有在邻居不断连情况下老化路由的能力,则BGP分布点在重新启动 后,可以先选择出具有在邻居不断连情况下老化路由能力的BGP邻居,然后,向选择出的 BGP邻居发送路由请求消息。 BGP分布点可以根据预先存储的信息确定出具有在邻居不断连情况下老化路由能 力的BGP邻居。预先存储的信息可以是静态配置的,也可以是动态配置的。静态配置的一个具体的例子为网管等通过发送命令在BGP分布点中配置具有在邻居不断连情况下老化 路由能力的BGP邻居的信息。动态配置的一个具体例子为不论网络中的各节点对上述能
力的支持情况如何,BGP邻居和BGP分布点之间都可以相互通报是否具有在邻居不断连情 况下老化路由能力的信息,BGP分布点存储该通报的信息。这样,BGP分布点可以根据该通 报的信息获知哪些BGP邻居具有在邻居不断连情况下老化路由能力。 上述通报是否具有在邻居不断连情况下老化路由能力的信息的过程可以在BGP 能力协商过程中实现。也就是说,可以将在邻居不断连情况下老化路由的能力作为BGP能 力的一部分。BGP邻居通报是否具有在邻居不断连情况下老化路由能力的信息的一个具体 例子为BGP邻居将是否具有在邻居不断连情况下老化路由能力的信息携带在OPEN消息 中,并向对端节点发送该OPEN消息。可以对OPEN消息进行扩展,以在OPEN消息中携带上 述信息。对OPEN消息的扩展可以为增加新的字段,利用该新增加的字段携带上述信息;也 可以为利用OPEN消息的已有字段来携带上述信息,例如OPEN消息中的某个保留字段来携 带上述信息等。 对于网络中存在的不具有在邻居不断连情况下老化路由能力的BGP邻居,可以采 用现有的方法来保证BGP邻居存储正确的路由,例如中断BGP分布点与BGP邻居之间的连 接,再重新建立BGP邻居之间的连接等。 在步骤110中,可以利用现有协议中的消息来实现路由请求消息,如将 Route-Refresh消息作为路由请求消息;也可以通过其它消息来实现路由请求消息,例如 通过新定义增加的消息来实现路由请求消息。本实施例不限制路由请求消息的具体表现形 式。 步骤120、 BGP邻居接收路由请求消息,并根据该路由请求消息向BGP分布点发送 路由。BGP邻居在向BGP分布点发送路由时应遵守BGP的防止路由环回等规定。BGP邻居 发送路由采用的消息可以为现有BGP中规定的消息,当然,也可以采用其它消息,例如采用 新定义增加的消息等。 BGP邻居在将需要发送的路由均向BGP分布点发送完成后,可以向BGP分布点发送 一条消息,该消息表示BGP邻居路由发送完成,该消息可以称为第一路由发送结束消息。第 一路由发送结束消息的一个具体例子为End-Of-RIB消息。当然,第一路由发送结束消息 也可以为其它消息,例如,可以为新定义增加的消息等。 需要说明的是,BGP邻居也可以在发送路由的消息中携带第一路由发送结束标志 信息,该标志信息表示BGP邻居路由发送完成。在发送路由的消息中携带路由发送结束标 志信息的情况下,BGP邻居可以不再发送第一路由发送结束消息。 步骤130、 BGP分布点接收BGP邻居发送来的路由,并对接收到的路由进行路由处理。 在BGP邻居向BGP分布点发送路由之后还向BGP分布点发送第一路由发送结束消 息的情况下,BGP分布点在接收到各BGP邻居发送的路由后,还需要判断是否接收到各BGP 邻居发送的第一路由发送结束消息,在判断出成功接收到各BGP邻居发送的路由以及第一 路由发送结束消息后,BGP分布点再对接收到的路由进行路由处理。BGP分布点可以按照现 有机制进行路由处理,如对路由选路并更新路由转发表等。在BGP邻居向BGP分布点发送 的路由中携带有第一路由发送结束标志信息的情况下,BGP分布点也可以采用类似的方式来进行路由处理。 步骤140、在路由处理完成后,BGP分布点向BGP邻居发送路由处理后的路由。例 如,BGP分布点根据出口策略向各BGP邻居发送路由处理后的路由。 BGP分布点在需要向BGP邻居发送路由处理后的路由时,可以先向BGP邻居发送一 条消息,该消息表示后续BGP邻居接收到的路由为BGP分布点发送的、用于BGP邻居进行路 由老化处理的路由。该消息可以称为路由发送起始消息。在BGP邻居为多个时,BGP分布 点应向多个BGP邻居均发送路由发送起始消息。 BGP分布点在向BGP邻居发送路由处理后的路由过程中,可以考虑BGP邻居支持的 地址族和子地址族信息,也就是说,BGP分布点向BGP邻居发送的路由应该属于BGP邻居支 持的地址族和子地址族。BGP邻居支持的地址族和子地址族信息可以是静态配置的,也可以 是动态配置的。静态配置的一个具体的例子为网管等通过发送命令在BGP分布点中配置 BGP邻居支持的地址族和子地址族信息。动态配置的一个具体例子为BGP邻居向BGP分布 点通报其支持的地址族和子地址族信息,BGP分布点存储该通报的信息。这样,BGP分布点 可以根据该通报的信息获知BGP邻居支持的地址族和子地址族信息。这里的地址族和子地 址族如IPv6单播/多播、IPv4单播/多播、VPNv6单播/多播、以及VPNv4单播/多播等。
BGP分布点在向BGP邻居发送路由处理后的路由过程中,可以考虑BGP邻居是否支 持路由范围,如果BGP邻居支持路由范围,则BGP分布点可以向BGP邻居发送需要进行路由 老化的路由范围信息、以及路由范围内的路由;否则,BGP分布点需要向BGP邻居发送所有 的路由。BGP邻居是否支持路由范围信息可以是静态配置的,也可以是动态配置的。静态配 置的一个具体的例子为网管等通过发送命令在BGP分布点中配置BGP邻居支持路由范围 信息。动态配置的一个具体例子为BGP邻居向BGP分布点通报其支持路由范围信息,BGP 分布点存储该通报的信息。这样,BGP分布点可以根据该通报的信息获知BGP邻居的支持 路由范围信息。 在BGP邻居支持路由范围时,BGP分布点可以在路由发送起始消息中携带路由范
围信息,该路由范围信息用于指示BGP邻居在该路由范围内进行路由老化处理。VPN路由范
围信息如RD信息等。上述路由发送起始消息可以为新定义增加的消息。 在发送路由发送起始消息后,BGP分布点向BGP邻居发送路由处理后的路由。BGP
分布点在向BGP邻居发送路由时应遵守BGP的防止路由环回等规定。BGP分布点发送路由
采用的消息可以为现有BGP中规定的消息,如路由更新消息;当然,也可以采用其它消息,
例如采用新定义增加的消息等。 针对一个BGP邻居来说,BGP分布点在将需要发送的路由均向该BGP邻居发送完成 后,可以向该BGP邻居发送一条消息,该消息表示BGP分布点路由发送完成,该消息可以称 为第二路由发送结束消息。第二路由发送结束消息的一个具体例子为End-Of-RIB消息。 当然,第二路由发送结束消息也可以为其它消息,例如,可以为新定义增加的消息等。这里 的第二路由发送结束消息可以与上述第一路由发送结束消息相同,如均End-Of-RIB消息、
或者均为某个新定义增加的消息等。 步骤140中需要说明的是,BGP分布点也可以在发送路由的消息中携带路由发送 起始标志信息以及路由范围信息,该标志信息表示BGP分布点开始发送用于路由老化的路 由。在发送路由的消息中携带路由发送起始标志信息和路由范围信息的情况下,BGP分布
7点可以不再发送路由发送起始消息。另外,BGP分布点也可以在发送路由的消息中携带路
由发送第二结束标志信息,该标志信息表示BGP分布点路由发送完成。在发送路由的消息
中携带第二路由发送结束标志信息的情况下,BGP分布点可以不再发送第二路由发送结束
消息。这里的第二路由发送结束标志可以与上述第一路由发送结束标志相同。 步骤150、 BGP邻居根据接收到的路由进行路由老化处理。路由老化处理如删除
BGP邻居中存储的某路由、修改BGP邻居中存储的某路由、以及在BGP邻居中增加存储新的
路由等。 在BGP分布点发送第二路由发送结束消息的情况下,BGP邻居可以在接收到第二 路由发送结束消息后,根据接收到路由对其存储的路由进行路由老化处理。如果BGP邻居 在预定时间间隔内没有接收到第二路由发送结束消息,则BGP邻居也可以根据接收到的路 由对其存储的路由进行路由老化处理。该预定时间间隔即BGP邻居进行路由老化处理的最 大等待时间。 BGP邻居可以在接收到路由发送起始消息时开始为最大等待时间计时,在计时值 未超过最大等待时间且BGP邻居接收到路由发送结束消息,则BGP邻居根据接收到的路由 对其存储的路由进行路由老化处理;在计时值超过最大等待时间且BGP邻居一直未接收到 BGP分布点发送的第二路由发送结束消息的情况下,BGP邻居根据接收到的路由对其存储 的路由进行路由老化。也就是说,在本实施例中,触发BGP邻居进行路由老化处理的条件可 以为路由发送结束消息,也可以为最大等待时间。上述计时值未超过最大等待时间也可以 为计时值未达到最大等待时间,此时,计时值超过最大等待时间应该为计时值达到最大等 待时间。另外,BGP邻居也可以在接收到BGP分布点发送的路由时开始为最大等待时间计 时。 需要说明的是,在BGP分布点向BGP邻居发送的路由中携带路由发送起始标志信 息和/或第二路由发送结束标志信息的情况下,BGP邻居也可以采用上述类似的方式来进 行路由老化处理。另外,上述最大等待时间可以是静态配置的,也可以是动态配置的。静态 配置的一个具体例子为网管等通过发送命令在BGP邻居中配置最大等待时间。动态配置 的一个具体例子为在BGP能力协商过程中协商确定最大等待时间。 从上述实施例一的描述可知,BGP分布点在重新启动后,通过向BGP邻居发送路由 请求消息,BGP邻居根据接收到的路由请求消息向BGP分布点发送路由,使BGP分布点可 以在重新启动后、不需要断连BGP邻居连接的情况下,收集到BGP邻居发送的路由,实现路 由处理;BGP分布点通过向BGP邻居发送路由处理后的路由,使BGP邻居可以根据接收到的 路由对其存储的路由进行老化处理,从而在不需要BGP邻居间断连并重新建立连接的情况 下,也能够使BGP邻居存储正确的路由,进而避免了一个BGP分布点重新启动而影响到所有 的BGP邻居的问题。通过使BGP邻居在发送路由后向BGP分布点发送第一路由发送结束消 息,使BGP分布点可以明确获知是否从BGP邻居处成功收集到完整的路由。通过采用最大 等待时间和第二路由发送结束消息来触发BGP邻居进行路由老化处理,避免了第二路由发 送结束消息传输异常而导致的不能够成功进行路由老化的现象。通过在BGP能力协商过程 中进行具有在邻居不断连情况下路由老化能力、以及最大等待时间等的协商,使BGP分布 点可以方便的获知哪些BGP邻居具有在邻居不断连情况下路由老化的能力,使BGP邻居可 以获得合理的最大等待时间。通过在路由发送起始消息中携带路由范围信息,使BGP邻居能够针对BGP分布点负责的路由范围内对路由进行老化处理。 实施例二、在BGP分布点为基于RD的BGP分布点的情况下,实现路由老化的方法。
基于RD的分布式路由处理结构如附图2所示。 图2中包括路由接收与分发模块和三个路由存储与处理模块。 一个路由存储与 处理模块即一个基于RD的BGP分布点,也即一个基于RD的BGP运行单元,基于RD的BGP 运行单元可以称为RD-BGP运行单元,RD-BGP运行单元可以以进程或线程等方式实现。
路由接收与分发模块接收来自BGP邻居的VPN路由。图2中示出的路由接收与分 发模块能够接收到BGP邻居1和BGP邻居2发送来的VPN路由,BGP邻居1发送来的VPN路 由可以包括RD为100 : 1的VPN路由和RD为200 : 1的VPN路由;BGP邻居2发送来的 VPN路由可以包括RD为300 : 1的VPN路由。 路由接收与分发模块在接收到来自BGP邻居的VPN路由后,获取来自BGP邻居的 VPN路由的RD对应的路由存储与处理模块。路由接收与分发模块将接收到的VPN路由发送 到获取的路由存储与处理模块,即向三个路由存储与处理模块中的一个路由存储与处理模 块发送VPN路由。路由存储与处理模块接收路由接收与分发模块发送来的VPN路由,并对 接收到的VPN路由进行处理。 在上述图2所示的三个RD-BGP运行单元中,设定其中一个RD-BGP运行单元重新 启动,该重新启动的RD-BGP运行单元应该在重新启动后向所有的具有在邻居不断连情况 下老化路由能力的BGP邻居发送路由请求消息。重新启动的RD-BGP运行单元可以利用BGP 能力协商机制来获知哪些BGP邻居具有在邻居不断连情况下老化路由的能力,哪些BGP邻 居不具有在邻居不断连情况下老化路由的能力。设定具有在邻居不断连情况下老化路由能 力的BGP邻居有五个,则这五个BGP邻居在接收到路由请求消息后,分别根据其存储路由向 重新启动的RD-BGP运行单元发送路由。这五个BGP邻居中的每一个BGP邻居在发送了路 由后,均需要显式的向重新启动的RD-BGP运行单元发送End-Of-RIB消息,以表明该BGP邻 居路由发送完成。该重新启动的RD-BGP运行单元接收这五个BGP邻居分别发送的路由,该 重新启动的RD-BGP运行单元在接收到上述五个BGP邻居分别发送的End-0f-RIB消息后, 确定出从上述五个BGP邻居处成功收集到路由。该重新启动的RD-BGP运行单元对接收到 的所有路由进行路由处理,如路由选路、更新路由转发表等。重新启动的RD-BGP运行单元 在路由处理完成后,向上述五个BGP邻居分别发送路由发送起始消息,以表示重新启动的 RD-BGP运行单元开始向BGP邻居发送路由、BGP邻居应根据重新启动的RD-BGP运行单元发 送的路由进行路由老化处理。在这五个BGP邻居均支持路由范围的情况下,路由发送起始 消息中可以携带有BGP邻居支持的地址族的子地址族信息、以及RD-BGP运行单元的路由范 围信息。之后,重新启动的RD-BGP运行单元向五个BGP邻居分别发送路由更新消息,该路 由更新消息中携带有路由处理后的路由,该消息中携带的路由为该重新启动的RD-BGP运 行单元负责的路由。重新启动的RD-BGP运行单元在向每一个BGP邻居发送完路由后,均需 要再发送一条End-Of-RIB消息,以表明重新启动的RD-BGP运行单元路由发送完成。BGP邻 居在接收到路由发送起始消息后,开始为最大等待时间计时。如果BGP邻居在计时值未达 到最大等待时间时接收到End-Of-RIB消息,则BGP邻居根据接收到的路由更新消息中的路 由对其存储的路由进行路由老化处理。如果BGP邻居在计数值达到最大等待时间时仍然没 有接收到End-Of-RIB消息,则BGP邻居根据接收到的路由更新消息中的路由对其存储的路
9由进行路由老化处理。上述进行路由老化处理的路由为BGP邻居支持的地址族的子地址 族、以及路由范围内的路由。 实施例三、在BGP分布点为基于RD的BGP分布点的情况下,路由老化方法的具体 实现过程如附图3所示。 图3中,步骤1 、 BGP restarter (即重新启动的基于RD的BGP分布点)和
BGPpeer (即BGP邻居)在BGP能力协商过程中,针对在邻居不断连情况下的路由老化能力
进行协商(即协商"邻居不断连能够老化路由"的能力),并建立会话。 例如,在BGP的OPEN消息的扩展字段中定义的一个TLV字段,BGPrestarter和
BGP peer在OPEN消息的该TLV字段中携带上述能力协商信息,该TLV字段携带的能力协
商信息用于描述本端是否能够支持上述能力、本端支持的老化路由的地址族和子地址族信
息、路由范围信息以及BGP邻居老化路由所需要的最大等待时间。 步骤2、BGP restarter重新启动后,BGP restarter向所有的具有"邻居不断连能
够老化路由"能力的BGP peer发送Route-Refresh消息,以请求更新路由。 步骤3、BGP peer接收到Route-Refresh消息后,向BGP restarter发送更新路由
消息;在BGP peer发送完更新路由消息后,BGP peer向BGP restarter发送End-Of-RIB
消息,以表明路由发送完毕。 步骤4、 BGP restarter在接收到所有BGP peer发送的End-Of-RIB消息后,开始
对接收到的路由进行选路并更新路由转发表等路由处理。 步骤5、 BGP restarter向BGP peer发送"路由发送起始消息"。 这里的"路由发送起始消息"的消息格式可以是在BGP规定的Route-Refresh消
息的消息格式上扩展而成,例如,在Route-Refresh消息的基础上扩展一个TLV字段,该扩
展的TLV字段携带RD信息,该RD信息能够指示BGP peer针对特定RD的路由进行路由老
化处理。RD信息即路由范围信息。 步骤6、 BGP peer在接收到"路由发送起始消息"后,记录老化标记,并启动为BGP 邻居老化路由需要的最大等待时间设置的老化定时器。记录老化标记的一个具体的例子 为记录接收到路由发送起始消息的时间,该时间即为老化标记,从而在该时间之前接收到 的路由范围内的路由为需要进行路由老化的路由;记录老化标记的另一个具体的例子为 对接收到路由发送起始消息之前的、路由范围内的路由进行标记,从而进行了标记的路由 为需要进行路由老化的路由。 BGP peer可以从"路由发送起始消息"的TLV字段中获取RD信息,并存储该RD信 息。 步骤7、BGP restarter向BGP peer发送更新路由消息,在更新路由消息发送完毕 后,BGP restarter向BGP peer发送End-Of-RIB消息。BGP restarter在发送更新路由消 息时应考虑BGP peer支持的地址族和子地址族信息、以及BGPpeer是否支持路由范围。在 BGP peer支持路由范围的情况下,更新路由消息中携带的路由应该属于BGP peer支持的地 址族和子地址族、以及预定路由范围(如BGP restarter支持的RD范围)内的路由。
步骤8、在老化定时器的计时值没有达到最大等待时间的情况下,BGP peer接收到 End-0f-RIB消息,则BGP peer根据老化标记进行路由老化,以更新其路由转发表。例如, BGP peer对老化标记之前的、属于RD信息的路由进行路由老化处理。
从上述实施例三的描述可知,BGP restarter在重新启动后,通过向BGP邻居发送 Route-Refresh消息,BGP peer根据接收到的Route-Refresh消息向BGPrestarter发送路 由,使BGP restarter可以在重新启动后、不需要断连BGP邻居连接的情况下,收集到BGP peer发送的路由,实现路由处理;BGP restarter通过向BGP邻居发送路由处理后的路由, 使BGP peer可以根据接收到的路由对其存储的路由进行老化处理,从而在不需要BGP邻居 间断连并重新建立连接的情况下,也能够使BGP peer存储正确的路由,进而避免了一个BGP restarter重新启动而影响到所有的BGP邻居的问题。
实施例四、基于BGP的路由老化装置如附图4所示。 图4中的路由老化装置包括路由请求模块400、路由处理模块410和路由发送模 块420。可选的,该装置还可以包括能力协商模块430。 路由请求模块400在监测到BGP分布点重新启动完成后,在不断连BGP分布点与 BGP邻居之间的连接的情况下,向具有在邻居不断连情况下老化路由能力的BGP邻居发送 路由请求消息。这里的BGP分布点的种类有多种,如基于RD的BGP分布点等。
在一个网络中,如果所有的节点都肯定具有在邻居不断连情况下老化路由的能 力,则路由请求模块400可以在BGP分布点重新启动完成后,直接向所有的BGP邻居发送路 由请求消息。如果不是所有的节点均肯定具有在邻居不断连情况下老化路由的能力,则路 由请求模块400可以在BGP分布点在重新启动完成后,先选择出具有在邻居不断连情况下 老化路由能力的BGP邻居,然后,向选择出的BGP邻居发送路由请求消息。
路由请求模块400可以根据预先存储的信息确定出具有在邻居不断连情况下老 化路由能力的BGP邻居。预先存储的信息可以是静态配置的,也可以是动态配置的。静态 配置的一个具体的例子为网管等通过发送命令在BGP分布点中配置具有在邻居不断连情 况下老化路由能力的BGP邻居的信息。动态配置的一个具体例子为能力协商模块430在 BGP能力协商过程中获取并存储BGP邻居是否具有在邻居不断连情况下老化路由的能力。 也就是说,可以将在邻居不断连情况下老化路由的能力作为BGP能力的一部分。例如,能力 协商模块430从接收到的OPEN消息中获取BGP邻居是否具有在邻居不断连情况下老化路 由能力的信息。 路由请求模块400发送的路由请求消息如Route-Refresh消息。 BGP邻居接收到路由请求消息后,会根据该路由请求消息向BGP分布点发送路由。
BGP邻居在向BGP分布点发送路由时应遵守BGP的防止路由环回等规定。BGP邻居发送路
由采用的消息可以为现有BGP中规定的消息,当然,也可以采用其它消息,例如采用新定义
增加的消息等。 BGP邻居在将需要发送的路由均向BGP分布点发送完成后,可以向BGP分布点发送 一条消息,该消息表示BGP邻居路由发送完成,该消息可以称为第一路由发送结束消息。第 一路由发送结束消息的一个具体例子为End-Of-RIB消息。BGP邻居也可以在发送路由的 消息中携带路由发送第一结束标志信息,具体如上述实施例的描述。 路由处理模块410对BGP分布点接收到的、BGP邻居根据路由请求消息而发送的 路由进行路由处理。在BGP邻居发送End-Of-RIB消息的情况下,路由处理模块410可以在 BGP分布点接收到各BGP邻居发送的End-Of-RIB消息后,开始进行路由处理。
路由发送模块420在路由处理模块410完成路由处理后,向BGP邻居发送路由处理后的路由,使BGP邻居根据接收到的路由进行路由老化。 路由发送模块420在需要向BGP邻居发送路由时,可以先向BGP邻居发送一条消 息,该消息表示后续BGP邻居接收到的路由为BGP分布点发送的、用于BGP邻居进行路由老 化处理的路由。该消息可以称为路由发送起始消息。在BGP邻居为多个时,路由发送模块 420应向多个BGP邻居均发送路由发送起始消息。 路由发送模块420在向BGP邻居发送路由过程中,可以考虑BGP邻居支持的地址 族和子地址族信息,也就是说,路由发送模块420向BGP邻居发送的路由应该属于BGP邻居 支持的地址族和子地址族。BGP邻居支持的地址族和子地址族信息可以是静态配置的,也可 以是动态配置的。动态配置如能力协商模块430在进行BGP能力协商过程中协商获得。能 力协商模块430可以利用现有的能力协商流程、在现有的消息中携带BGP邻居支持的地址 族和子地址族信息来协商获得BGP邻居支持的地址族和子地址族,具体如上述实施例的描 述。 路由发送模块420在向BGP邻居发送路由过程中,可以考虑BGP邻居是否支持路 由范围,如果BGP邻居支持路由范围,则路由发送模块420可以向BGP邻居发送需要进行路 由老化的路由范围信息、以及路由范围内的路由;否则,路由发送模块420向BGP邻居发送 所有的路由。 BGP邻居是否支持路由范围信息可以是静态配置的,也可以是动态配置的。静态 配置的一个具体的例子为网管等通过发送命令在BGP分布点中配置BGP邻居支持路由范 围信息。动态配置如能力协商模块430在进行BGP能力协商过程中协商获得。能力协商模 块430可以利用现有的能力协商流程、在现有的消息中携带BGP邻居是否支持路由范围信 息来协商获得BGP邻居是否支持路由范围信息,具体如上述实施例的描述。
在BGP邻居支持路由范围时,路由发送模块420可以在路由发送起始消息中携带 路由范围信息,该路由范围信息用于指示BGP邻居在该路由范围内进行路由老化处理。VPN 路由范围信息如RD信息等。 路由发送模块420在发送路由发送起始消息后,向BGP邻居发送路由。路由发送 模块420在向BGP邻居发送路由时应遵守BGP的防止路由环回等规定。路由发送模块420 发送路由采用的消息可以为路由更新消息。 针对一个BGP邻居来说,路由发送模块420在将需要发送的路由均向该BGP邻 居发送完成后,可以向该BGP邻居发送一条消息,该消息表示BGP分布点路由发送完成, 该消息可以称为第二路由发送结束消息。第二路由发送结束消息的一个具体例子为 End-0f-RIB消息。路由发送模块420也可以在发送路由的消息中携带路由发送起始标志信 息、路由范围信息、以及第二路由发送结束标志等,具体如上述实施例中的描述。
BGP邻居根据接收到的路由进行路由老化处理。路由老化处理如删除BGP邻居中 存储的某路由、修改BGP邻居中存储的某路由、以及在BGP邻居中增加存储新的路由等。
上述能力协商模块430还可以在BGP能力协商过程中实现对最大等待时间的协 商。最大等待时间可以触发BGP邻居进行路由老化处理,具体如上述实施例中的描述。
上述实施例四中的路由处理模块410的结构如附图5所示。
图5中的路由处理模块410包括判断子模块411和路由处理子模块412。
判断子模块411判断BGP分布点是否接收到各BGP邻居发送的第一路由发送结束消息。 路由处理子模块412在判断子模块411的判断结果为BGP分布点接收到各BGP邻
居发送的第一路由发送结束消息后,对BGP分布点接收到的路由进行路由处理。路由处理
子模块412进行的路由处理如上述实施例中的描述。 上述实施例四中的路由发送模块420的结构如附图6所示。 图6中的路由发送模块420包括消息构造子模块421和发送子模块422。 消息构造子模块421构造向BGP邻居发送路由发送起始消息、携带有路由处理后
的路由的消息、以及第二路由发送结束消息。消息构造子模块421可以先构造路由发送起
始消息,在发送子模块422将路由发送起始消息成功发送后再构造携带有路由的消息,在
发送子模块422将携带有路由的消息成功发送后再构造第二路由发送结束消息。消息构造
子模块421也可以不按照上述顺序来构造上述消息,虽然,消息构造子模块421可以不按照
上述顺序来构造上述消息,但是,发送子模块422在发送消息时应该按照路由发送起始消
息-携带有路由处理后的路由的消息-第二路由发送结束消息的顺序来发送。上述路由发
送起始消息、携带有路由处理后的路由的消息、以及第二路由发送结束消息中携带的信息
如上述实施例中的描述,在此不再重复说明。 实施例五、设置有多个BGP分布点的路由器。 该路由器包括路由请求模块、接收模块、路由处理模块和路由发送模块。可选的 该路由器还可以包括能力协商模块。 路由请求模块在监测到BGP分布点重新启动完成后,在不断连BGP分布点与BGP 邻居之间的连接的情况下,向具有在邻居不断连情况下老化路由能力的BGP邻居发送路由 请求消息。这里的BGP分布点的种类有多种,如基于RD的BGP分布点等。
路由请求模块可以根据能力协商模块的BGP能力协商结果获知具有在邻居不断 连情况下老化路由能力的BGP邻居。具体如上述实施例的描述。 BGP邻居接收到路由请求消息后,会根据该路由请求消息向BGP分布点发送路由。 接收模块接收BGP邻居发送来的路由、以及第一路由发送结束消息等。
路由处理模块对接收模块接收到的、BGP邻居根据路由请求消息而发送的路由进 行路由处理。在BGP邻居发送End-0f-RIB消息的情况下,路由处理模块可以在接收模块接 收到各BGP邻居发送的End-0f-RIB消息后,开始进行路由处理。 路由发送模块在路由处理模块完成路由处理后,向BGP邻居发送路由处理后的路 由,使BGP邻居根据接收到的路由进行路由老化。 路由发送模块在需要向BGP邻居发送路由时,可以先向BGP邻居发送一条消息,该 消息表示后续BGP邻居接收到的路由为BGP分布点发送的、用于BGP邻居进行路由老化处 理的路由。该消息可以称为路由发送起始消息。在BGP邻居为多个时,路由发送模块应向 多个BGP邻居均发送路由发送起始消息。 路由发送模块在向BGP邻居发送路由过程中,可以考虑BGP邻居支持的地址族和 子地址族信息,也就是说,路由发送模块向BGP邻居发送的路由应该属于BGP邻居支持的地 址族和子地址族。BGP邻居支持的地址族和子地址族信息可以是静态配置的,也可以是动态 配置的。动态配置如能力协商模块在进行BGP能力协商过程中配置。能力协商模块可以利 用现有的能力协商流程、在现有的消息中携带BGP邻居支持的地址族和子地址族信息来协商获得BGP邻居支持的地址族和子地址族,具体如上述实施例的描述。
路由发送模块在向BGP邻居发送路由过程中,可以考虑BGP邻居是否支持路由范 围,如果BGP邻居支持路由范围,则路由发送模块可以向BGP邻居发送需要进行路由老化的 路由范围信息、以及路由范围内的路由;否则,路由发送模块向BGP邻居发送所有的路由。
BGP邻居是否支持路由范围信息可以是静态配置的,也可以是动态配置的。动态配 置如能力协商模块在进行BGP能力协商过程中设置。能力协商模块可以利用现有的能力协 商流程、在现有的消息中携带BGP邻居是否支持路由范围信息来协商获得BGP邻居是否支 持路由范围信息,具体如上述实施例的描述。 在BGP邻居支持路由范围时,路由发送模块可以在路由发送起始消息中携带路由 范围信息,该路由范围信息用于指示BGP邻居在该路由范围内进行路由老化处理。VPN路由 范围信息如RD信息等。 路由发送模块在发送路由发送起始消息后,向BGP邻居发送路由。路由发送模块 在向BGP邻居发送路由时应遵守BGP的防止路由环回等规定。路由发送模块发送路由采用 的消息可以为路由更新消息。 针对一个BGP邻居来说,路由发送模块在将需要发送的路由均向该BGP邻居发送 完成后,可以向该BGP邻居发送一条消息,该消息表示BGP分布点路由发送完成,该消息可 以称为第二路由发送结束消息。第二路由发送结束消息的一个具体例子为End-Of-RIB消 息。路由发送模块也可以在发送路由的消息中携带路由发送第二起始标志信息、路由范围 信息、以及第二路由发送结束标志等,具体如上述实施例中的描述。BGP邻居根据接收到的路由进行路由老化处理。路由老化处理如删除BGP邻居中
存储的某路由、修改BGP邻居中存储的某路由、以及在BGP邻居中增加存储新的路由等。 上述能力协商模块还可以在BGP能力协商过程中实现对最大等待时间的协商。最
大等待时间可以触发BGP邻居进行路由老化处理,具体如上述实施例中的描述。 路由处理模块和路由发送模块分别包括的子模块等如上述实施例中的描述,在此
不再详细说明。 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借 助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施,但很多情况下 前者是更佳的实施方式。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部 或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如 ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务 器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和 变化而不脱离本发明的精神,本发明的申请文件的权利要求包括这些变形和变化。
权利要求
一种基于BGP的路由老化方法,其特征在于,BGP分布点在重新启动后,所述方法包括向BGP邻居发送路由请求消息,所述BGP邻居为具有在邻居不断连情况下老化路由能力的BGP邻居;接收所述BGP邻居根据所述路由请求消息发送的路由,并对接收到的路由进行路由处理;向所述BGP邻居发送路由处理后的路由,使所述BGP邻居根据接收到的路由进行路由老化。
2. 如权利要求1所述的方法,其特征在于,在所述向BGP邻居发送路由请求消息之前,还包括所述BGP分布点与所述BGP邻居进行BGP能力协商,并在所述BGP能力协商过程中,根据所述BGP邻居之间相互通报的是否具有在邻居不断连情况下老化路由能力的信息,获知具有在邻居不断连情况下老化路由能力的BGP邻居,所述是否具有在邻居不断连情况下老化路由能力的信息携带在扩展的BGP能力协商过程的消息中。
3. 如权利要求l所述的方法,其特征在于,所述接收所述BGP邻居根据所述路由请求消息发送的路由,并对接收到的路由进行路由处理,具体包括所述BGP分布点接收所述BGP邻居根据所述路由请求消息发送的路由,并当所述BGP分布点接收到所述BGP邻居发送的第一路由发送结束标志或第一路由发送结束消息后,对接收到的路由进行路由处理。
4. 如权利要求l所述的方法,其特征在于,所述向所述BGP邻居发送路由处理后的路由之前,还包括所述BGP分布点向所述BGP邻居发送路由发送起始消息;所述向所述BGP邻居发送路由处理后的路由,具体包括所述BGP分布点根据所述BGP邻居支持的地址族和子地址族信息、和/或所述BGP邻居支持的路由范围,向所述BGP邻居发送所述路由处理后的路由,并在发送完所述路由处理后的路由后,向所述BGP邻居发送第二路由发送结束标志或第二路由发送结束消息,其中,所述BGP邻居支持的地址族和子地址族信息、和/或所述BGP邻居支持的路由范围在所述BGP能力协商过程中协商确定。
5. 如权利要求4所述的方法,其特征在于,所述使BGP邻居根据接收到的路由进行路由老化,具体包括当所述BGP邻居收到了所述BGP分布点发送的第二路由发送结束标志或第二路由发送结束消息时,所述BGP邻居根据接收到的所述路由对存储的路由进行路由老化;或者当所述BGP邻居接收到所述BGP分布点发送的路由发送起始消息时,开始计时;在计时值未超过规定的最大等待时间且所述BGP分布点接收到所述BGP邻居发送的第二路由发送结束标志或第二路由发送结束消息、或者计时值超过规定的最大等待时间且所述BGP分布点一直未接收到所述BGP邻居发送的第二路由发送结束标志或第二路由发送结束消息的情况下,所述BGP邻居根据接收到的所述路由对存储的路由进行路由老化,其中所述最大等待时间在所述BGP能力协商过程中协商确定。
6. —种基于BGP的路由老化装置,其特征在于,所述装置包括路由请求模块,用于在BGP分布点重新启动后,向BGP邻居发送路由请求消息,所述BGP邻居为具有在邻居不断连情况下老化路由能力的BGP邻居;路由处理模块,用于对BGP分布点接收到的路由进行路由处理,所述接收到的路由为BGP邻居根据所述路由请求消息发送的路由;路由发送模块,用于在路由处理模块完成路由处理后,向BGP邻居发送路由处理后的路由,使BGP邻居根据接收到的路由进行路由老化。
7. 如权利要求6所述的装置,其特征在于,所述装置还包括能力协商模块,用于进行BGP能力协商,并根据BGP邻居通报的是否具有在邻居不断连情况下老化路由能力信息确定具有在邻居不断连情况下老化路由能力的BGP邻居,并存储具有在邻居不断连情况下老化路由能力的BGP邻居信息,所述是否具有在邻居不断连情况下老化路由能力的信息携带在扩展的BGP能力协商过程的消息中。
8. 如权利要求6所述的装置,其特征在于,路由处理模块包括判断子模块,用于判断是否接收到BGP邻居发送的第一路由发送结束标志或第一路由发送结束消息;路由处理子模块,用于在所述判断子模块判断出接收到BGP邻居发送的第一路由发送结束标志或第一路由发送结束消息后,对BGP分布点接收到的路由进行路由处理。
9. 如权利要求6所述的装置,其特征在于,所述路由发送模块包括消息构造子模块,用于构造向BGP邻居发送路由发送起始消息、向BGP邻居发送的携带有路由处理后的路由的消息、以及向BGP邻居发送的第二路由发送结束标志或第二路由发送结束消息;发送子模块,用于先向BGP邻居发送路由发送起始消息,然后向BGP邻居发送携带有路由处理后的路由的消息,再向BGP邻居发送第二路由发送结束标志或第二路由发送结束消息。
10. —种路由器,设置有多个BGP分布点,其特征在于,包括路由请求模块,用于在BGP分布点重新启动后,向BGP邻居发送路由请求消息,所述BGP邻居为具有在邻居不断连情况下老化路由能力的BGP邻居;接收模块,用于接收BGP邻居根据所述路由请求消息发送的路由;路由处理模块,用于对接收模块接收的路由进行路由处理;路由发送模块,用于在路由处理模块完成路由处理后,向BGP邻居发送路由处理后的路由,使BGP邻居根据接收到的路由进行路由老化。
11. 如权利要求IO所述的路由器,其特征在于,所述路由器还包括能力协商模块,用于进行BGP能力协商,并根据BGP邻居通报的是否具有在邻居不断连情况下老化路由能力信息确定具有在邻居不断连情况下老化路由能力的BGP邻居,并存储具有在邻居不断连情况下老化路由能力的BGP邻居信息,所述是否具有在邻居不断连情况下老化路由能力的信息携带在扩展的BGP能力协商过程的消息中。
全文摘要
公开了基于边界网关协议的路由老化方法、装置和路由器。其中,基于BGP的路由老化方法包括BGP分布点在重新启动后,向BGP邻居发送路由请求消息,所述BGP邻居为具有在邻居不断连情况下老化路由能力的BGP邻居;BGP分布点接收BGP邻居根据所述路由请求消息发送的路由,并对接收到的路由进行路由处理;BGP分布点向BGP邻居发送路由处理后的路由,使BGP邻居根据接收到的路由进行路由老化。上述技术方案可以实现在不与BGP邻居断连的情况下,更新BGP邻居中存储的路由。
文档编号H04L29/06GK101764737SQ200810241079
公开日2010年6月30日 申请日期2008年12月25日 优先权日2008年12月25日
发明者徐海军, 武利, 程强林, 陈双龙 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1