路由处理方法及路由转发设备的制作方法

文档序号:7860175阅读:550来源:国知局
专利名称:路由处理方法及路由转发设备的制作方法
技术领域
本发明涉及IP (Internet Protocol,因特网协议)路由技术领域,特别涉及一种路由处理方法及路由转发设备。
背景技术
BGP (Border Gateway Protocol,边界网关协议)是一种既可以用于不同AS(Autonomous System,自治系统)之间,又可以用于同一 AS内部的动态路由协议。当BGP运行于同一 AS内部时,被称为IBGP (Internal BGP);当BGP运行于不同AS之间时,称为EBGP (External BGP)。其中,AS是拥有同一选路策略,在同一技术管理部门下运行的一组
路由器。
BGP定义了以下5种消息类型> Open (初始)=TCP连接建立后发送的第一个消息,用于在BGP对等体(发送BGP消息的路由器称为BGP发言者(BGP Speaker),相互交换消息的BGP发言者之间互称对等体(Peer))之间建立BGP会话,即,建立BGP对等体之间的连接关系。> Update (更新)用于在BGP对等体之间交换路由信息。一条Update消息可以发布一类具有相同路径属性的多条可达路由,也可以同时撤销多条不可达路由。其中,只带路由前缀的Update就是撤销(Withdraw)报文。> Keepalive (存活或保活)BGP周期性地向对等体发送Keepalive消息,以保持BGP会话的有效性。> Route-refresh (路由刷新):用来要求对等体重新发送指定地址族的路由信息。>Notification(通知):当BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP会话会立即中断。BGP当前使用的版本是BGP-4,BGP_4只能管理IPv4的路由信息,对于使用其它网络层协议(如IPv6等)的应用,在跨自治系统传播时就受到一定限制。为了提供对多种网络层协议的支持,IETF (Internet Engineering Task Force,互联网工程任务组)对BGP-4进行了扩展,形成 MP-BGP (Multiprotocol Border Gateway Protocol,多协议边界网关协议)。其中,针对IPv6地址族的BGP扩展,称为IPv6BGP。在BGP-4和IPv6BGP中,peer keep-al 1-routes (对等体保存所有路由)命令用来将从指定的对等体/对等体组接收到的所有的原始的路由更新信息保存在本地路由器,不管这些路由更新信息是否通过了路由策略的过滤。该命令可以用于实现BGP会话的软复位,具体的,如果本地路由器和对等体中至少一个不支持路由刷新(Route-refresh)功能,那么,就可以通过配置本命令将从对等体/对等体组接收的所有原始路由更新信息保存在本地,当路由策略发生改变后,对保存在本地的所有路由使用新的路由策略重新进行过滤,从而实现在不中断BGP会话的情况下,对BGP路由表进行更新,并应用新的路由策略。例如,路由器A不支持路由刷新功能,贝U其对等体路由器B在本地配置peer keep-al 1-routes命令以保存所有来自路由器A的原始路由信息,这样,路由器B在接收到路由器A发来的路由信息后,会在本地保存一份副本。现有技术中,peer keep-all-routes命令是本地路由器针对对等体发送的路由在本地保存最原始的一份数据,后续,当本地路由器的入策略发生改变时,本地路由器不会再向该对等体发送Route-refresh报文以请求该对等体重新发送路由信息,而直接使用本地保存的路由信息进行过滤即可。这样,通过使用peer keep-al 1-routes命令可以减少对端的对等体(也称为邻居)的路由信息(即Update报文)的发送。但是,当本地路由器的出策略或协议引入(引入其他路由协议发现的路由)发生改变而触发路由更新时,本地路由器仍然需要将本地所有的路由信息及其路由属性经过新的出策略过滤后,重新发送给对端的对等体,从而占用了较大的带宽。

发明内容
有鉴于此,本发明提供了一种路由处理方法及路由转发设备,以至少解决现有技术中,当本地路由器的出策略或协议引入发生改变而触发路由更新时,本地路由器仍然需 要将本地所有的路由信息及其路由属性经过新的出策略过滤后,重新发送给对端的对等体,占用较大带宽的问题。本发明的技术方案如下一方面,提供了一种应用于BGP中的路由处理方法,包括在需要更新自身发布的路由信息时,第一路由转发设备比较本地保存的第一路由信息和第二路由信息,其中,第一路由信息是已经发布给BGP对等体即第二路由转发设备的路由信息,第二路由信息是要更新到的路由信息;第一路由转发设备根据比较结果,指示第二路由转发设备更新本地保存的第一路由信息中与第二路由信息的不同之处。另一方面,还提供了一种应用于BGP中的路由转发设备,包括比较模块,用于在需要更新本路由转发设备发布的路由信息时,比较本地保存的第一路由信息和第二路由信息,其中,第一路由信息是已经发布给本路由转发设备的BGP对等体即第二路由转发设备的路由信息,第二路由信息是要更新到的路由信息;发送模块,用于根据比较模块的比较结果,指示第二路由转发设备更新本地保存的第一路由信息中与第二路由信息的不同之处。本发明的以上技术方案,本地路由转发设备(可以称为第一路由转发设备)中保存有之前已经发布的路由信息(称为第一路由信息)以及因出策略或协议引入发生改变而触发路由(即要发布的路由)更新时需要更新为的路由信息(称为第二路由信息),第一路由转发设备的BGP对等体(称为第二路由转发设备,可以是一个或多个路由转发设备)本地保存有第一路由信息,第一路由信息在要进行路由更新之前,首先比较本地保存的第一路由信息和第二路由信息,再根据比较结果来指示第二路由转发设备更新本地保存的第一路由信息中与所述第二路由信息的不同之处。由于第二路由转发设备在本地已经保存有第一路由信息,这样,第一路由转发设备可以仅指示第二路由转发设备更新第一路由信息与第二路由信息的不同之处,即可使得第二路由转发设备将本地保存的第一路由信息更新为第二路由信息,从而第一路由转发设备不需要将全部的第二路由信息再发送给所有的对等体,达到了减少报文的发送,减少带宽的占用的目的。


图I是根据本发明的实施例一的路由处理方法的流程图;图2是根据本发明的实施例二的路由处理方法的具体处理流程图;图3是现有技术的携带有ORF信息的route-refresh报文的格式示意图;图4是现有技术的携带有ORF信息的route-refresh报文中ORF entry字段的格式示意图;图5是根据本发明的实施例二的Modify报文中的ORF entry字段的格式示意图;图6是根据本发明的实施例三的路由转发设备的结构示意图。
具体实施例方式为了解决现有技术中,当本地路由器的出策略或协议引入(引入其他路由协议发 现的路由)发生改变而触发路由更新时,本地路由器仍然需要将本地所有的路由信息及其路由属性经过新的出策略过滤后,重新发送给对端的对等体,占用较大带宽的问题,本发明以下实施例提供了一种路由处理方法以及应用该方法的路由转发设备。本发明的以下实施例中,本地路由转发设备(可以称为第一路由转发设备)中保存有之前已经发布的路由信息(称为第一路由信息)以及因出策略或协议引入发生改变而触发路由(即要发布的路由)更新时需要更新为的路由信息(称为第二路由信息),第一路由转发设备的BGP对等体(称为第二路由转发设备,可以是一个或多个路由转发设备)本地保存有第一路由信息,第一路由转发设备在要进行路由更新之前,首先比较本地保存的第一路由信息和第二路由信息,再根据比较结果来指示第二路由转发设备更新本地保存的第一路由信息中与所述第二路由信息的不同之处,从而相同的部分就不需要发送给BGP对等体了,因此,本发明能够有效减少需要发送的报文的数量或长度,减少了需要占用的带宽。实施例一图I是根据本发明的实施例一的路由处理方法的处理流程图,本方法可以应用于BGP中,包括BGP-4和IPv6BGP。本方法可以由支持BGP的网络中的任意一个路由转发设备(以下称为第一路由转发设备)来执行,该路由转发设备可以是路由器等设备,本发明对此不做限定。如图I所示,该方法包括以下步骤步骤S102,在需要更新自身发布的路由信息时,第一路由转发设备比较本地保存的第一路由信息和第二路由信息,其中,第一路由信息是已经发布给BGP对等体即第二路由转发设备的路由信息,第二路由信息是要更新到的路由信息;例如,在第一路由转发设备的出策略或者协议引入发生了改变而需要更新发布路由信息时,第一路由转发设备比较本地保存的之前已经发布了的路由信息即第一路由信息以及此次需要更新为的路由信息即第二路由信息。显然,第一路由转发设备需要在本地保存第一路由信息以及第二路由信息,并且,第一路由信息是已经经过本地的出策略过滤后的路由信息,第二路由信息也是已经经过本地当前的出策略(若是出策略发生改变,则当前的出策略即为改变后的新出策略)过滤后的路由信息。第一路由信息和第二路由信息中可以包含有至少一个路由。由于一个路由具有路由前缀和路由属性,因此,比较第一路由信息和第二路由信息时,可以比较两者包含的路由的前缀和属性值,从而判断两者的相同和不同之处。其中,路由前缀是路由的IP地址的前缀。例如,路由的路由前缀可以是128. 97. O. 0/16。路由属性是跟随路由一起发送出去的一组参数,它对特定的路由进行了进一步的描述,使得路由接收者能够根据路由属性值对路由进行过滤和选择。路由属性可以分为以下四类(I)公认必须遵循(Well-known mandatory):所有BGP路由器都必须能够识别这种属性,且必须存在于Update消息中。如果缺少这种属性,路由信息就会出错。(2)公认可选(Well-known discretionary):所有BGP路由器都可以识别,但不要求必须存在于Update消息中,可以根据具体情况来选择。(3)可选过渡(Optional transitive):在AS之间具有可传递性的属性。BGP路由器可以不支持此属性,但它仍然会接收带有此属性的路由,并通告给其他对等体。(4)可选非过渡(Optional non-transitive):如果BGP路由器不支持此属性,该 属性被忽略,且不会通告给其他对等体。几种主要的路由属性包括源(ORIGIN)属性、AS路径(AS_PATH)属性、下一跳(ΝΕΧΤ_Η0Ρ)属性、MED (MULTI_EXIT_DISC)属性、本地优先(L0CAL_PREF)属性和团体(COMMUNITY)属性。步骤S104,第一路由转发设备根据步骤S102中的比较结果,指示第二路由转发设备更新本地保存的第一路由信息中与第二路由信息的不同之处。本发明实施例中,第二路由转发设备在本地需要已经保存有第一路由转发设备之前已经发布的路由信息即第一路由信息,这样,第一路由转发设备可以仅指示第二路由转发设备更新第一路由信息与第二路由信息的不同之处,即可使得第二路由转发设备将本地保存的第一路由信息更新为第二路由信息,从而第一路由转发设备不需要将全部的第二路由信息再发送给所有的对等体,达到了减少报文的发送,减少带宽的占用的目的。尤其是在对等体的数量较多,路由属性值较长的情况下,效果更加明显。实施例二以下对实施例一的方法进行详细的描述,如图2所示,具体处理流程包括以下步骤 S202 S206 步骤S202,第一路由转发设备保存之前已经经过出策略过滤并发布给BGP对等体(统称为第二路由转发设备)的路由信息即第一路由信息(等同于第二路由转发设备上配置peer keep-al 1-routes命令在本地保存的从第一路由转发设备接收到的原始路由信息),记为Sendl,Sendl中可以包含有一个或多个路由(包含有路由前缀和属性值),当本地的出策略或者协议引入发生改变而需要更新发布的路由信息时,保存要更新到的经过当前出策略(若是出策略发生了改变,则当前出策略即为改变后的新出策略)过滤后的路由信息即第二路由信息,记为Send2, Send2中可以包含有一个或多个路由;第二路由转发设备上通过配置对第一路由转发设备的peer keep-al 1-routes命令,在本地保存了第一路由转发设备已经发布的第一路由信息Sendl。步骤S204,第一路由转发设备比较Sendl与Send2中的各个路由;上述步骤S202 S204对应于实施例一中的步骤S102。步骤S206,第一路由转发设备根据以下4种情况的比较结果,针对不同的情况发送不同的报文以指示第二路由转发设备更新第二路由转发设备本地保存的Sendl中与Send2不同的地方情况I :若Sendl中的I个或多个路由与Send2相同,S卩,这些路由中的每一个路由与Send2中的一个路由的路由前缀和属性值均相同,则第一路由转发设备不处理这些路由,即,不再向第二路由转发设备发布这些相同的路由;也就是说,若Sendl中的某一个路由(可以称为第一路由)与Send2中的某一个路由的路由前缀和属性值均相同(此时这两个路由相同),则第一路由转发设备不再向第二路由转发设备发布该第一路由。第二路由转发设备中仍然会保留本地保存的Sendl中的这些相同的路由。情况2 :若Sendl与Send2的路由的前缀不同,且Sendl中包含有Send2中不存在的路由前缀(即,对于Sendl中的I个或多个路由的前缀,Send2中的路由不具有这些前缀),则第一路由转发设备向第二路由转发设备发送撤销即Withdraw报文(即仅包含前缀和掩码的Update报文),指示第二路由转发设备从本地保存的Sendl中撤销Send2中不存在 的路由如缀所对应的路由;也就是说,Sendl中的某一个路由(可以称为第_■路由)的路由ill缀在Send2中的路由中不存在,则第一路由转发设备向第二路由转发设备发送Withdraw报文,指示第二路由转发设备从本地保存的Sendl中撤销该第二路由。第二路由转发设备收到此Withdraw报文后,从本地保存的Sendl中撤销与该报文中携带的前缀相匹配的路由。情况3 :若Sendl与Send2的路由前缀不同,且Send2中包含有Sendl中不存在的路由前缀(即,对于Send2中的I个或多个路由的前缀,Sendl中的路由不具有这些前缀),则第一路由转发设备向第二路由转发设备发送更新即Update报文(包含有这些Sendl中不存在的路由前缀及对应的属性值),指示第二路由转发设备在本地保存的Sendl中添加Sendl中不存在的路由前缀所对应的路由;也就是说,Send2中的某一个路由(可以称为第三路由)的路由前缀在Sendl中的路由中不存在,则第一路由转发设备向第二路由转发设备发送Update报文,指示第二路由转发设备从本地保存的Sendl中添加该第三路由。第二路由转发设备收到此Update报文后,在本地保存的Sendl中增加该报文中携带的路由前缀及对应的属性值。情况4 :若Sendl中的I个或多个路由与Send2中的路由前缀相同但属性值不同,即,这些路由中的每一个路由与Send2中的一个路由的路由前缀相同但属性值不同,则第一路由转发设备向第二路由转发设备发送修改即Modify报文,指示第二路由转发设备在本地保存的Sendl中修改这些路由的属性值。也就是说,若Sendl中的某一个路由(可以称为第四路由)与Send2中的某一个路由的路由前缀相同但属性值不同,则第一路由转发设备向第二路由转发设备发送Modify报文,指示第二路由转发设备在本地保存的Sendl中修改该第四路由的属性值。第二路由转发设备收到此Modify报文后,在本地保存的Sendl中修改与该报文中携带的前缀相对应的属性值即可。具体的,在实际实施过程中,可以利用现有的携带有ORF信息的路由刷新即Route-refresh报文来实现Modify报文。ORF是BGP协议中的一种重要功能,ORF是Outbound Route Filters的缩写,是出栈路由过滤(或出方向路由过滤)的意思,它所实现的主要功能是本地路由器主动将本地的入口路由策略(或输入路由策略)通过携带有ORF信息的Route-refresh报文推给自己的BGP对等体,该对等体将其作为本地的输出路由策略使用。当该对等体需要向本地路由器发送Update报文时,通过对等体本地的路由策略(即对等体本地的出策略)后还需要按照该输出路由策略进行过滤,只有通过ORF的路由信息才会发给本地路由器,以减少BGP对等体之间的Update报文的交互,节省网络资源。携带有ORF信息的Route-refresh报文的格式如图3所示,下面对该报文中的各个字段进行简要介绍(具体可参见RFC5291)AFI (Address Family Identifier,地址族字段)和 SAFI (Subsequent AddressFamily Identifier,子地址族字段),用于指定报文中携带的ORF信息是针对哪个地址族而设置的;Reserved,为保留字段;ffhen-to-refresh (何时刷新)字段,用于指定何时发送Update报文,如果该字段的内容是DEFER (0x02,延迟),表示仅仅解析处理完报文中的ORF表项,不进行路由的过滤和(重新)发布;如果该字段的内容是IMMEDIATE (0x01,立即),表示在解析处理完该报文中 的所有ORF表项后,立刻进行路由的过滤和(重新)发布;如果从邻居建立或收到本字段内容是DEFER的携带有ORF信息的Route-refresh报文开始计时,超过某一时间段还未接收到本字段内容是頂MEDIATE的携带有ORF信息的Route-refresh报文,则主动按照已接收到的ORF表项进行路由的过滤和(重新)发布;ORF type (类型)字段,用于说明后续携带的ORF信息(B卩I个或多个ORF表项)是根据何种类型的策略(策略类型有ACL (Access Control List,访问控制列表)、地址前缀(Address Prefix)、AS_Path (自治系统号路径)、团体属性(Community)和扩展团体属性(Ex-Community)等)产生的;Length of ORF entries,为后续的 ORF entry 字段的总长度;ORF entry (表项)字段,用于携带详细的ORF过滤规则,根据不同类型的策略,本字段填写的内容也不相同,本字段的格式如图4所示,其中 Action :对等体控制处理ORF表项的操作类型,包括ADD、REMOVE、REMOVE-ALL操作,ADD表示添加该ORF表项到本地0RF,REMOVE表示删除ORF表项,REM0VE-ALL表示删除ORF所有表项,ORF entry字段中的Action是2bit位的字段,其中,协议中已经定义了Action置为00时表示ADD,置为01时表示REMOVE,置为10时表示REM0VE-ALL ;Match 比对ORF表项,允许或者禁止对等体发送路由更新;Reserved :为保留字段,当发送和忽略接收时置为O ;Type specific part (指定类型部分)该字段的长度是可变的,通常在该字段中可以携带Prefix length (路由前缀长度)和Prefix (路由前缀字段)等。本发明实施例中,基于现有的携带有ORF信息的Route-refresh报文所定义的Modify报文,不是用于进行策略过滤前缀,而是用于通过匹配路由前缀来修改匹配到的路由前缀所对应的属性值。为了能够使得携带有ORF信息的Route-refresh报文表示出上述含义,本发明实施例可以将用来说明根据何种类型的属性进行过滤的ORF type字段定义为当ORF type字段置为第一值,第一值用于表示按照路由前缀匹配且修改匹配的路由前缀的属性值,该第一值可以使用81,显然,根据实际需求,也可以使用其他的值,只要是现有未使用的值即可。另外,本发明实施例中的Modify报文中,如图5所示,在ORF entry字段中的Typespecific part 字段中增加了 3 个字段ORF attribute type 字段、ORF attribute (属性)length (长度)字段和ORF attribute字段,其中,ORFattribute字段用于携带需要修改到的属性值(value),ORF attribute字段的格式同BGP Update报文中的Path attributes字段,ORF attribute length 字段表不 ORF attribute 字段的长度,ORF attribute type 字段表示路由属性的类型,即,ORF attribute字段中填充的属性值所属的路由属性类型,例如,AS_PATH (AS路径)属性、ORIGIN (源)属性、ΝΕΧΤ_Η0Ρ (下一跳)属性、MED属性和LOCALPREF (本地优先)属性等。并且,定义Action置为第二值(例如可以为11)时表示Modify,进行修改操作。对于需要修改到的属性值为空的情况,即,上述情况4中Sendl中的一个路由与Send2中的一个路由的前缀相同但属性值不同,且Send2中的该路由的属性值为空,使用空属性值,删除对应前缀的属性值。上述步骤S206对应于实施例一中的步骤S 104。
在实际实施时,类似于ORF能力,可以使用peer keep-send命令来使能第一路由转发设备具有能够执行上述方法的新能力(为了方便描述,可以称为通过ORF修改路由信息的能力),通过配置peer keep-send命令,在第一路由转发设备本地保存一份经过出策略过滤后,发送给对等体第二路由转发设备的路由及属性的原始数据(等同于第二路由转发设备使用peerkeep-alΙ-routes命令保存的数据),从而在第二次因出策略或协议引入改变触发路由更新时,只需比较此次需要更新到的路由信息与前一次保存的路由信息,前缀不相同的发送Update或WithDraw报文以指示第二路由转发设备增加或撤销对应的路由;前缀相同但属性值不同的,发送Modify报文,以指示第二路由转发设备对与该报文中携带的前缀相匹配的属性值做出修改的操作。目的在于只指示第二路由转发设备自行对不同的地方进行修改,减少报文的发送,减少带宽的占用。显然,本发明实施例的方法能够实施的前提是第二路由转发设备本地保存了第一路由转发设备发布的原始路由信息。可以通过在第二路由转发设备上配置对第一路由转发设备的peer keep-al 1-routes命令来实现对第一路由转发设备发布的原始路由信息的保存。本发明以上实施例的方法,利用了现有的BGP特性,实现时能够更加平滑的升级,不支持则忽略不处理。BGP通过配置peer keep-send命令使能第一路由转发设备具有上述的新能力之后,以及在第一路由转发设备能够执行上述的方法之前,第一路由转发设备与第二路由转发设备需要协商该新能力,当然,该新能力的使用同时需要Route-refresh能力的支持。通过Open报文协商该新能力时,Open报文中的ORF type字段的值改为129,表示本端BGP能够处理该新能力。收发类型的配置可以为如果本端配置有peerkeep-all-routes命令,则置I表示本端具有接收能力,如果未配置peer keep-al 1-routes命令,则置2表示本端只有发送能力。由于目前BGP配置了 peer keep-all-routes命令后,会立即向对等体发送普通的Route-refresh报文,进而保存从对等体接收的原始路由信息。而当BGP后续配置peerkeep-all-routes命令时,为了让对等体感知本端能够处理该新能力,则本端对对等体配置peer keep-all-routes命令时,可以将要发送给对等体的Route-refresh报文中的I字节的保留位置为129,表示本端BGP能够处理该新能力。对等体收到该Route-refresh报文后,下一次发送更新即可使用该新能力。实施例三针对实施例一和二中的方法,本发明实施例提供了一种路由转发设备,该路由转发设备能够支持BGP,可以为路由器等设备,本发明对此不做限定。如图6所示,该路由转发设备中包括以下模块比较模块10和发送模块20,其中比较模块10用于在需要更新本路由转发设备发布的路由信息时,比较本地保存的第一路由信息和第二路由信息,其中,第一路由信息是已经发布给本路由转发设备的BGP对等体即第二路由转发设备的路由信息,第二路由信息是要更新到的路由信息;发送模块20用于根据比较模块10的比较结果,指示第二路由转发设备更新第二 路由转发设备本地保存的第一路由信息中与第二路由信息的不同之处。其中,发送模块20在根据比较模块10的比较结果,指示第二路由转发设备更新第二路由转发设备本地保存的第一路由信息中与第二路由信息的不同之处时,具体按照以下几种情况进行情况I :在第一路由信息中的某一个路由与第二路由信息中的某一个路由的路由前缀和属性值均相同时,不再向第二路由转发设备发送该相同的路由。情况2 :在第一路由信息与第二路由信息的路由前缀不同时,在第一路由信息中包含有第二路由信息中不存在的路由前缀的情况下,向第二路由转发设备发送撤销Withdraw报文,指示第二路由转发设备从本地保存的第一路由信息中撤销第二路由信息中不存在的路由前缀所对应的路由。情况3 :在第一路由信息与第二路由信息的路由前缀不同时,在第二路由信息中包含有第一路由信息中不存在的路由前缀的情况下,向第二路由转发设备发送更新Update报文,指示第二路由转发设备在本地保存的第一路由信息中添加第一路由信息中不存在的路由前缀所对应的路由。情况4 :在第一路由信息中的某一个路由与第二路由信息中的某一个路由的路由前缀相同但属性值不同时,向第二路由转发设备发送修改Modify报文,指示第二路由转发设备在第一路由信息中修改该路由的属性值。其中,Modify报文为携带有ORF信息的Route-refresh报文,其中,该Route-refresh报文中的ORF type字段置为第一值时,表示按照路由前缀匹配且修改匹配的路由前缀的属性值,并且,在该Route-refresh报文中的ORFentry字段中的Typespecific part 字段中,增加了 3个字段0RF attribute type 字段、ORF attribute length字段和ORF attribute字段,其中,ORF attribute type字段表示表示路由属性的类型,ORF attribute字段用于携带需要修改到的属性值,ORF attribute length字段填充为ORFattribute字段的长度,ORF entry字段中的Action字段置为第二值时表示进行修改操作。本发明以上的方法和设备在IPv6技术和L3VPN技术中,路由的RT(Route Target,路由目标)属性、AS_PATH属性、BGP4+路由下一跳属性的值比较大,以及BGP路由需要单独组包发送的场景都可以应用。综上,本发明以上实施例可以达到以下技术效果本地路由转发设备(可以称为第一路由转发设备)中保存有之前已经发布的路由信息(称为第一路由信息)以及因出策略或协议引入发生改变而触发路由(即要发布的路由)更新时需要更新为的路由信息(称为第二路由信息),第一路由转发设备的BGP对等体(称为第二路由转发设备,可以是一个或多个路由转发设备)本地保存有第一路由信息,第一路由信息在要进行路由更新之前,首先比较本地保存的第一路由信息和第二路由信息,再根据比较结果来指示第二路由转发设备更新本地保存的第一路由信息中与所述第二路由信息的不同之处。由于第二路由转发设备在本地已经保存有第一路由信息,这样,第一路由转发设备可以仅指示第二路由转发设备更新第一路由信息与第二路由信息的不同之处, 由转发设备不需要将全部的第二路由信息再发送给所有的对等体,达到了减少报文的发送,减少带宽的占用的目的。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种路由处理方法,应用于边界网关协议BGP中,其特征在于,包括 在需要更新自身发布的路由信息时,第一路由转发设备比较本地保存的第一路由信息和第二路由信息,其中,所述第一路由信息是已经发布给BGP对等体即第二路由转发设备的路由信息,所述第二路由信息是要更新到的路由信息; 所述第一路由转发设备根据比较结果,指示所述第二路由转发设备更新本地保存的第一路由信息中与所述第二路由信息的不同之处。
2.根据权利要求I所述的方法,其特征在于,所述第一路由转发设备根据比较结果,指示所述第二路由转发设备更新本地保存的第一路由信息中与所述第二路由信息的不同之处包括 若所述第一路由信息中的一个路由与所述第二路由信息中的一个路由的路由前缀和属性值均相同,则所述第一路由转发设备不再向所述第二路由转发设备发送该相同的路由;和/或 若所述第一路由信息与所述第二路由信息的路由前缀不同,则所述第一路由转发设备在所述第一路由信息中包含有所述第二路由信息中不存在的路由前缀的情况下,向所述第二路由转发设备发送撤销Withdraw报文,指示所述第二路由转发设备从本地保存的第一路由信息中撤销所述第二路由信息中不存在的路由前缀所对应的路由;和/或 若所述第一路由信息与所述第二路由信息的路由前缀不同,则所述第一路由转发设备在所述第二路由信息中包含有所述第一路由信息中不存在的路由前缀的情况下,向所述第二路由转发设备发送更新Update报文,指示所述第二路由转发设备在本地保存的第一路由信息中添加所述第一路由信息中不存在的路由前缀所对应的路由;和/或 若所述第一路由信息中的一个路由与所述第二路由信息中的一个路由的路由前缀相同但属性值不同,则所述第一路由转发设备向所述第二路由转发设备发送修改Modify报文,指示所述第二路由转发设备在本地保存的所述第一路由信息中修改该路由的属性值。
3.根据权利要求2所述的方法,其特征在于,所述Modify报文为携带有出栈路由过滤ORF信息的路由刷新Route-refresh报文,其中,该Route-refresh报文中的ORF类型type字段置为第一值,所述第一值用于表示按照路由前缀匹配且修改匹配的路由前缀的属性值。
4.根据权利要求3所述的方法,其特征在于,在该Route-refresh报文中的ORF表项entry字段中的指定类型部分Type specific part字段中,增加了 ORFattribute类型type字段、ORF属性attribute长度length字段和ORF attribute字段,其中,所述ORF attribute type字段表示路由属性的类型,所述ORF属性长度字段表示所述ORFattribute字段的长度,所述ORF attribute字段表示需要修改到的属性值,并且,ORFentry字段中的操作Action字段置为第二值,所述第二值用于表示进行修改操作。
5.根据权利要求I所述的方法,其特征在于,所述第二路由转发设备上通过配置对第一路由转发设备的对等体保存所有路由peer keep-all_routes命令,在本地保存有所述第一路由转发设备已经发布的所述第一路由信息。
6.一种路由转发设备,应用于边界网关协议BGP中,其特征在于,包括 比较模块,用于在需要更新本路由转发设备发布的路由信息时,比较本地保存的第一路由信息和第二路由信息,其中,所述第一路由信息是已经发布给本路由转发设备的BGP对等体即第二路由转发设备的路由信息,所述第二路由信息是要更新到的路由信息; 发送模块,用于根据所述比较模块的比较结果,指示所述第二路由转发设备更新本地保存的第一路由信息中与所述第二路由信息的不同之处。
7.根据权利要求6所述的装置,其特征在于,所述发送模块具体用于 在所述第一路由信息中的一个路由与所述第二路由信息中的一个路由的路由前缀和属性值均相同时,不再向所述第二路由转发设备发送该相同的路由;和/或 在所述第一路由信息与所述第二路由信息的路由前缀不同时,在所述第一路由信息中包含有所述第二路由信息中不存在的路由前缀的情况下,向所述第二路由转发设备发送撤销Withdraw报文,指示所述第二路由转发设备从本地保存的第一路由信息中撤销所述第_■路由信息中不存在的路由如缀所对应的路由;和/或 在所述第一路由信息与所述第二路由信息的路由前缀不同时,在所述第二路由信息中包含有所述第一路由信息中不存在的路由前缀的情况下,向所述第二路由转发设备发送更新Update报文,指示所述第二路由转发设备在本地保存的第一路由信息中添加所述第一路由彳目息中不存在的路由如缀所对应的路由;和/或 在所述第一路由信息中的一个路由与所述第二路由信息中的一个路由的路由前缀相同但属性值不同时,向所述第二路由转发设备发送修改Modify报文,指示所述第二路由转发设备在本地保存的所述第一路由信息中修改该路由的属性值。
8.根据权利要求7所述的装置,其特征在于,所述Modify报文为携带有出栈路由过滤ORF信息的路由刷新Route-refresh报文,其中,该Route-refresh报文中的ORF类型type字段置为第一值,所述第一值用于表示按照路由前缀匹配且修改匹配的路由前缀的属性值。
9.根据权利要求8所述的装置,其特征在于,在该Route-refresh报文中的ORF表项entry字段中的指定类型部分Type specific part字段中,增加了 ORFattribute类型type字段、ORF属性attribute长度length字段和ORF attribute字段,其中,所述ORF attribute type字段表示路由属性的类型,所述ORF属性长度字段表示所述ORFattribute字段的长度,所述ORF attribute字段表示需要修改到的属性值,并且,ORFentry字段中的操作Action字段置为第二值,所述第二值用于表示进行修改操作。
10.根据权利要求6所述的装置,其特征在于,所述第二路由转发设备上通过配置对第一路由转发设备的对等体保存所有路由peer keep-all_routes命令,在本地保存有所述第一路由转发设备已经发布的所述第一路由信息。
全文摘要
本发明公开了一种路由处理方法及路由转发设备,其中,该方法包括在需要更新自身发布的路由信息时,第一路由转发设备比较本地保存的第一路由信息和第二路由信息,其中,第一路由信息是已经发布给BGP对等体即第二路由转发设备的路由信息,第二路由信息是要更新到的路由信息;第一路由转发设备根据比较结果,指示第二路由转发设备更新本地保存的第一路由信息中与第二路由信息的不同之处。本发明中,第一路由转发设备在本地出策略或协议引入发生改变而触发路由更新时,不需要将全部的要更新为的路由信息发送给所有的对等体,达到了减少报文的发送,减少带宽的占用的目的。
文档编号H04L12/56GK102833172SQ20121033545
公开日2012年12月19日 申请日期2012年9月12日 优先权日2012年9月12日
发明者王伟, 樊超 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1