一种边界网关协议路由处理方法和路由器的制作方法

文档序号:7699528阅读:202来源:国知局
专利名称:一种边界网关协议路由处理方法和路由器的制作方法
技术领域
本发明涉及通信网络中的路由技术,尤其涉及一种边界网关协议路由处理 方法和路由器。
背景技术
边界网关协议(Border Gateway Protocol, BGP )是一种用于自治系统 (Autonomous System, AS)之间的动态路由协议,其中,AS是拥有同一选 路策略、在同一技术管理部门下运行的一组路由器。BGP-4做为事实上的 Internet外部路由协议标准,被广泛应用于因特网服务提供商(Internet Service Provider, ISP)之间。
图1为一种包括三个自治系统的组网示意图。如图1所示,路由器A(RTA) 属于自治系统100 ( AS100 ),路由器B (RTB )属于自治系统200 ( AS200 ), 路由器C (RTC)属于自治系统300 (AS300), RTA分别与RTB、 RTC建立 BGP邻居关系。在一些情况下,网络管理员会改变路由器中的配置(原因包 括网络拓朴变化、网络升级等),对BGP而言,当这些改变影响到BGP Session (会话)时,BGP会向邻居发送Notification (通知)报文,断开邻居关系, 然后再通过向邻居发送Open (打开)报文重新建立邻居关系。在这个过程中, 由于BGP邻居断开,相应的BGP路由会被删除,从而造成流量(也就是用户 的业务)中断。
例如,AS200有到AS300的流量,若此时在RTA上更改与RTB邻居关系 的配置(如更改与RTB建立邻居时使用的保持时间HoldTime ),造成RTA与 RTB邻居断开,贝'j RTA会删除所有从RTB学习到的路由(包含到AS300的 路由),同时RTA也会通知RTC删除这些路由,这样RTA与RTC上就没有到 AS300的路由,流量转发因此中断。
现有技术的一种解决方法是在组网时规避,即在两个AS间建立多个BGP 邻居。这种处理方法的缺点在于,由于各AS可能属于不同的组织管理,很难保证每两个AS之间都有多个邻居,也就无法彻底避免上述问题。

发明内容
本发明所要解决的技术问题是提供一种边界网关协议路由处理方法和路 由器,在BGP配置改变导致邻居重建时,能够保持流量不中断。 为解决上述技术问题,本发明提供技术方案如下 一种边界网关协议路由处理方法,其特征在于,该方法包括 第一路由器在确定需要与第二路由器重建邻居关系时,对来自于第二路由 器的BGP路由设置失效标记;
第一路由器与第二路由器重建邻居关系,并在重建邻居关系完成后,启动 一第一定时器;
第一路由器从第二路由器学习BGP路由,根据学习到的BGP路由进行路 由更新,并在第一定时器超时后,删除带有失效标记的BGP路由,并将删除 的BGPif各由通知其他邻居。
上述的方法,其中,所述根据学习到的BGP路由进行路由更新包括 第一路由器收到第二路由器发送的BGP路由后,如果本地存在与所述收 到的BGP路由的前缀和掩码都相同的且带有失效标记的BGP路由,则在二者 的路由属性相同时,去除该带有失效标记的BGP ^^由的失效标记,在二者的 路由属性不同时,删除该带有失效标记的BGP路由,并将删除的BGP路由通 知其他邻居。
上述的方法,其中,所述第一路由器与第二路由器重建邻居关系包括 第一路由器向第二路由器发送打开OPEN报文;
第二路由器接收到所述OPEN报文后,对来自于第一路由器的BGP路由 设置失效标记,并通过向第一路由器发送OPEN报文来完成所述邻居关系的 重建。
上述的方法,其中,还包括
在重建邻居关系完成后,第二i 各由器启动一第二定时器; 第二路由器从第一路由器学习BGP路由,根据学习到的BGP路由进行路
由更新,并在第二定时器超时后,删除带有失效标记的BGP路由,并将删除
的BGP 3各由通知其他邻居。
6上述的方法,其中,所述第二路由器根据学习到的BGP路由进行路由更 新包括
第二路由器收到第一路由器发送的BGPi 各由后,如果本地存在与所述收 到的BGP路由的前缀和掩码都相同的且带有失效标记的BGP路由,则在二者 的路由属性相同时,去除该带有失效标记的BGP路由的失效标记,在二者的 路由属性不同时,删除该带有失效标记的BGP5^由,并将删除的BGP^^由通 知其他邻居。
上述的方法,其中,在第一路由器与第二路由器首次建立邻居关系时,还 通过在OPEN报文中携带稳定管理能力集来进行稳定管理能力的协商。 上述的方法,其中,所述稳定管理能力集包括 表示是否具有稳定管理能力的字段; 等待时间字段; 稳定时间字段;
表示所述等待时间字段与所述稳定时间字段所占字节数之和的字段。 上述的方法,其中,在重建邻居关系时,第一路由器向第二路由器发送的
OPEN报文中携带所述稳定管理能力集,所述稳定管理能力集中的稳定时间设
置为大于0;
所述第一定时器和第二定时器的定时时间均为所述稳定时间。 上述的方法,其中,第一路由器与第二路由器在建立邻居关系后,在
MAX(等待时间,保持时间)内没有收到保活KeepAlive报文时,断开彼此的
邻居关系。
一种路由器,包括
第一标记模块,用于在确定需要与第二路由器重建邻居关系时,对来自于 第二路由器的BGP路由设置失效标记;
第一定时器,在重建邻居关系完成后启动;
第 一路由更新模块,用于从第二路由器学习BGP路由,根据学习到的BGP 路由进行路由更新,并在第一定时器超时后,删除带有失效标记的BGP路由, 并将删除的BGP路由通知其他邻居。
上述的路由器,其中,所述第一路由更新模块进一步用于,收到第二路由器发送的BGP路由后,如果本地存在与所述收到的BGP路由的前缀和掩码都 相同的且带有失效标记的BGP路由,则在二者的路由属性相同时,去除该带 有失效标记的BGP路由的失效标记,在二者的路由属性不同时,删除该带有 失效标记的BGP路由,并将删除的BGP路由通知其他邻居。 一种路由器,包括
第二标记模块,用于在接收到第一路由器发送的请求重建邻居关系的 OPEN报文后,对来自于第一路由器的BGP路由设置失效标记; 第二定时器,在重建邻居关系完成后启动;
第二路由更新模块,用于从第 一路由器学习BGP路由,根据学习到的BGP 路由进行路由更新,并在第二定时器超时后,删除带有失效标记的BGP路由, 并将删除的BGP路由通知其他邻居。
上述的路由器,其中,所述第二路由更新模块进一步用于,收到第一路由 器发送的BGP路由后,如果本地存在与所述收到的BGP^^由的前缀和掩码都 相同的且带有失效标记的BGP路由,则在二者的路由属性相同时,去除该带 有失效标记的BGP路由的失效标记,在二者的路由属性不同时,删除该带有 失效标记的BGP ^^由,并将删除的BGP路由通知其他邻居。
本发明的实施例在BGP配置改变需要重建邻居关系时,不删除相应的 BGP路由,而是对相应的BGP理由设置失效标记,在重建邻居关系完成后, 再进行路由更新,从而能够保持流量不中断,使得在网络拓朴变化和网络升级 中用户业务不受影响。


图l为一种包括三个自治系统的组网示意图; 图2为本发明实施例的BGP路由处理方法流程图; 图3为本发明实施例中第一路由器的BGP稳定管理状态机的示意图; 图4为本发明实施例中第二路由器的BGP稳定管理状态机的示意图; 图5为本发明实施例中第一路由器的结构示意图; 图6为本发明实施例中第二路由器的结构示意图。
具体实施例方式
本发明实施例的基本思想是在BGP配置改变需要重建邻居关系时,不删除相应的BGP路由,而是对相应的BGP理由设置失效标记,在重建邻居关 系完成后,再进行路由更新。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实 施例对本发明进行详细描述。
参照图2,本发明实施例的BGP路由处理方法包括如下步骤
步骤201:第一路由器在确定需要与第二路由器重建邻居关系时,对来自 于第二路由器的BGP路由设置失效(Stale)标记;
第 一路由器与第二路由器之间建立有邻居关系,网络管理员需要更改第一 路由器中的配置,且此配置的更改会影响第一路由器与第二路由器的邻居关 系,此时,不断开所述邻居关系,也不删除来自于第二路由器的BGP路由, 而是将所述来自于第二路由器的BGP路由打上Stale标记。
步骤202:第 一路由器向第二路由器发送OPEN报文,请求重建邻居关系;
步骤203:第二路由器接收到所述OPEN报文后,对来自于第一路由器的 BGP路由设置失效标记;
第二路由器在与第一路由器重建邻居关系前,不删除来自于第一路由器的 BGP路由,而是将所述来自于第一路由器的BGP路由打上Stale标记。
步骤204:第二路由器通过向第一路由器发送OPEN报文来完成所述邻居 关系的重建;
步骤205:在重建邻居关系完成后,第一路由器启动一第一定时器,第二 路由器启动一第二时器;
所述第一定时器和第二定时器的定时时间可以设置为相同。在重建邻居关 系时,第一路由器向第二路由器发送的OPEN报文中携带该定时时间。
步骤206:第一路由器与第二路由器之间进行BGP路由的同步;
这里,路由的同步包括在第一路由器上的处理和在第二路由器上的处理。 在第一路由器上的处理为,第一路由器从第二路由器学习BGP路由,根据学 习到的BGP路由进行路由更新,具体包括第一路由器收到第二路由器发送 的BGP路由后,判断本地是否存在与所述收到的BGP路由的前缀和掩码都相 同的BGP路由,(l)如果不存在,则按正常流程处理此BGP路由,即,按照 给路由器配置的路由策略处理此BGP路由,例如,确定此BGP路由是否为最
9优路由、路由属性是否要更改、向哪些邻居转发此BGP路由等;(2)如果存 在,进一步判断本地对应的BGP路由是否带有Stale标记,如果不带Stale标 记,则按正常流程处理此BGP路由,如果带有Stale标记,则还需要判断收到 的BGP路由与本地对应的BGP路由的属性是否相同,在二者的路由属性相同 时,去除该带有失效标记的BGPi 各由的失效标记,在二者的^^由属性不同时, 删除该带有失效标记的BGP路由,并将删除的BGP路由通过更新(Update ) 报文通知其他邻居,这里的其他邻居是指,第一路由器的除第二路由器之外的 邻居。
类似地,在第二路由器上的处理为,第二路由器从第一路由器学习BGP 路由,根据学习到的BGP路由进行路由更新,具体包括第二路由器收到第 一路由器发送的BGP路由后,判断本地是否存在与所述收到的BGP路由的前 缀和掩码都相同的BGP路由,(1 )如果不存在,则按正常流程处理此BGP路 由,(2)如果存在,进一步判断本地对应的BGP路由是否带有Stale标记,如 杲不带Stale标记,则按正常流程处理此BGP路由,如果带有Stale标记,贝'J 还需要判断收到的BGP路由与本地对应的BGP路由的属性是否相同,在二者 的路由属性相同时,去除该带有失效标记的BGP路由的失效标记,在二者的 路由属性不同时,删除该带有失效标记的BGP路由,并将删除的BGP路由通 过Update报文通知其他邻居,这里的其他邻居是指,第二路由器的除第一路 由器之外的邻居。
步骤207:第一路由器在第一定时器超时后,删除带有失效标记的BGP 路由,并将删除的BGP路由通知其他邻居;第二路由器在第二定时器超时后, 删除带有失效标记的BGP路由,并将删除的BGP路由通知其他邻居。
在实施上述方法时,可以在BGP中新增一个能力集稳定管理能力,并 通过BGP稳定管理状态机来对路由器中各种状态的跳转进行管理。
所述稳定管理能力集的格式如下表所示
+-----------------------------------+
I稳定管理能力U octe" I +-----------------------------------+
I数据长度(l octet) I +-----------------------------------+
l等待时间(2 octet) |稳定时问(2 octet) I +-----------------------------------+
10其中,各字段含义如下
稳定管理能力是否拥有稳定管理能力的标识。
数据长度等待时间字段与稳定时间字段所占的字节数之和。
等待时间邻居关系建立后,邻居在MAX {等待时间,HoldTime(保持
时间)}内没有收到保活(KeepAlive)报文时,才应该断开邻居关系,否则应
保持邻居关系。
稳定时间此字段在路由器间首次建立邻居关系时为0;在BGP进入稳 定管理状态后,此时间表示邻居需要保持原有路由(即带有Stale标记的路由) 的时间。
此能力集可以在OPEN报文中携带,用于协商稳定管理能力。当建邻居 的双方在OPEN报文中都携带此能力时,则此能力协商成功,BGP拥有稳定 管理能力。
BGP拥有稳定管理能力,意味着BGP可以进入稳定管理状态。在此状态, BGP不会主动连接邻居,在配置发生改变需要断开邻居时,BGP会保持从邻 居接收的路由信息。退出稳定管理状态后,BGP会与需要重建邻居关系的邻 居重建邻居关系。
参照图3和图4,假设第一路由器与第二路由器都具有稳定管理能力,建 立BGP邻居时稳定管理能力协商成功,第一、二路由器均处于Establish状态 (邻居建立完成状态)。现在,第一路由器上BGP需要更改配置(如,非直连 EBGP邻居最大跳数、BGP邻居保持时间等),此配置的更改会影响第一路由 器与第二路由器的邻居关系,即需要重建邻居关系。此时,第一路由器的BGP 可以进入Steady-Control状态(稳定管理状态的第一子状态),更改配置后不向 第二路由器发送Notification报文,而是将第一路由器与第二路由器之间的 BGP Session做如下处理
第一路由器将与第二路由器之间的BGP Session设置为Steady-going状态 (稳定管理状态的第二子状态),标明此Session正处于稳定管理状态且需要重 建邻居;
第一路由器将所有从第二路由器接收到的BGP路由,打上Stale标记。 在第一i 各由器配置修改完成后,BGP退出稳定管理状态,此时第一路由器会通过向第二路由器发送OPEN报文来重建邻居关系,报文中携带稳定管 理能力,且稳定时间为用户设定时间。此时,BGP退出Steady-going状态,进 入Reconstruct状态(断开重建状态)。
第二路由器收到第 一路由器发送的OPEN报文后,发现稳定时间不为0, 会认为第一路由器已经进入过稳定管理状态,则做如下处理
重建与第一路由器的邻居关系,但保持从第一路由器接收到的路由,并记
录OPEN报文中携带的稳定时间;
将所有从第一路由器接收到的路由,打上Stale标记。
在第一路由器与第二路由器的邻居关系重新建立后,BGP Session进入 Establish-Stale状态(邻居建立后待同步状态),#:如下处理
各自启动一个定时器,定时时间为所述稳定时间,所述定时器超时后,删 除所有带有Stale标记的BGP路由,并将删除的BGP路由通过Update报文通 知其他邻居;
同时向对方更新所有非Stale标记路由。
具体地,邻居处于Establish-Stale状态时,第一路由器与第二路由器在收 到对方发送来的路由后,做如下处理
(1 )如果BGP路由表中有与从第二路由器(或第一路由器)收到的前缀 和掩码都相同的路由,且带有Stale标记,则比较路由属性是否相同(不包括 Stale标记),如果相同,则去掉BGP路由表中对应路由的Stale标记;如果不 同,则删除BGP路由表中对应路由,后续按照正常流程处理此收到的BGP路 由(包括向其他邻居更新此路由);
如果查找到的前缀和掩码都相同的路由不带Stale标记,则按照正常流程 处理此收到的BGP路由(包括向其他邻居更新此路由)。
(2)如果查找不到前缀和掩码都相同的路由,则按照正常流程处理此收 到的BGP;各由。
以下介绍实现上述方法的路由器。
参照图5,本发明实施例的第一路由器包括
第一标记模块,用于在确定需要与第二路由器重建邻居关系时,对来自于 第二路由器的BGP路由设置失效标记;第一定时器,在重建邻居关系完成后启动;
第 一路由更新模块,用于从第二路由器学习BGP路由,根据学习到的BGP 路由进行路由更新,并在第一定时器超时后,删除带有失效标记的BGP路由, 并将删除的BGP路由通知其他邻居。其中,根据学习到的BGP路由进行路由 更新包括第一路由器收到第二路由器发送的BGP路由后,如果本地存在与 所述收到的BGP路由的前缀和掩码都相同的且带有失效标记的BGP路由,则 在二者的路由属性相同时,去除该带有失效标记的BGP路由的失效标记,在 二者的路由属性不同时,删除该带有失效标记的BGP路由,并将删除的BGP 路由通知其他邻居。
参照图6,本发明实施例的第二路由器包括
第二标记模块,用于在接收到第一路由器发送的请求重建邻居关系的 OPEN报文后,对来自于第一路由器的BGP^^由设置失效标记; 第二定时器,在重建邻居关系完成后启动;
第二路由更新模块,用于从第 一路由器学习BGP路由,根据学习到的BGP 路由进行路由更新,并在第二定时器超时后,删除带有失效标记的BGP路由, 并将删除的BGP路由通知其他邻居。其中,根据学习到的BGP路由进行路由 更新包括收到第一路由器发送的BGP路由后,如果本地存在与所述收到的 BGP路由的前缀和掩码都相同的且带有失效标记的BGP路由,则在二者的路 由属性相同时,去除该带有失效标记的BGP路由的失效标记,在二者的路由 属性不同时,删除该带有失效标记的BGP路由,并将删除的BGP路由通知其 他邻居。
最后应当说明的是,以上实施例仅用以说明本发明的技术方案而非限制, 本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同 替换,而不脱离本发明技术方案的精神范围,其均应涵盖在本发明的权利要求 范围当中。
1权利要求
1.一种边界网关协议BGP路由处理方法,其特征在于,该方法包括第一路由器在确定需要与第二路由器重建邻居关系时,对来自于第二路由器的BGP路由设置失效标记;第一路由器与第二路由器重建邻居关系,并在重建邻居关系完成后,启动一第一定时器;第一路由器从第二路由器学习BGP路由,根据学习到的BGP路由进行路由更新,并在第一定时器超时后,删除带有失效标记的BGP路由,并将删除的BGP路由通知其他邻居。
2. 如权利要求l所述的方法,其特征在于,所述根据学习到的BGP路由 进行路由更新包括第一路由器收到第二路由器发送的BGP路由后,如果本地存在与所述收 到的BGP路由的前缀和掩码都相同的且带有失效标记的BGP路由,则在二者 的路由属性相同时,去除该带有失效标记的BGP路由的失效标记,在二者的 路由属性不同时,删除该带有失效标记的BGP路由,并将删除的BGP路由通 知其他邻居。
3. 如权利要求1或2所述的方法,其特征在于,所述第一路由器与第二 路由器重建邻居关系包括第 一路由器向第二路由器发送打开OPEN报文;第二路由器接收到所述OPEN报文后,对来自于第一路由器的BGP路由 设置失效标记,并通过向第一路由器发送OPEN报文来完成所述邻居关系的 重建。
4. 如权利要求3所述的方法,其特征在于,该方法还包括 在重建邻居关系完成后,第二路由器启动一第二定时器; 第二路由器从第一路由器学习BGP路由,根据学习到的BGP路由进行路由更新,并在第二定时器超时后,删除带有失效标记的BGP路由,并将删除 的BGP路由通知其他邻居。
5. 如权利要求4所述的方法,其特征在于,所述第二路由器根据学习到的BGP if各由进行路由更新包括第二路由器收到第一路由器发送的BGP路由后,如果本地存在与所述收的路由属性相同时,去除该带有失效标记的BGP路由的失效标记,在二者的 路由属性不同时,删除该带有失效标记的BGP路由,并将删除的BGP路由通 知其他邻居。
6. 如权利要求3所述的方法,其特征在于在第一路由器与第二路由器首次建立邻居关系时,还通过在OPEN报文 中携带稳定管理能力集来进行稳定管理能力的协商。
7. 如权利要求6所述的方法,其特征在于,所述稳定管理能力集包括 表示是否具有稳定管理能力的字段;等待时间字段; 稳定时间字段;表示所述等待时间字段与所述稳定时间字段所占字节数之和的字段。
8. 如权利要求7所述的方法,其特征在于在重建邻居关系时,第一路由器向第二路由器发送的OPEN报文中携带 所述稳定管理能力集,所述稳定管理能力集中的稳定时间设置为大于0; 所述第 一定时器和第二定时器的定时时间均为所述稳定时间。
9. 如权利要求7所述的方法,其特征在于第一^各由器与第二路由器在建立邻居关系后,在MAX(等待时间,保持时 间}内没有收到保活KeepAlive 4良文时,断开彼此的邻居关系。
10. —种路由器,其特征在于,包括第一标记模块,用于在确定需要与第二路由器重建邻居关系时,对来自于 第二路由器的BGP路由设置失效标记;第一定时器,在重建邻居关系完成后启动;第 一路由更新模块,用于从第二路由器学习BGP路由,根据学习到的BGP 路由进行路由更新,并在第一定时器超时后,删除带有失效标记的BGP路由, 并将删除的BGP路由通知其他邻居。
11. 如权利要求IO所述的路由器,其特征在于所述第一路由更新模块进一步用于,收到第二路由器发送的BGP路由后, 如果本地存在与所述收到的BGP路由的前缀和掩码都相同的且带有失效标记 的BGP路由,则在二者的路由属性相同时,去除该带有失效标记的BGP路由 的失效标记,在二者的路由属性不同时,删除该带有失效标记的BGP路由, 并将删除的BGP^^各由通知其他邻居。
12. —种路由器,其特征在于,包括第二标记模块,用于在接收到第 一路由器发送的请求重建邻居关系的 OPEN报文后,对来自于第一路由器的BGP路由设置失效标记; 第二定时器,在重建邻居关系完成后启动;第二路由更新模块,用于从第 一路由器学习BGP路由,根据学习到的BGP 路由进行路由更新,并在第二定时器超时后,删除带有失效标记的BGP路由, 并将删除的BGP路由通知其他邻居。
13. 如权利要求12所述的路由器,其特征在于所述第二路由更新模块进一步用于,收到第一路由器发送的BGP路由后, 如果本地存在与所述收到的BGP路由的前缀和掩码都相同的且带有失效标记 的BGP路由,则在二者的路由属性相同时,去除该带有失效标记的BGP路由 的失效标记,在二者的路由属性不同时,删除该带有失效标记的BGP路由, 并将删除的BGP路由通知其他邻居。
全文摘要
本发明公开一种边界网关协议路由处理方法和路由器,所述方法包括第一路由器在确定需要与第二路由器重建邻居关系时,对来自于第二路由器的BGP路由设置失效标记;第一路由器与第二路由器重建邻居关系,并在重建邻居关系完成后,启动一第一定时器;第一路由器从第二路由器学习BGP路由,根据学习到的BGP路由进行路由更新,并在第一定时器超时后,删除带有失效标记的BGP路由,并将删除的BGP路由通知其他邻居。依照本发明,在BGP配置改变导致邻居重建时,能够保持流量不中断。
文档编号H04L12/56GK101515891SQ20091008139
公开日2009年8月26日 申请日期2009年4月2日 优先权日2009年4月2日
发明者周轶凡, 伟 王, 赵昌峰 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1