《路由处理方法及路由转发设备.pdf》由会员分享,可在线阅读,更多相关《路由处理方法及路由转发设备.pdf(15页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102833172 A (43)申请公布日 2012.12.19 C N 1 0 2 8 3 3 1 7 2 A *CN102833172A* (21)申请号 201210335453.0 (22)申请日 2012.09.12 H04L 12/56(2006.01) (71)申请人杭州华三通信技术有限公司 地址 310053 浙江省杭州市高新技术产业开 发区之江科技工业园六和路310号华 为杭州生产基地 (72)发明人王伟 樊超 (74)专利代理机构北京德琦知识产权代理有限 公司 11018 代理人郑红娟 宋志强 (54) 发明名称 路由处理方法及路由转发设备 (57。
2、) 摘要 本发明公开了一种路由处理方法及路由转发 设备,其中,该方法包括:在需要更新自身发布的 路由信息时,第一路由转发设备比较本地保存的 第一路由信息和第二路由信息,其中,第一路由信 息是已经发布给BGP对等体即第二路由转发设备 的路由信息,第二路由信息是要更新到的路由信 息;第一路由转发设备根据比较结果,指示第二 路由转发设备更新本地保存的第一路由信息中与 第二路由信息的不同之处。本发明中,第一路由转 发设备在本地出策略或协议引入发生改变而触发 路由更新时,不需要将全部的要更新为的路由信 息发送给所有的对等体,达到了减少报文的发送, 减少带宽的占用的目的。 (51)Int.Cl. 权利要求。
3、书2页 说明书9页 附图3页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 9 页 附图 3 页 1/2页 2 1.一种路由处理方法,应用于边界网关协议BGP中,其特征在于,包括: 在需要更新自身发布的路由信息时,第一路由转发设备比较本地保存的第一路由信息 和第二路由信息,其中,所述第一路由信息是已经发布给BGP对等体即第二路由转发设备 的路由信息,所述第二路由信息是要更新到的路由信息; 所述第一路由转发设备根据比较结果,指示所述第二路由转发设备更新本地保存的第 一路由信息中与所述第二路由信息的不同之处。 2.根据权利要求1所述的方法,其特征在于,所述。
4、第一路由转发设备根据比较结果,指 示所述第二路由转发设备更新本地保存的第一路由信息中与所述第二路由信息的不同之 处包括: 若所述第一路由信息中的一个路由与所述第二路由信息中的一个路由的路由前缀和 属性值均相同,则所述第一路由转发设备不再向所述第二路由转发设备发送该相同的路 由;和/或 若所述第一路由信息与所述第二路由信息的路由前缀不同,则所述第一路由转发设备 在所述第一路由信息中包含有所述第二路由信息中不存在的路由前缀的情况下,向所述第 二路由转发设备发送撤销Withdraw报文,指示所述第二路由转发设备从本地保存的第一 路由信息中撤销所述第二路由信息中不存在的路由前缀所对应的路由;和/或 若。
5、所述第一路由信息与所述第二路由信息的路由前缀不同,则所述第一路由转发设备 在所述第二路由信息中包含有所述第一路由信息中不存在的路由前缀的情况下,向所述第 二路由转发设备发送更新Update报文,指示所述第二路由转发设备在本地保存的第一路 由信息中添加所述第一路由信息中不存在的路由前缀所对应的路由;和/或 若所述第一路由信息中的一个路由与所述第二路由信息中的一个路由的路由前缀相 同但属性值不同,则所述第一路由转发设备向所述第二路由转发设备发送修改Modify报 文,指示所述第二路由转发设备在本地保存的所述第一路由信息中修改该路由的属性值。 3.根据权利要求2所述的方法,其特征在于,所述Modif。
6、y报文为携带有出栈路由过 滤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字段表示路由属性的类型,所述。
7、ORF属性长度字段表示所述ORF attribute字段的长度,所述ORF attribute字段表示需要修改到的属性值,并且,ORF entry字段中的操作Action字段置为第二值,所述第二值用于表示进行修改操作。 5.根据权利要求1所述的方法,其特征在于,所述第二路由转发设备上通过配置对第 一路由转发设备的对等体保存所有路由peer keep-all-routes命令,在本地保存有所述第 一路由转发设备已经发布的所述第一路由信息。 6.一种路由转发设备,应用于边界网关协议BGP中,其特征在于,包括: 比较模块,用于在需要更新本路由转发设备发布的路由信息时,比较本地保存的第一 路由信息和第。
8、二路由信息,其中,所述第一路由信息是已经发布给本路由转发设备的BGP 权 利 要 求 书CN 102833172 A 2/2页 3 对等体即第二路由转发设备的路由信息,所述第二路由信息是要更新到的路由信息; 发送模块,用于根据所述比较模块的比较结果,指示所述第二路由转发设备更新本地 保存的第一路由信息中与所述第二路由信息的不同之处。 7.根据权利要求6所述的装置,其特征在于,所述发送模块具体用于: 在所述第一路由信息中的一个路由与所述第二路由信息中的一个路由的路由前缀和 属性值均相同时,不再向所述第二路由转发设备发送该相同的路由;和/或 在所述第一路由信息与所述第二路由信息的路由前缀不同时,在。
9、所述第一路由信息中 包含有所述第二路由信息中不存在的路由前缀的情况下,向所述第二路由转发设备发送撤 销Withdraw报文,指示所述第二路由转发设备从本地保存的第一路由信息中撤销所述第 二路由信息中不存在的路由前缀所对应的路由;和/或 在所述第一路由信息与所述第二路由信息的路由前缀不同时,在所述第二路由信息中 包含有所述第一路由信息中不存在的路由前缀的情况下,向所述第二路由转发设备发送更 新Update报文,指示所述第二路由转发设备在本地保存的第一路由信息中添加所述第一 路由信息中不存在的路由前缀所对应的路由;和/或 在所述第一路由信息中的一个路由与所述第二路由信息中的一个路由的路由前缀相 同。
10、但属性值不同时,向所述第二路由转发设备发送修改Modify报文,指示所述第二路由转 发设备在本地保存的所述第一路由信息中修改该路由的属性值。 8.根据权利要求7所述的装置,其特征在于,所述Modify报文为携带有出栈路由过 滤ORF信息的路由刷新Route-refresh报文,其中,该Route-refresh报文中的ORF类型 type字段置为第一值,所述第一值用于表示按照路由前缀匹配且修改匹配的路由前缀的属 性值。 9.根据权利要求8所述的装置,其特征在于,在该Route-refresh报文中的ORF表 项entry字段中的指定类型部分Type specific part字段中,增加了OR。
11、Fattribute类 型type字段、ORF属性attribute长度length字段和ORF attribute字段,其中,所 述ORF attribute type字段表示路由属性的类型,所述ORF属性长度字段表示所述ORF attribute字段的长度,所述ORF attribute字段表示需要修改到的属性值,并且,ORF entry字段中的操作Action字段置为第二值,所述第二值用于表示进行修改操作。 10.根据权利要求6所述的装置,其特征在于,所述第二路由转发设备上通过配置对第 一路由转发设备的对等体保存所有路由peer keep-all-routes命令,在本地保存有所述第 一。
12、路由转发设备已经发布的所述第一路由信息。 权 利 要 求 书CN 102833172 A 1/9页 4 路由处理方法及路由转发设备 技术领域 0001 本发明涉及IP(Internet Protocol,因特网协议)路由技术领域,特别涉及一种 路由处理方法及路由转发设备。 背景技术 0002 BGP(Border Gateway Protocol,边界网关协议)是一种既可以用于不同AS (Autonomous System,自治系统)之间,又可以用于同一AS内部的动态路由协议。当BGP 运行于同一AS内部时,被称为IBGP(Internal BGP);当BGP运行于不同AS之间时,称为 EBG。
13、P(External BGP)。其中,AS是拥有同一选路策略,在同一技术管理部门下运行的一组 路由器。 0003 BGP定义了以下5种消息类型: 0004 Open(初始):TCP连接建立后发送的第一个消息,用于在BGP对等体(发送BGP 消息的路由器称为BGP发言者(BGP Speaker),相互交换消息的BGP发言者之间互称对等体 (Peer)之间建立BGP会话,即,建立BGP对等体之间的连接关系。 0005 Update(更新):用于在BGP对等体之间交换路由信息。一条Update消息可以 发布一类具有相同路径属性的多条可达路由,也可以同时撤销多条不可达路由。其中,只带 路由前缀的Upd。
14、ate就是撤销(Withdraw)报文。 0006 Keepalive(存活或保活):BGP周期性地向对等体发送Keepalive消息,以保持 BGP会话的有效性。 0007 Route-refresh(路由刷新):用来要求对等体重新发送指定地址族的路由信息。 0008 Notification(通知):当BGP检测到错误状态时,就向对等体发出Notification 消息,之后BGP会话会立即中断。 0009 BGP当前使用的版本是BGP-4,BGP-4只能管理IPv4的路由信息,对于使用其它网 络层协议(如IPv6等)的应用,在跨自治系统传播时就受到一定限制。为了提供对多种网 络层协议的支。
15、持,IETF(Internet Engineering Task Force,互联网工程任务组)对BGP-4 进行了扩展,形成MP-BGP(Multiprotocol Border Gateway Protocol,多协议边界网关协 议)。其中,针对IPv6地址族的BGP扩展,称为IPv6BGP。 0010 在BGP-4和IPv6BGP中,peer keep-all-routes(对等体保存所有路由)命令用 来将从指定的对等体/对等体组接收到的所有的原始的路由更新信息保存在本地路由器, 不管这些路由更新信息是否通过了路由策略的过滤。该命令可以用于实现BGP会话的软复 位,具体的,如果本地路由器。
16、和对等体中至少一个不支持路由刷新(Route-refresh)功能, 那么,就可以通过配置本命令将从对等体/对等体组接收的所有原始路由更新信息保存在 本地,当路由策略发生改变后,对保存在本地的所有路由使用新的路由策略重新进行过滤, 从而实现在不中断BGP会话的情况下,对BGP路由表进行更新,并应用新的路由策略。例如, 路由器A不支持路由刷新功能,则其对等体:路由器B在本地配置peer keep-all-routes 命令以保存所有来自路由器A的原始路由信息,这样,路由器B在接收到路由器A发来的路 说 明 书CN 102833172 A 2/9页 5 由信息后,会在本地保存一份副本。 0011 。
17、现有技术中,peer keep-all-routes命令是本地路由器针对对等体发送的路由在 本地保存最原始的一份数据,后续,当本地路由器的入策略发生改变时,本地路由器不会再 向该对等体发送Route-refresh报文以请求该对等体重新发送路由信息,而直接使用本地 保存的路由信息进行过滤即可。这样,通过使用peer keep-all-routes命令可以减少对端 的对等体(也称为邻居)的路由信息(即Update报文)的发送。但是,当本地路由器的出策 略或协议引入(引入其他路由协议发现的路由)发生改变而触发路由更新时,本地路由器仍 然需要将本地所有的路由信息及其路由属性经过新的出策略过滤后,重新。
18、发送给对端的对 等体,从而占用了较大的带宽。 发明内容 0012 有鉴于此,本发明提供了一种路由处理方法及路由转发设备,以至少解决现有技 术中,当本地路由器的出策略或协议引入发生改变而触发路由更新时,本地路由器仍然需 要将本地所有的路由信息及其路由属性经过新的出策略过滤后,重新发送给对端的对等 体,占用较大带宽的问题。 0013 本发明的技术方案如下: 0014 一方面,提供了一种应用于BGP中的路由处理方法,包括:在需要更新自身发布的 路由信息时,第一路由转发设备比较本地保存的第一路由信息和第二路由信息,其中,第一 路由信息是已经发布给BGP对等体即第二路由转发设备的路由信息,第二路由信息是。
19、要更 新到的路由信息;第一路由转发设备根据比较结果,指示第二路由转发设备更新本地保存 的第一路由信息中与第二路由信息的不同之处。 0015 另一方面,还提供了一种应用于BGP中的路由转发设备,包括:比较模块,用于在 需要更新本路由转发设备发布的路由信息时,比较本地保存的第一路由信息和第二路由信 息,其中,第一路由信息是已经发布给本路由转发设备的BGP对等体即第二路由转发设备 的路由信息,第二路由信息是要更新到的路由信息;发送模块,用于根据比较模块的比较结 果,指示第二路由转发设备更新本地保存的第一路由信息中与第二路由信息的不同之处。 0016 本发明的以上技术方案,本地路由转发设备(可以称为第。
20、一路由转发设备)中保存 有之前已经发布的路由信息(称为第一路由信息)以及因出策略或协议引入发生改变而触 发路由(即要发布的路由)更新时需要更新为的路由信息(称为第二路由信息),第一路由转 发设备的BGP对等体(称为第二路由转发设备,可以是一个或多个路由转发设备)本地保存 有第一路由信息,第一路由信息在要进行路由更新之前,首先比较本地保存的第一路由信 息和第二路由信息,再根据比较结果来指示第二路由转发设备更新本地保存的第一路由信 息中与所述第二路由信息的不同之处。由于第二路由转发设备在本地已经保存有第一路由 信息,这样,第一路由转发设备可以仅指示第二路由转发设备更新第一路由信息与第二路 由信息的。
21、不同之处,即可使得第二路由转发设备将本地保存的第一路由信息更新为第二路 由信息,从而第一路由转发设备不需要将全部的第二路由信息再发送给所有的对等体,达 到了减少报文的发送,减少带宽的占用的目的。 附图说明 说 明 书CN 102833172 A 3/9页 6 0017 图1是根据本发明的实施例一的路由处理方法的流程图; 0018 图2是根据本发明的实施例二的路由处理方法的具体处理流程图; 0019 图3是现有技术的携带有ORF信息的route-refresh报文的格式示意图; 0020 图4是现有技术的携带有ORF信息的route-refresh报文中ORF entry字段的格 式示意图; 0。
22、021 图5是根据本发明的实施例二的Modify报文中的ORF entry字段的格式示意图; 0022 图6是根据本发明的实施例三的路由转发设备的结构示意图。 具体实施方式 0023 为了解决现有技术中,当本地路由器的出策略或协议引入(引入其他路由协议发 现的路由)发生改变而触发路由更新时,本地路由器仍然需要将本地所有的路由信息及其 路由属性经过新的出策略过滤后,重新发送给对端的对等体,占用较大带宽的问题,本发明 以下实施例提供了一种路由处理方法以及应用该方法的路由转发设备。本发明的以下实施 例中,本地路由转发设备(可以称为第一路由转发设备)中保存有之前已经发布的路由信息 (称为第一路由信息)。
23、以及因出策略或协议引入发生改变而触发路由(即要发布的路由)更新 时需要更新为的路由信息(称为第二路由信息),第一路由转发设备的BGP对等体(称为第二 路由转发设备,可以是一个或多个路由转发设备)本地保存有第一路由信息,第一路由转发 设备在要进行路由更新之前,首先比较本地保存的第一路由信息和第二路由信息,再根据 比较结果来指示第二路由转发设备更新本地保存的第一路由信息中与所述第二路由信息 的不同之处,从而相同的部分就不需要发送给BGP对等体了,因此,本发明能够有效减少需 要发送的报文的数量或长度,减少了需要占用的带宽。 0024 实施例一 0025 图1是根据本发明的实施例一的路由处理方法的处理。
24、流程图,本方法可以应用于 BGP中,包括:BGP-4和IPv6BGP。本方法可以由支持BGP的网络中的任意一个路由转发设 备(以下称为第一路由转发设备)来执行,该路由转发设备可以是路由器等设备,本发明对 此不做限定。如图1所示,该方法包括以下步骤: 0026 步骤S102,在需要更新自身发布的路由信息时,第一路由转发设备比较本地保存 的第一路由信息和第二路由信息,其中,第一路由信息是已经发布给BGP对等体即第二路 由转发设备的路由信息,第二路由信息是要更新到的路由信息; 0027 例如,在第一路由转发设备的出策略或者协议引入发生了改变而需要更新发布路 由信息时,第一路由转发设备比较本地保存的之。
25、前已经发布了的路由信息即第一路由信息 以及此次需要更新为的路由信息即第二路由信息。显然,第一路由转发设备需要在本地保 存第一路由信息以及第二路由信息,并且,第一路由信息是已经经过本地的出策略过滤后 的路由信息,第二路由信息也是已经经过本地当前的出策略(若是出策略发生改变,则当前 的出策略即为改变后的新出策略)过滤后的路由信息。第一路由信息和第二路由信息中可 以包含有至少一个路由。 0028 由于一个路由具有路由前缀和路由属性,因此,比较第一路由信息和第二路由信 息时,可以比较两者包含的路由的前缀和属性值,从而判断两者的相同和不同之处。 0029 其中,路由前缀是路由的IP地址的前缀。例如,路由。
26、的路由前缀可以是 说 明 书CN 102833172 A 4/9页 7 128.97.0.0/16。 0030 路由属性是跟随路由一起发送出去的一组参数,它对特定的路由进行了进一步的 描述,使得路由接收者能够根据路由属性值对路由进行过滤和选择。路由属性可以分为以 下四类: 0031 (1)公认必须遵循(Well-known mandatory):所有BGP路由器都必须能够识别这 种属性,且必须存在于Update消息中。如果缺少这种属性,路由信息就会出错。 0032 (2)公认可选(Well-known discretionary):所有BGP路由器都可以识别,但不要 求必须存在于Update消。
27、息中,可以根据具体情况来选择。 0033 (3)可选过渡(Optional transitive):在AS之间具有可传递性的属性。BGP路由 器可以不支持此属性,但它仍然会接收带有此属性的路由,并通告给其他对等体。 0034 (4)可选非过渡(Optional non-transitive):如果BGP路由器不支持此属性,该 属性被忽略,且不会通告给其他对等体。 0035 几种主要的路由属性包括:源(ORIGIN)属性、AS路径(AS_PATH)属性、下一跳 (NEXT_HOP)属性、MED(MULTI_EXIT_DISC)属性、本地优先(LOCAL_PREF)属性和团体 (COMMUNITY。
28、)属性。 0036 步骤S104,第一路由转发设备根据步骤S102中的比较结果,指示第二路由转发设 备更新本地保存的第一路由信息中与第二路由信息的不同之处。 0037 本发明实施例中,第二路由转发设备在本地需要已经保存有第一路由转发设备之 前已经发布的路由信息即第一路由信息,这样,第一路由转发设备可以仅指示第二路由转 发设备更新第一路由信息与第二路由信息的不同之处,即可使得第二路由转发设备将本地 保存的第一路由信息更新为第二路由信息,从而第一路由转发设备不需要将全部的第二路 由信息再发送给所有的对等体,达到了减少报文的发送,减少带宽的占用的目的。尤其是在 对等体的数量较多,路由属性值较长的情况。
29、下,效果更加明显。 0038 实施例二 0039 以下对实施例一的方法进行详细的描述,如图2所示,具体处理流程包括以下步 骤S202S206: 0040 步骤S202,第一路由转发设备保存之前已经经过出策略过滤并发布给BGP对等体 (统称为第二路由转发设备)的路由信息即第一路由信息(等同于第二路由转发设备上配置 peer keep-all-routes命令在本地保存的从第一路由转发设备接收到的原始路由信息), 记为Send1,Send1中可以包含有一个或多个路由(包含有路由前缀和属性值),当本地的出 策略或者协议引入发生改变而需要更新发布的路由信息时,保存要更新到的经过当前出策 略(若是出策略。
30、发生了改变,则当前出策略即为改变后的新出策略)过滤后的路由信息即第 二路由信息,记为Send2,Send2中可以包含有一个或多个路由; 0041 第二路由转发设备上通过配置对第一路由转发设备的peer keep-all-routes命 令,在本地保存了第一路由转发设备已经发布的第一路由信息Send1。 0042 步骤S204,第一路由转发设备比较Send1与Send2中的各个路由; 0043 上述步骤S202S204对应于实施例一中的步骤S102。 0044 步骤S206,第一路由转发设备根据以下4种情况的比较结果,针对不同的情况 发送不同的报文以指示第二路由转发设备更新第二路由转发设备本地保。
31、存的Send1中与 说 明 书CN 102833172 A 5/9页 8 Send2不同的地方: 0045 情况1:若Send1中的1个或多个路由与Send2相同,即,这些路由中的每一个路 由与Send2中的一个路由的路由前缀和属性值均相同,则第一路由转发设备不处理这些路 由,即,不再向第二路由转发设备发布这些相同的路由;也就是说,若Send1中的某一个路 由(可以称为第一路由)与Send2中的某一个路由的路由前缀和属性值均相同(此时这两个 路由相同),则第一路由转发设备不再向第二路由转发设备发布该第一路由。 0046 第二路由转发设备中仍然会保留本地保存的Send1中的这些相同的路由。 00。
32、47 情况2:若Send1与Send2的路由的前缀不同,且Send1中包含有Send2中不存 在的路由前缀(即,对于Send1中的1个或多个路由的前缀,Send2中的路由不具有这些前 缀),则第一路由转发设备向第二路由转发设备发送撤销即Withdraw报文(即仅包含前缀和 掩码的Update报文),指示第二路由转发设备从本地保存的Send1中撤销Send2中不存在 的路由前缀所对应的路由;也就是说,Send1中的某一个路由(可以称为第二路由)的路由前 缀在Send2中的路由中不存在,则第一路由转发设备向第二路由转发设备发送Withdraw报 文,指示第二路由转发设备从本地保存的Send1中撤销。
33、该第二路由。 0048 第二路由转发设备收到此Withdraw报文后,从本地保存的Send1中撤销与该报文 中携带的前缀相匹配的路由。 0049 情况3:若Send1与Send2的路由前缀不同,且Send2中包含有Send1中不存在的 路由前缀(即,对于Send2中的1个或多个路由的前缀,Send1中的路由不具有这些前缀), 则第一路由转发设备向第二路由转发设备发送更新即Update报文(包含有这些Send1中 不存在的路由前缀及对应的属性值),指示第二路由转发设备在本地保存的Send1中添加 Send1中不存在的路由前缀所对应的路由;也就是说,Send2中的某一个路由(可以称为第 三路由)的。
34、路由前缀在Send1中的路由中不存在,则第一路由转发设备向第二路由转发设备 发送Update报文,指示第二路由转发设备从本地保存的Send1中添加该第三路由。 0050 第二路由转发设备收到此Update报文后,在本地保存的Send1中增加该报文中携 带的路由前缀及对应的属性值。 0051 情况4:若Send1中的1个或多个路由与Send2中的路由前缀相同但属性值不同, 即,这些路由中的每一个路由与Send2中的一个路由的路由前缀相同但属性值不同,则第 一路由转发设备向第二路由转发设备发送修改即Modify报文,指示第二路由转发设备在 本地保存的Send1中修改这些路由的属性值。也就是说,若S。
35、end1中的某一个路由(可以称 为第四路由)与Send2中的某一个路由的路由前缀相同但属性值不同,则第一路由转发设备 向第二路由转发设备发送Modify报文,指示第二路由转发设备在本地保存的Send1中修改 该第四路由的属性值。 0052 第二路由转发设备收到此Modify报文后,在本地保存的Send1中修改与该报文中 携带的前缀相对应的属性值即可。 0053 具体的,在实际实施过程中,可以利用现有的携带有ORF信息的路由刷新即 Route-refresh报文来实现Modify报文。ORF是BGP协议中的一种重要功能,ORF是 Outbound Route Filters的缩写,是出栈路由过滤。
36、(或出方向路由过滤)的意思,它所实现 的主要功能是:本地路由器主动将本地的入口路由策略(或输入路由策略)通过携带有ORF 信息的Route-refresh报文推给自己的BGP对等体,该对等体将其作为本地的输出路由策 说 明 书CN 102833172 A 6/9页 9 略使用。当该对等体需要向本地路由器发送Update报文时,通过对等体本地的路由策略 (即对等体本地的出策略)后还需要按照该输出路由策略进行过滤,只有通过ORF的路由信 息才会发给本地路由器,以减少BGP对等体之间的Update报文的交互,节省网络资源。 0054 携带有ORF信息的Route-refresh报文的格式如图3所示,。
37、下面对该报文中的各 个字段进行简要介绍(具体可参见RFC5291): 0055 AFI(Address Family Identifier,地址族字段)和SAFI(Subsequent Address Family Identifier,子地址族字段),用于指定报文中携带的ORF信息是针对哪个地址族而 设置的; 0056 Reserved,为保留字段; 0057 When-to-refresh(何时刷新)字段,用于指定何时发送Update报文,如果该字段 的内容是DEFER(0x02,延迟),表示仅仅解析处理完报文中的ORF表项,不进行路由的过滤 和(重新)发布;如果该字段的内容是IMMEDI。
38、ATE(0x01,立即),表示在解析处理完该报文中 的所有ORF表项后,立刻进行路由的过滤和(重新)发布;如果从邻居建立或收到本字段内 容是DEFER的携带有ORF信息的Route-refresh报文开始计时,超过某一时间段还未接收 到本字段内容是IMMEDIATE的携带有ORF信息的Route-refresh报文,则主动按照已接收 到的ORF表项进行路由的过滤和(重新)发布; 0058 ORF type(类型)字段,用于说明后续携带的ORF信息(即1个或多个ORF表项) 是根据何种类型的策略(策略类型有ACL(Access Control List,访问控制列表)、地址前 缀(Address。
39、 Prefix)、AS-Path(自治系统号路径)、团体属性(Commun ity)和扩展团体属性 (Ex-Community)等)产生的; 0059 Length of ORF entries,为后续的ORF entry字段的总长度; 0060 ORF entry(表项)字段,用于携带详细的ORF过滤规则,根据不同类型的策略,本 字段填写的内容也不相同,本字段的格式如图4所示,其中: 0061 Action:对等体控制处理ORF表项的操作类型,包括ADD、REMOVE、REMOVE-ALL操 作,ADD表示添加该ORF表项到本地ORF,REMOVE表示删除ORF表项,REMOVE-ALL表示。
40、删 除ORF所有表项,ORF entry字段中的Action是2bit位的字段,其中,协议中已经定义了 Action置为00时表示ADD,置为01时表示REMOVE,置为10时表示REMOVE-ALL; 0062 Match:比对ORF表项,允许或者禁止对等体发送路由更新; 0063 Reserved:为保留字段,当发送和忽略接收时置为0; 0064 Type specific part(指定类型部分):该字段的长度是可变的,通常在该字段中 可以携带Prefix length(路由前缀长度)和Prefix(路由前缀字段)等。 0065 本发明实施例中,基于现有的携带有ORF信息的Route-r。
41、efresh报文所定义的 Modify报文,不是用于进行策略过滤前缀,而是用于通过匹配路由前缀来修改匹配到的路 由前缀所对应的属性值。为了能够使得携带有ORF信息的Route-refresh报文表示出上 述含义,本发明实施例可以将用来说明根据何种类型的属性进行过滤的ORF type字段定义 为:当ORF type字段置为第一值,第一值用于表示按照路由前缀匹配且修改匹配的路由前 缀的属性值,该第一值可以使用81,显然,根据实际需求,也可以使用其他的值,只要是现有 未使用的值即可。 0066 另外,本发明实施例中的Modify报文中,如图5所示,在ORF entry字段中的Type 说 明 书CN。
42、 102833172 A 7/9页 10 specific 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字段中填充的属。
43、性值所属的路由属性类型,例 如,AS_PATH(AS路径)属性、ORIGIN(源)属性、NEXT_HOP(下一跳)属性、MED属性和LOCAL PREF(本地优先)属性等。并且,定义Action置为第二值(例如可以为11)时表示Modify, 进行修改操作。 0067 对于需要修改到的属性值为空的情况,即,上述情况4中Send1中的一个路由与 Send2中的一个路由的前缀相同但属性值不同,且Send2中的该路由的属性值为空,使用空 属性值,删除对应前缀的属性值。 0068 上述步骤S206对应于实施例一中的步骤S 104。 0069 在实际实施时,类似于ORF能力,可以使用peer keep-。
44、send命令来使能第一路由 转发设备具有能够执行上述方法的新能力(为了方便描述,可以称为通过ORF修改路由信 息的能力),通过配置peer keep-send命令,在第一路由转发设备本地保存一份经过出策略 过滤后,发送给对等体:第二路由转发设备的路由及属性的原始数据(等同于第二路由转发 设备使用peerkeep-all-routes命令保存的数据),从而在第二次因出策略或协议引入改变 触发路由更新时,只需比较此次需要更新到的路由信息与前一次保存的路由信息,前缀不 相同的发送Update或WithDraw报文以指示第二路由转发设备增加或撤销对应的路由;前 缀相同但属性值不同的,发送Modify报。
45、文,以指示第二路由转发设备对与该报文中携带的 前缀相匹配的属性值做出修改的操作。目的在于只指示第二路由转发设备自行对不同的地 方进行修改,减少报文的发送,减少带宽的占用。 0070 显然,本发明实施例的方法能够实施的前提是:第二路由转发设备本地保存了第 一路由转发设备发布的原始路由信息。可以通过在第二路由转发设备上配置对第一路由转 发设备的peer keep-all-routes命令来实现对第一路由转发设备发布的原始路由信息的 保存。本发明以上实施例的方法,利用了现有的BGP特性,实现时能够更加平滑的升级,不 支持则忽略不处理。 0071 BGP通过配置peer keep-send命令使能第一。
46、路由转发设备具有上述的新能力之 后,以及在第一路由转发设备能够执行上述的方法之前,第一路由转发设备与第二路由转 发设备需要协商该新能力,当然,该新能力的使用同时需要Route-refresh能力的支持。 0072 通过Open报文协商该新能力时,Open报文中的ORF type字段的值改为129, 表示本端BGP能够处理该新能力。收发类型的配置可以为:如果本端配置有peer keep-all-routes命令,则置1表示本端具有接收能力,如果未配置peer keep-all-routes 命令,则置2表示本端只有发送能力。 0073 由于目前BGP配置了peer keep-all-routes。
47、命令后,会立即向对等体发送普通 的Route-refresh报文,进而保存从对等体接收的原始路由信息。而当BGP后续配置peer keep-all-routes命令时,为了让对等体感知本端能够处理该新能力,则本端对对等体配置 peer keep-all-routes命令时,可以将要发送给对等体的Route-refresh报文中的1字节 的保留位置为129,表示本端BGP能够处理该新能力。对等体收到该Route-refresh报文 说 明 书CN 102833172 A 10 8/9页 11 后,下一次发送更新即可使用该新能力。 0074 实施例三 0075 针对实施例一和二中的方法,本发明实施。
48、例提供了一种路由转发设备,该路由转 发设备能够支持BGP,可以为路由器等设备,本发明对此不做限定。 0076 如图6所示,该路由转发设备中包括以下模块:比较模块10和发送模块20,其中: 0077 比较模块10用于在需要更新本路由转发设备发布的路由信息时,比较本地保存 的第一路由信息和第二路由信息,其中,第一路由信息是已经发布给本路由转发设备的BGP 对等体即第二路由转发设备的路由信息,第二路由信息是要更新到的路由信息; 0078 发送模块20用于根据比较模块10的比较结果,指示第二路由转发设备更新第二 路由转发设备本地保存的第一路由信息中与第二路由信息的不同之处。 0079 其中,发送模块2。
49、0在根据比较模块10的比较结果,指示第二路由转发设备更新第 二路由转发设备本地保存的第一路由信息中与第二路由信息的不同之处时,具体按照以下 几种情况进行: 0080 情况1:在第一路由信息中的某一个路由与第二路由信息中的某一个路由的路由 前缀和属性值均相同时,不再向第二路由转发设备发送该相同的路由。 0081 情况2:在第一路由信息与第二路由信息的路由前缀不同时,在第一路由信息 中包含有第二路由信息中不存在的路由前缀的情况下,向第二路由转发设备发送撤销 Withdraw报文,指示第二路由转发设备从本地保存的第一路由信息中撤销第二路由信息中 不存在的路由前缀所对应的路由。 0082 情况3:在第一路由信息与第二路由信息的路由前缀不同时,在第二路由信息中 包含有第一路由信息中不存在的路由前缀的情况下,向第二路由转发设备发送更新Update 报文,指示第二路由转发设备在本地保存的第一路由信息中添加第一路由信息中不存在的 路由前缀所对应的路由。 0083 情。