防止自治系统内路由环路的方法和设备的制作方法

文档序号:7928235阅读:131来源:国知局
专利名称:防止自治系统内路由环路的方法和设备的制作方法
技术领域
本发明涉及自治系统内的路由信息传输技术,尤其涉及一种防止自治系统 内路由环路的方法和设备。
背景技术
边界网关协议(BGP, Border Gateway Protocol)是当前通用的域间路由协 议。随着IP网络的飞速发展,网络拓朴也越来越庞大,实际应用中构建的BGP 路由网络在一个自治系统(AS, Autonomous System)内,通常已不再是由一 台或者两台运行着BGP的网络设备组成,而往往是由多台网络设备组成,并且 这些网络设备在物理拓朴上也存在着环形连接的可能。环形连接容易导致如下 情形的产生,即一台运行BGP的网络设备从其他AS学到路由信息,并将学到 的路由信息通告给自身所在AS内的其他网络设备;通告出去的路由信息将有 可能通过环路又被通告回自身网络设备,而该网络设备却无法感知是自己通告 出去的路由信息,从而又将通告回来的路由信息作为一条新的路由信息进行接 收利用。
为防止产生上述路由环路的问题,目前的BGP中制定了一个规则,即运行 BGP的网络设备不允许将自身的内部边界网关协议(IBGP, Interior Border Gateway Protocol)邻居传递来的路由信息通告给自身的其他IBGP邻居。在同 一AS内部,与某个网络设备建立了邻居关系的网络设备,即称为该网络设备 的IBGP邻居。这种规则使得路由信息在AS内部只能够被传递一次,不发生二 次传递,可以避免路由信息通过环路进行传输。但是这种规则会带来另外一个 问题,即同一AS内的所有网络设备必须都相互建立IBGP邻居关系,也称为全 互联的连接方式,否则路由信息将不能到达AS内的每个网络设备。如果AS内部的网络设备数量为N个,将会产生N (N-l) /2个IBGP连接数量,从配置 复杂度和设备承受能力上来说是无法接收的。
针对上述BGP的规则所带来的配置复杂和设备压力大的问题,现有技术中 存在一种采用路由反射规则来打破全互联拓朴的解决方法。该方法引入路由反 射器和客户机的概念,路由信息的传递规则为路由反射器从非客户机收到的 路由信息仅反射给客户机;路由反射器从客户机收到的路由信息,反射给除路 由信息发起者外的其他客户机和非客户机;从外部边界网关协议(EBGP, External Border Gateway Protocol)邻居收到的路由信息,发射给所有客户才几和 非客户机。如果位于不同AS内的两个网络设备之间建立了邻居关系,那么这 两个网络设备即互为EBGP邻居。容易发现,上述方法如果在AS内路由反射 器数量多的情况下,而路由反射器之间互为对方客户机,根据其传递规则还是 会出现路由环路的问题。
综上所迷,现有技术还无法提供一种简单方便的用于防止AS内路由环路 的有效方法。

发明内容
有鉴于此,本发明的主要目的在于提供一种防止自治系统内路由环路的方
法和设备,以有效防止自治系统内部产生路由环路。
为达到上述目的,本发明的技术方案是这样实现的 本发明提供了 一种防止自治系统内路由环路的方法,该方法包括 接收路由信息,并判断所述路由信息中是否携带有附加属性; 在判定所述路由信息中携带有附加属性时,遍历所述附加属性,查找所述
附加属性中是否存在自身的唯一标识,如果存在,则丢弃所述路由信息;如果
不存在,则对所述路由信息4九行本地处理;
在判定所述路由信息中不携带附加属性时,对所述路由信息直接执行本地处理。
所述自身的唯一标识为路由身份标识Router ID和人工配置标识数值中的至少一种。
本发明还提供了 一种防止自治系统内路由环路的方法,该方法包括
在需要发送路由信息时,检测所述路由信息的发送对象类型;
在检测所述发送对象为内部边界网关协议IBGP邻居时,判断所述路由信 息中是否携带有附加属性,如果有携带,则添加自身的唯一标识到所述附加属 性中作为序列的最后一个值,并向所述IBGP邻居发送路由信息;如果不携带, 则创建附加属性,并添加自身的唯一标识作为所述附加属性的第一个值,并向 所述IBGP邻居发送路由信息;
在检测所述发送对象为外部边界网关协议EBGP邻居时,判断所述路由信 息中是否携带有附加属性,如果有携带,则删除所述附加属性,并向所述EBGP 邻居发送路由信息;如果不携带,则直接向所述EBGP邻居发送路由信息。
所述自身的唯一标识为Router ID和人工配置标识数值中的至少一种。
本发明还提供了一种路由信息接收设备,包括
信息接收模块,用于接收路由信息;
第一判断模块,用于判断所接收的路由信息中是否携带有附加属性,并得 到判断结果;
遍历模块,用于根据判断结果,在所接收的路由信息中携带有附加属性时, 遍历所述附加属性中是否存在所述路由信息接收设备自身的唯一标识,并得到 遍历结果;
第一信息处理模块,用于根据所述第一判断模块的判断结果,以及所述遍 历模块的遍历结果,对所述路由信息执行丢弃或本地处理。 本发明还提供了一种路由信息发送设备,包括
发送对象检测模块,用于在需要发送路由信息时,检测所述路由信息的发 送对象类型,并得到检测结果;
第二判断模块,用于判断需要发送的路由信息中是否携带有附加属性,并
得到判断结果;
第二信息处理模块,用于根据所述发送对象检测模块的检测结果,以及所述第二判断模块的判断结果,添加所述路由信息发送设备自身的唯一标识到所
述附加属性中作为序列的最后一个值,并发送所述路由信息;或者创建附加属 性,并添加所述路由信息发送设备自身的唯一标识作为所述附加属性的第一个 值,并发送所述路由信息;或者删除附加属性,并发送所述路由信息;或者直 接发送所述路由信息。
本发明所提供的防止自治系统内路由环路的方法和设备,通过在路由信息 增设一种附加属性,并根据该附加属性判断是否有路由环路产生,从而在有路 由环路产生时,可以及时采糾目应措施,以达到防止路由环路的目的;本发明 避开了现有技术中的强制性规则所带来的复杂问题,其实现方便简单,并大大 降低了网络配置的复杂度和网络设备所承受的压力。


图1为本发明接收路由信息时防止路由环路的方法流程图; 图2为本发明发送路由信息时防止路由环路的方法流程图; 图3为本发明实施例的BGP路由网络的拓朴图; 图4为本发明一种路由信息接收设备的组成结构示意图; 图5为本发明一种路由信息发送设备的组成结构示意图。
具体实施例方式
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。 在本发明所提供的一种防止自治系统内路由环路的方法中,定义了 一种路 由信息的附加属性,该附加属性为一串数值的有序集合,此处的数值指的是在 一个AS内部各个网络设备的唯一标识,例如可以釆用网络设备的路由身份 标识(RouterID, RouterIDentity)值,或者其他人工配置的标识数值作为各个 网络设备的唯一标识。
基于本发明的方法,当网络设备需要将路由信息传递给其IBGP邻居时, 判断该路由信息中是否携带有附加属性,如果没有携带,则创建附加属性,并添加本网络设备自身的唯一标识作为该附加属性的第一个值;如果有携带,则 添加本网络设备自身的唯一标识到该附加属性中作为序列的最后一个值。相应 的,当网络设备接收到其IBGP邻居传递来的路由信息时,遍历所接收的路由 信息中的附加属性,如果发现附加属性中存在本网络i殳备自身的唯一标识,则 认为路由环路产生,判定该路由信息为无效,并忽略该路由信息以抑制路由环 路;如果发现附加属性中不存在本网络设备自身的唯一标识,则判定该路由信 息为有效,并对该路由信息进行本地处理。
另外,当网络设备需要将路由信息发送给其EBGP邻居时,判断该路由信 息是否携带有附加属性,如果有携带,则删除该附加属性,并将删除附加信息 后的路由信息传递给EBGP邻居;如果没有携带,则不执行与附加属性相关的 任何操作,并将路由信息传递给EBGP邻居。相应的,当网络设备接收到其EBGP 邻居传递来的路由信息时,无需执行与附加属性相关的任何操作,直接对路由 信息进行本地处理,因为从路由信息向EBGP邻居的发送操作中可以得知, EBGP邻居传递来的路由信息中是不会携带附加属性的。
下面对网络设备在接收路由信息时防止路由环路的方法进行详细说明,如 图l所示,该方法主要包括以下步骤
步骤101,网络设备接收到路由信息时,判断该路由信息中是否携带有附 加属性,如果有携带,则执行步骤102;如果没有携带,执行步骤104。
实际应用中,网络设备接收路由信息存在如下两种情况 一、路由信息是 从该网络设备的IBGP邻居传递过来的,那么该路由信息中携带有附加属性; 二、路由信息是从该网络设备的EBGP邻居传递过来的,那么该路由信息中不 携带附加属性。
步骤102,网络设备遍历路由信息中的附加属性,查找路由信息的附加属 性中是否存在本网络设备自身的唯一标识,如果存在,则执行步骤103;如果 不存在,则执行步骤104。
如果路由信息的附加属性中存在本网络设备自身的唯一标识,则表明该路 由信息已经从本网络设备传递过一次,而本网络设备却再次收到了该路由信息,可以断定路由环路产生,从而判定该路由信息为无效,执行步骤103;如果路 由信息的附加属性中不存在本网络设备自身的唯一标识,则可以断定没有产生 路由环路,进而判定该路由信息为有效,执行步骤104。
步骤103,网络设备对判定为无效的路由信息执行丢弃操作,并在操作完 成后结束整个流程。
步骤104 ,网络设备执行对路由信息的本地处理。
本地处理通常包括路由的本地学习、路由比较以及决定是否下发路由等操 作,本地处理的操作不受附加属性的影响。
网络设备在发送路由信息时防止路由环路的方法,如图2所示,主要包括 以下步骤
步骤201,网络设备在需要发送路由信息时,检测路由信息的发送对象类 型是否为IBGP邻居,如果是,则执4于步骤202;否则,批^亍步骤206。
实际应用中,网络设备需要发送的路由信息属于如下几种情况 一、路由 信息是在该网络设备初始产生的;二、路由信息是从该网络设备的IBGP邻居 传递过来的;三、路由信息是从该网络设备的EBGP邻居传递过来的。而路由 信息的发送对象要么为网络设备的IBGP邻居,要么为网络设备的EBGP邻居, 如果判定为IBGP邻居,则执行步骤202;如果判定为EBGP邻居,则执行步骤 206。
步骤202,网络设备判断需要发送的路由信息中是否携带有附加属性,如 果有携带,则执^f于步骤203;否则,执行步骤204。
针对步骤201中的几种情况,如果路由信息是在该网络设备初始产生的, 那么该路由信息中不携带附加属性;如果路由信息是从该网络设备的IBGP邻 居传递过来的,那么该路由信息中携带有附加属性;如果路由信息是从该网络 设备的EBGP邻居传递过来的,那么该路由信息中不携带附加属性。
步骤203,添加本网络设备自身的唯一标识到该附加属性中作为序列的最 后一个值,操作完成后转到步骤205。
步骤204,创建附加属性,并添加本网络设备自身的唯一标识作为该附加属性的第一个值,操作完成后转到步骤205。
步骤205,向作为IBGP邻居的发送对象发送携带有附加属性的路由信息, 操作完成后结束整个流程。
步骤206,网络设备判断需要发送的路由信息中是否携带有附加属性,如 果有携带,则执行步骤207;否则,执行步骤208。
步骤207,删除附加属性,操作完成后转到步骤208。
如果网络设备向自身的EBGP邻居发送路由信息,而该网络设备与其EBGP 邻居又分别属于不同的AS,网络设备向除自身所在AS之外的AS发送路由信 息时,无需再携带附加属性,因此需要将附加属性删除。
步骤208,向作为EBGP邻居的发送对象发送不携带附加属性的路由信息, 操作完成后结束整个流程。
下面结合图3所示实施例的BGP路由网络拓朴,对上述本发明的防止路由 环路的方法进一步详细阐述。在图3所示的BGP路由网络中,如果按照现有的 方法来解决路由环路问题,即"网络设备不允许将从其IBGP邻居传递来的路 由信息通告给自身其他的IBGP邻居",那么AS 2 00内部的4台网络设备都需 要相互建立IBGP邻居关系, 一共是4 x ( 4-1 ) /2=6个IBGP连接,才能保证 每台设备都能够接收到网络中的路由信息。如果采用本发明方法,那么只需要 AS 200内部的网络设备之间有4个连接,即可使得AS 200内部的每台网络设 备都能够接收到网络中的路由信息,并且可以防止路由环路。如果AS200内部 的网络设备不是4个,而是N个(NM)的话,那么这个差异将会更加明显。
如图3所示,AS 200中存在4台网络设备,网络设备2与网络设备3、网 络设备4有IBGP邻居关系,网络设备3与网络设备2 、网络设备5有IBGP邻 居关系,网络设备4与网络设备2、网络设备5有IBGP邻居关系,网络设备5 与网络设备3 、网络设备4有IBGP邻居关系。即所有网络设^H"义和自己物理链 路相邻的其他网络设备建立了邻居关系,物理拓朴是一个环形,邻居关系的建 立也是一个环形。假设此时位于AS 100内的网络设备1,给位于AS 200内的 网络设备2通告了一条路由信息;网络设备2接收到该路由进行本地处理,并通告给自身的IBGP邻居,通告之前将创建附加属性,并添加自己的Router ID 为附加属性的内容{2.2.2.2}。网络设备3和网络设备4都将收到网络设备2 发来的这一条路由信息,并各自检查附加属性的序列中是否存在自身的Router ID;发现没有,从而认为该路由信息有效,进行本地处理后将该路由信息发往 网络设备5;发出之前添加各自的Router ID到附加属性的序列中,属性内容更 新为网络设备3发出的路由信息中的附加属性是(2.2.2.2, 3.3.3.3},网络设备 4发出的路由信息中的附加属性是{2.2.2.2, 4.4.4.4}。同样,在网络设备5上对 收到的路由信息检查附加属性的序列中是否存在自身的Router ID,以决定是否 接收处理。当然,网络设备5对接收到的路由信息进行本地处理后,如果决定 将路由信息传递给其位于AS 300的EBGP邻居,即网络设备6,那么传递之前 需要删除附加属性,即网络设备6收到此路由信息不会携带附加属性。此路由 信息经过网络设备5的本地处理,将来自网络设备3的路由信息发给网络设备 4 ,将来自网络设备4的路由信息发给网络设备3 ,并添加自己的Router ID到 附加属性中。网络设备3收到的路由信息的附加属性为{2.2.2.2, 4.4.4.4, 5.5.5.5}, 网络设备4收到的路由信息的附加属性为{2.2.2.2, 3.3.3.3, 5.5.5.5}。同样网络 设备3和网络设备4都会接收路由信息并做本地处理后发给网络设备2,网络 设备2收到来自网络设备3和网络设备4的路由信息,携带的附加属性分别是 {2.2.2.2, 4.4.4.4, 5.5.5.5, 3.3.3.3}和{2.2.2.2, 3.3.3.3, 5.5.5.5, 4.4.4.4}。网络 设备2进行对附加属性的序列检查时,发现自身的Router ID已经存在于附加属 性中,于是忽略这两条路由信息,从而有效防止了环路的产生。
为实现上述路由信息接收时防止路由环路的方法,本发明还提供了一种路 由信息接收设备,如图4所示,该设备包括信息接收模块41、第一判断模块 42、遍历模块43和第一信息处理模块44。
其中,信息接收模块41,用于接收路由信息。
第一判断模块42,连接信息接收模块41,用于判断所接收的路由信息中是 否携带有附加属性,并得到判断结果。
遍历模块43,连接第一判断模块42,用于根据判断结果,在所接收的路由信息中携带有附加属性时,遍历附加属性,判断附加属性中是否存在路由信息 接收设备自身的唯一标识,并得到遍历结果。
第一信息处理模块44,连接第一判断模块42和遍历模块43,用于根据判 断结果,在路由信息中不携带附加属性时,对该路由信息直接执行本地处理; 根据遍历结果,在确定附加属性中存在路由信息接收设备自身的唯一标识时, 丟弃该路由信息。
为实现上述路由信息发送时防止路由环路的方法,本发明还提供了一种路 由信息发送设备,如图5所示,该设备包括发送对象检测模块51、第二判断 模块52和第二信息处理模块53。
其中,发送对象检测模块51,用于在需要发送路由信息时,检测路由信息 的发送对象类型,并得到检测结果。
第二判断模块52,连接发送对象检测模块51,用于判断需要发送的路由信 息中是否携带有附加属性,并得到判断结果。
第二信息处理模块53,连接发送对象检测模块51和第二判断模块52,用 于根据检测结果和判断结果,在发送对象为IBGP邻居,且路由信息中携带有 附加属性时,添加路由信息发送设备自身的唯一标识到附加属性中作为序列的 最后一个值,并向IBGP邻居发送路由信息;在发送对象为IBGP邻居,且路由 信息中不携带附加属性时,创建附加属性,并添加路由信息发送设备自身的唯 一标识作为所述附加属性的第一个值,并向IBGP邻居发送路由信息;在发送 对象为EBGP邻居,且路由信息中携带有附加属性时,删除附加属性,并向EBGP 邻居发送路由信息;在发送对象为EBGP邻居,且路由信息中不携带附加属性 时,直接向EBGP邻居发送路由信息。
需要指出的是,实际应用中,上述路由信息接收设备和路由信息发送设备 的功能可以在同 一个运行BGP的网络设备上实现。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1、一种防止自治系统内路由环路的方法,其特征在于,该方法包括接收路由信息,并判断所述路由信息中是否携带有附加属性;在判定所述路由信息中携带有附加属性时,遍历所述附加属性,查找所述附加属性中是否存在自身的唯一标识,如果存在,则丢弃所述路由信息;如果不存在,则对所述路由信息执行本地处理;在判定所述路由信息中不携带附加属性时,对所述路由信息直接执行本地处理。
2、 根据权利要求1所述防止自治系统内路由环路的方法,其特征在于,所 述自身的唯一标识为路由身份标识Router ID和人工配置标识数值中的至少一 种。
3、 一种防止自治系统内路由环路的方法,其特征在于,该方法包括 在需要发送路由信息时,检测所述路由信息的发送对象类型; 在检测所述发送对象为内部边界网关协议IBGP邻居时,判断所述路由信息中是否携带有附加属性,如果有携带,则添力。自身的唯一标识到所述附加属 性中作为序列的最后一个值,并向所述IBGP邻居发送路由信息;如果不携带, 则创建附加属性,并添加自身的唯一标识作为所述附加属性的第一个值,并向 所述IBGP邻居发送路由信息;在检测所述发送对象为外部边界网关协议EBGP邻居时,判断所述路由信 息中是否携带有附加属性,如果有携带,则删除所述附加属性,并向所述EBGP 邻居发送路由信息;如果不携带,则直接向所述EBGP邻居发送路由信息。
4、 根据权利要求3所述防止自治系统内路由环路的方法,其特征在于,所 述自身的唯一标识为Router ID和人工配置标识数值中的至少一种。
5、 一种路由信息接收设备,其特征在于,包括 信息接收模块,用于接收路由信息;第一判断模块,用于判断所接收的路由信息中是否携带有附加属性,并得到判断结果;遍历模块,用于根据判断结果,在所接收的路由信息中携带有附加属性时, 遍历所述附加属性中是否存在所述路由信息接收设备自身的唯一标识,并得到 遍历结果;第一信息处理模块,用于根据所述第一判断模块的判断结果,以及所述遍 历模块的遍历结果,对所述路由信息执行丢弃或本地处理。
6、 一种路由信息发送设备,其特征在于,包括发送对象检测模块,用于在需要发送路由信息时,检测所述路由信息的发 送对象类型,并得到检测结果;第二判断模块,用于判断需要发送的路由信息中是否携带有附加属性,并得到判断结果;第二信息处理模块,用于根据所述发送对象检测模块的检测结果,以及所 述第二判断模块的判断结果,添加所述路由信息发送设备自身的唯一标识到所 述附加属性中作为序列的最后一个值,并发送所述路由信息;或者创建附加属 性,并添加所述路由信息发送设备自身的唯一标识作为所述附加属性的第一个 值,并发送所述路由信息;或者删除附加属性,并发送所述路由信息;或者直 接发送所述路由信息。
全文摘要
本发明公开了一种防止自治系统内路由环路的方法,包括网络设备判断所接收的路由信息中是否携带有附加属性;在判定路由信息中携带有附加属性时,遍历附加属性,判定附加属性中是否存在网络设备自身的唯一标识,如果存在,则丢弃该路由信息;如果不存在,则对该路由信息执行本地处理;在判定路由信息中不携带附加属性时,对该路由信息直接执行本地处理。本发明还公开了一种网络设备,可以有效防止自治系统内部的路由环路产生,实现方便简单,并大大降低了网络配置的复杂度和网络设备所承受的压力。
文档编号H04L12/56GK101425978SQ20081022793
公开日2009年5月6日 申请日期2008年12月2日 优先权日2008年12月2日
发明者刘显东 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1