专利名称:Bgp路由处理方法及装置的制作方法
技术领域:
本发明涉及一种路由处理技术,特别涉及一种BGP路由处理方法及装置。
背景技术:
边界网关协议(Border Gateway Protocol, BGP )是一种用于互联网自治 域系统(Autonomous System, AS )间的动态路由协议,它的主要作用是在 各自治系统之间交换网络可达性信息。BGP协议运行在传输控制协议 (Transmission Control Protocol, TCP )之上,支持无类别域间路由选择 (Classless Inter-Domain Routing, CIDR),并提供了丰富的路由策略,能 灵活的对路由进行过滤和选择。建立BGP连接的两个相邻实体被称为BGP对 等体,两个对等体可以是在一个AS内,也可分别在两个AS内实现两个AS之 间的对等互连。当两个交换BGP报文的相邻对等体位于同一个AS内时,它们 之间就是内部BGP邻居关系,即IBGP (Internal BGP)邻居关系;当它们位 于不同的AS内时,就是外部BGP邻居关系,即EBGP( Edge BGP )邻居关系。 BGP有四种报文类型,分别是初始化(Open)报文、更新(Update )报 文、通知(Notification)报文以及保持激活(Keepalive )报文。初始化报文 是TCP连接建立后发送的第 一个消息,它用于建立BGP对等体之间的连接关 系;更新报文用于在BGP对等体之间传递路由更新信息,它可以发布可达的 路由信息,同时还可以撤销一条或者多条不可达的路由信息;当BGP检测到 错误时,会向对等体发送通知报文,并且中止BGP连接;运行BGP协议的路 由器会周期性的向对等体发送保持激活报文,用于保证连接的有效性。BGP协议通过更新报文来通告可达路由信息和不可达的路由信息,更 新报文中包舍了一个可变长度的路由撤销(Withdrawn Routes)字段,它包含 了一条或多条不可达的路由信息。当进行可达路由通告或者有大量的路由需 要通告删除时,现有协议会按照更新报文到达的顺序,依次同等处理这些报 文。然而,现有这种BGP路由处理方法可能会使一些特定业务(如实时性 较强的语音业务、视频业务等)收敛速度较慢,从而导致业务中断或数据丢 失时间较长。例如,当连接两个AS的自治系统边界路由器(Autonomous System Border Router, ASBR )间的链路出现故障时,有大量的路由需要通 告删除,采用上述现有的BGP路由处理方法将导致一些实时性强的特定业 务收敛速度较慢,从而引起业务的中断或数据丟失。发明内容有鉴于此,本发明的主要目的在于提供一种BGP路由处理方法,可对特定 的路由进行优先处理,从而保证与特定路由相对应的业务的连续性和链路出现 故障时的快速切换。本发明的另 一 目的还在于提供一种BGP路由处理装置,可对特定的路由进 行优先处理,从而保证与特定路由相对应的业务的连续性和链路出现故障时的 快速切换。为达到上述目的,本发明的技术方案是这样实现的 本发明公开了 一种BGP路由处理方法,该方法包括以下步骤 为特定的路由配置优先级信息; 根据优先级信息对所述路由进行优先处理。 所述优先级信息封装于更新报文中,并通过更新报文向外通告。 所述根据优先级信息对所述路由进行优先处理之前,按照所述优先级信息 为所述路由排序。所述根据优先级信息对所述路由进行优先处理的步骤,具体为按照所述 优先级信息从高到低的顺序对所述路由进行优先处理,再处理不带优先级信息 的普通路由。
所述根据优先级信息对所述路由进行优先处理的步骤,包括根据优先级 信息对所述路由进行优先迭代,再迭代不带优先级信息的普通路由。所述根据优先级信息对所述路由进行优先处理的步骤,包括根据优先级 信息对所述路由进行优先安装,再安装不带优先级信息的普通路由。所述根据优先级信息对所述路由进行优先处理的步骤,包括根据优先级 信息对所述路由进行优先删除,再删除不带优先级信息的普通路由。所述根据优先级信息对所述路由进行优先处理的步骤,包括根据优先级 信息对所述路由进行优先通告,再通告不带优先级信息的普通路由。当接收方接收到至少两个邻居按照所述通告步骤通告的路由时,按照优先 调度策略处理所接收的路由队列。所述按照优先调度策略处理所接收的路由队列,具体包括为待处理的路 由队列分配一定权值,按照权值在不同队列之间进行轮询处理。所述权值是路由处理时间。所述权值也可以是路由处理数量。所述按照优先调度策略处理所接收的路由队列,具体还可包括优先处理 来自其中一个邻居通告的路由,直到按照优先级信息处理完所有带有优先级信息的路由才依次处理其它邻居通告的带有优先级信息的路由。 所述路由是与特定业务相对应,可根据业务需求来确定。 本发明还公开了一种BGP路由处理装置,包括 输出路由数据库,用于存放本地待通告的路由; 输入路由数据库,用于存放所接收的路由;配置模块,用于为所述输出路由数据库中存放的特定路由配置优先级信息;报文处理模块,用于按照优先级信息将所述两路由数据库中带有优先级 信息的路由优先封装在更新报文中向外通告;控制模块,用于控制所述配置模块以及报文处理模块的处理操作。 所述BGP路由处理装置还包括路由处理模块,所述模块用于按照优先 级信息对所述两路由数据库中带有优先级信息的路由进行排序,并由所述控 制模块进行控制。可见,本发明所提供的BGP路由处理方法和装置通过对特定的路由进 行优先处理操作,例如进行优先安装、迭代、通告和删除等,从而保证了与 特定路由对应的业务的连续性和链路出现故障时的快速切换。
图1为本发明实施例的BGP路由处理方法的流程图; 图2为本发明实施例的BGP路由处理方法中所使用的更新报文结构示 意图;图3为运用本发明实施例的BGP路由处理方法的网络场景示意图; 图4为运用本发明实施例的BGP路由处理方法通告路由时发送端的流 程图;图5为运用本发明实施例的BGP路由处理方法通告路由时接收端的流程图;图6为运用本发明实施例的BGP路由处理方法在域间链路出现故障时 通告删除不可达路由信息的流程图;图7为本发明实施例的BGP路由处理装置的结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明详细说明。如图1所示,本发明实施例所提供的BGP路由处理方法主要包括以下步骤 为特定的路由配置优先级信息;按照优先级信息从高到低的顺序对所述路由进 行优先处理,再处理不带优先级信息的普通路由。其中,所述路由与特定业务 相对应,根据具体业务需求来确定。所述对路由的处理步骤包括对路由进行通 告、安装、迭代和删除等操作。上述方法中所述的优先级信息是根据BGP协议扩展的一种路由优先级 (Route Priority)属性,所述路由优先级属性可以是一个字节的固定长度的字 段,最多可以表示256种优先级(0 255 ),数值越大,表示优先等级越高。属 性是BGP协议的一大特点,它表示了路由的一些特性,BGP路由的选路工作 都是通过属性比较来完成的,属性可以分为以下几类(1) 公认必遵所有BGP路由器都可以识别,而且必须存在于更新报文中。 如果缺少这种属性,路由信息就会出错。(2) 公认自选所有BGP路由器都可以识别,但不要求必须存在于更新报 文中。(3) 可选过渡在AS之间具有可传递性的属性。BGP路由器可以不支持 此属性,但它仍然会接收带有此属性的路由,并通告给其他对等体。(4) 可选非过渡如果BGP路由器不支持此属性,则相应的更新报文会 被忽略,而且不会通告给其它对等体。所述路由优先级属性是一种可选过渡的属性,因此,并不要求所有的路 由都要带上该优先级属性,而不带优先级属性的普通路由也可以直接默认为 优先级为0的路由。用户可以根据实际需求,按照一个共同的划分标准,将 需要优先处理的路由划分为不同的优先级。带有优先级属性的路由将优先封 装于更新报文中向外通告。如图2所示,所述更新报文包括撤消路由长度、撤 消路由、路径属性总长度、路径属性以及网络层可达性信息,其中所述路径属 性字段是可变长的,所述路由优先级属性是通过此字段来携带。下面结合具体网络场景来说明本发明实施例所提供的BGP路由处理方法 的具体应用过程。请参阅图3,这是一个包含有多个自治系统的网络,所述自 治系统分别标示为AS100、 AS200、 AS300、 AS400以及AS500。其中,自治 系统AS100通过边界路由器Rl与自治系统AS200的边界路由器R2相连,自 治系统AS300、 AS400及AS500分别通过边界路由器R5、 R6及R7与自治系 统AS200中的边界路由器R3、 R4及R2对应相连。请同时参阅图4,以自治系统AS100中的边界路由器R1为例,路由器R1 运用本发明BGP路由处理方法通告路由信息时的具体过程为 首先,在路由器Rl通告BGP路由之前,路由器Rl会根据用户的实际需 求,例如根据用户对带宽和/或时延的要求,给一些待通告的路由配置优先级信 息,并将这些路由按照优先级的高低在本地进行排序;当向对端路由器(如R2) 通告BGP路由时,它会先将这些已排序的、带有路由优先级属性的路由封装在 更新报文中通告出去,然后再通告那些没有路由优先级属性的普通路由。对端路由器R2的路由表中有两个路由列表, 一个是优先列表,用于存放 带有路由优先级属性的路由;另一个是普通列表,用于存放没有路由优先级属 性的路由。如图5所示,按照上述路由器R1的发送策略,路由器R2将会先接 收到带有路由优先级属性的更新报文,因此它会先处理这些报文,并将这些具 有优先级属性的路由信息按优先级高低顺序存放在优先列表中;然后再处理那 些没有路由优先级属性的更新报文,将对应路由信息存放在普通列表中。边界路由器可能会接收来自不同的BGP邻居的更新报文,例如,边界路由 器R2会同时接收来自边界路由器R1和R7的更新报文。在这种情况下,边界路由 器R2可以按照优先调度策略对通告的BGP路由进行安装、扩散、迭代或删除等 处理。所述优先调度策略包括(1 )给来自不同的BGP邻居的更新报文通告的待处理的路由队列分配一定 的权值。该权值可以是路由处理时间或者路由处理数量,按照权值在不同的路 由队列之间进行轮询处理。(2) 优先处理来自其中一个BGP邻居通告的路由,按照优先级高低,先处 理优先级高的,再处理优先级低的,直到处理完所有带有路由优先级属性的路 由,才依次处理其它BGP邻居通告的路由。(3) 根据实际需求,结合使用上述两种方式进行优先调度。例如,对部分 BGP邻居通告的路由采用(l)的方式轮询处理,另一部分BGP邻居通告的路由 则可采用(2)的方式逐列处理。依照上述优先调度策略,带有路由优先级属性的路由就会优先而且有序的 安装在路由表的优先列表中,这些优先处理完的路由会继续按照相同的策略向 外通告,例如路由器R2会将这些优先处理完的路由继续向路由器R3或R4通告。
再请同时参阅图3及图6,当连接两个自治系统边界路由器之间的链路失 效时,有大量的路由需要通告删除。以图3中的路由器R1和R2为例,当路由 器Rl与R2之间的链路失效时,路由器Rl与R2均会按照路由优先级高低顺 序将路由封装成更新报文通告出去,具体为先检查本地路由表的优先列表中 是否有路由,若有,则按照优先级的高低顺序依次将其装入更新报文通告出去; 通告完优先列表中的路由后,再将普通列表中的没有路由优先级属性的路由装 入更新报文通告出去。这样,优先级高的路由会被优先通告删除,并且可以优 先进行后续的路径切换等操作。最后请参阅图7,本发明实施例还提供了一种采用上述方法对BGP路 由进行处理的装置,该装置主要包括输出路由数据库,用于存放本地待通告的路由;输入路由数据库,用于存放所接收的路由,包括带有优先级信息的路由 和普通路由;配置模块,用于为所述输出路由数据库中存放的特定路由配置优先级信息;路由处理模块,用于按照优先级信息对所述带有优先级信息的路由进行排序,以及对两路由数据库中的路由进行安装、迭代和撤消等处理操作; 报文处理模块,用于将经路由处理模块处理的路由封装在更新报文中向外通告,或接收处理来自外部的更新报文,并对报文中的路由进行解析后发送至所述路由处理模块进行排序;控制模块,用于控制所述配置模块、路由处理模块以及报文处理模块的操作。可见,本发明所提供的BGP路由处理方法和装置通过为特定路由配置 优先级信息,并对所述路由进行优先处理,例如进行优先安装、迭代、通告 和删除等,从而保证了与特定路由对应的业务的连续性和链路出现故障时的 快速切换。以上只是对本发明的优选实施方式进行了描述,本领域的技术人员在本
发明技术的方案范围内,进行的通常变化和替换,都应包含在本发明的保护 范围内。
权利要求
1、一种BGP路由处理方法,其特征在于,该方法包括以下步骤为特定的路由配置优先级信息;根据优先级信息对所述路由进行优先处理。
2、 如权利要求1所述的BGP路由处理方法,其特征在于,所述优先级信 息封装于更新报文中,并通过更新报文向外通告。
3、 如权利要求1所述的BGP路由处理方法,其特征在于,所述根据优先 级信息对所述路由进行优先处理之前,按照所述优先级信息为所述路由排序。
4、 如权利要求1或3所述的BGP路由处理方法,其特征在于,所述根据 优先级信息对所述路由进行优先处理的步骤,具体为按照所述优先级信息从 高到低的顺序对所述路由进行优先处理,再处理不带优先级信息的普通路由。
5、 如权利要求4所述的BGP路由处理方法,其特征在于,所述根据优先 级信息对所述路由进行优先处理的步骤,包括根据优先级信息对所述路由进 行优先迭代,再迭代不带优先级信息的普通路由。
6、 如权利要求4所述的BGP路由处理方法,其特征在于,所述根据优先 级信息对所述路由进行优先处理的步骤,包括根据优先级信息对所述路由进 行优先安装,再安装不带优先级信息的普通路由。
7、 如权利要求4所述的BGP路由处理方法,其特征在于,所述根据优先 级信息对所述路由进行优先处理的步骤,包括根据优先级信息对所述路由进 行优先删除,再删除不带优先级信息的普通路由。
8、 如权利要求4所述的BGP路由处理方法,其特征在于,所述根据优先 级信息对所述路由进行优先处理的步骤,包括根据优先级信息对所述路由进 行优先通告,再通告不带优先级信息的普通路由。
9、 如权利要求8所述的BGP路由处理方法,其特征在于,当接收方收到 至少两个邻居按照所述通告步骤通告的路由时,按照优先调度策略处理所接收 的路由队列。
10、 如权利要求9所述的BGP路由处理方法,其特征在于,所述按照优先调度策略处理所接收的路由队列,具体包括为待处理的路由队列分配一定权 值,按照权值在不同路由队列之间进行轮询处理。
11、 如权利要求10所述的BGP路由处理方法,其特征在于,所述权值是 3各由处理时间。
12、 如权利要求IO所述的BGP路由处理方法,其特征在于,所述权值是 路由处理数量。
13、 如权利要求9所述的BGP路由处理方法,其特征在于,所述按照优先 调度策略处理所接收的路由队列,具体包括优先处理来自其中一个邻居通告 的路由,直到按照优先级信息处理完所有带有优先级信息的路由才依次处理其 它邻居通告的带有优先级信息的路由。
14、 如权利要求1所述的BGP路由处理方法,其特征在于,所述路由是与 特定业务相对应,可根据业务需求来确定。
15、 一种BGP路由处理装置,其特征在于,包括 输出路由数据库,用于存放本地待通告的路由; 输入路由数据库,用于存放所接收的路由;配置模块,用于为所述输出路由数据库中存放的特定路由配置优先级信自.报文处理模块,用于按照优先级信息将所述两路由数据库中带有优先级信息的路由优先封装在更新报文中向外通告;控制模块,用于控制所述配置模块以及报文处理模块的处理操作。
16、 如权利要求15所述的BGP路由处理装置,其特征在于,还包括路由 处理模块,所述模块用于按照优先级信息对所述两路由数据库中带有优先级信 息的路由进行排序,并由所述控制模块进行控制。
全文摘要
本发明公开了一种BGP路由处理方法,包括以下步骤为特定的路由配置优先级信息;根据所述优先级信息对所述路由进行优先处理。本发明还公开了一种BGP路由处理装置,包括输出路由数据库及输入路由数据库,用于存放路由;配置模块,用于为输出路由数据库中存放的特定路由配置优先级信息;报文处理模块,用于将按照优先级信息将所述两路由数据库中带有优先级信息的路由优先封装在更新报文中向外通告;控制模块,用于控制所述配置模块以及报文处理模块的处理操作。可见,本发明所提供的方法和装置通过对特定的路由进行优先处理,从而保证了与特定路由对应的业务的连续性和链路出现故障时的快速切换。
文档编号H04L12/56GK101155118SQ20061006288
公开日2008年4月2日 申请日期2006年9月27日 优先权日2006年9月27日
发明者鉴 李, 瑾 黄 申请人:华为技术有限公司