一种减少更新报文的方法和服务提供商网络边缘设备的制作方法

文档序号:7866899阅读:203来源:国知局
专利名称:一种减少更新报文的方法和服务提供商网络边缘设备的制作方法
一种减少更新报文的方法和服务提供商网络边缘设备技术领域
本申请涉及通信技术领域,特别涉及一种减少更新报文的方法和服务提供商网络边缘设备。
背景技术
因特网协议版本6 (Internet Protocol Version 6, IPv6)是网络层协议的第二代标准协议,也被称为下一代因特网(IP next generation, IPng),它是Internet工程任务组(Internet Engineering Task Force, IETF)设计的一套规范,是 IPv4 的升级版本。IPv6 和IPv4之间最显著的区别为IP地址的长度从32比特增加到128比特,并具有简化的报文头格式,层次化得地址结构,地址自动配置,增强的邻居发现机制,为IP协议提供了良好的扩展能力等。
多协议标签交换(MPLS)三层虚拟专用网络(L3VPN)是服务提供商VPN解决方案中一种基于服务提供商网络边缘设备(Provider Edge,PE)的L3VPN技术,它使用边界网关协议(BGP)在服务提供商骨干网上发布VPN路由,使用MPLS在服务提供商骨干网上转发VPN 报文。
MPLS L3VPN模型由三部分组成用户网络边缘(Customer Edge,CE)设备、PE和路由器(Provider, P)设备。
其中,CE有接口直接与服务提供商(Service Provider,SP)相连。CE可以是路由器或交换机,也可以是一台主机。CE “感知”不到VPN的存在,也不需要必须支持MPLS。CE 通常是一台路由器,当CE与直接相连的PE建立邻接关系后,CE把本站点的VPN路由发布给PE,并从PE学到远端VPN的路由。CE与PE之间使用BGP/IGP交换路由信息,也可以使用静态路由。
PE是服务提供商网络的边缘设备,与用户的CE直接相连。在MPLS网络中,对VPN 的所有处理都发生在PE上。PE从CE学到CE本地的VPN路由信息后,通过BGP与其它PE 交换VPN路由信息。PE路由器只维护与它直接相连的CE侧的路由信息,不维护服务提供商网络中的所有VPN路由。
P设备是服务提供商网络中的骨干路由器,不与CE直接相连。P设备只需要具备基本MPLS转发能力。P设备只维护到PE的路由,不需要了解任何VPN路由信息。
MPLS L3VPN使用BGP扩展团体属性(Route Target,RT)来控制VPN路由信息的发布。PE上的VPN实例有两类RT属性出方向扩展团体属性(Export Route Target,ERT) 和入方向扩展团体属性(Import Route Target, IRT)。
其中,ERT属性在本地PE将从与自己直接相连的Site学到的VPN_IPv4路由发布给其它PE之前,为这些路由设置ERT属性;PE在接收到其它PE路由器发布的VPN_IPv4路由时,检查其ERT属性,只有当此属性与PE上VPN实例的IRT属性匹配时,才把路由加入到相应的VPN路由表中。
PE与PE间路由的更新通过BGP的update报文来完成,若PE与CE间建的是BGP邻居,则路由的更新也通过BGP的update报文来完成。
基于因特网协议版本6的多协议标签交换三层虚拟专用网络(IPv6 MPLSL3VPN, 6VPE)的原理与MPLS L3VPN相同,所不同的是6VPE利用BGP在服务提供商骨干网上发布 VPN的IPv6路由,利用MPLS在服务提供商骨干网上转发VPN的IPv6报文。
6VPE组网中服务提供商骨干网应为IPv4网络。VPN内部及CE和PE之间运行IPv6 协议,骨干网中PE和P之间运行IPv4协议。PE需要同时支持IPv4和IPv6协议,连接CE 的接口上使用IPv6协议,连接骨干网的接口上使用IPv4协议。
6VPE组网中的PE和CE间通过BGP建邻居时,现有技术是本PE上修改VPN的ERT 属性后,都会向相连的CE发送路由刷新(route-refresh)报文,请求CE重新发送BGP更新 (update)报文;PE上修改IRT属性后,会向直接相连的PE发送route-refresh报文,请求 PE发送BGP update报文。
目前任一 PE上修改ERT属性,都会向与其相连的CE发送route-refresh报文,请求对端发送BGP update报文。当CE有大量的BGP路由向PE发送或对端PE有大量的BGP 路由向PE发送时,会加重网络拥塞并降低PE的CPU处理能力。发明内容
有鉴于此,本申请提供一种减少更新报文的方法和服务提供商网络边缘设备,能够使没有必要发送的更新报文不发送,节省了带宽,提高了 CPU的处理能力。
为解决上述技术问题,本发明的技术方案是这样实现的
一种减少更新报文的方法,应用于基于因特网协议版本6的多协议标签交换三层虚拟专用网络6VPE组网中,该组网中任一服务提供商网络边缘设备PE与同其相连的用户网络边缘设备CE建立边界网关协议BGP多实例邻居,并与对端PE建立多协议内部边界网关协议MP-IBGP邻居,该PE接收同其建立BGP邻居的各CE发送的更新update报文,并将该更新报文中携带的各RT值按虚拟专用网络VPN分类并作为CE侧扩展团体属性RT集合存储,包括
该PE修改本地任一 VPN的出方向扩展团体属性ERT,当确定与该VPN相同的CE 侧RT集合不是本地修改后的当前的该VPN的ERT集合的子集,且是修改前的本地该VPN的 ERT集合的子集时,将本地修改后的当前的该VPN的ERT集合中的ERT值作为RT值生成更新报文,并向PE侧发送;
当该PE确定与该VPN相同的CE侧RT集合是本地修改后的当前的该VPN的ERT 集合的子集,且不是修改前的本地该VPN的ERT集合的子集时,将本地存储的CE侧RT集合中的RT值作为RT值生成更新报文,并向PE侧发送;
当该PE确定与该VPN相同的CE侧RT集合不是本地修改后的当前的该VPN的ERT 集合的子集,且不是修改前的本地该VPN的ERT集合的子集时,或,当与该VPN相同的CE侧 RT集合是本地修改后的当前的该VPN的ERT集合的子集,且是修改前的本地该VPN的ERT 集合的子集时,不做任何处理;
其中,该PE本地的该VPN的所有ERT值称为该VPN的ERT集合。
一种服务提供商网络边缘设备PE,可应用于基于因特网协议版本6的多协议标签交换三层虚拟专用网络6VPE组网中,该PE与在该6VPE组网中同其相连的用户网络边缘设备CE建立边界网关协议BGP多实例邻居,并与对端PE建立多协议内部网关边界协议 MP-IBGP邻居,该PE包括接收单元、存储单元、修改单元、确定单元和处理单元;
所述接收单元,用于接收同本PE建立BGP邻居的各CE发送的更新update报文;
所述存储单元,用于将所述接收单元接收的更新报文中携带的各RT值按虚拟专用网络VPN分类并作为CE侧RT集合存储;存储本地VPN的出方向ERT集合;存储本PE本地的任一 VPN的ERT集合;
所述修改单元,用于修改所述存储单元中存储的本地任一 VPN的ERT ;
所述确定单元,用于确定所述存储单元中与该VPN相同的CE侧RT集合,是否所述修改单元修改后的当前的该VPN的ERT集合的子集;与该VPN相同的CE侧RT集合,是否是所述修改前的当前的该VPN的ERT集合的子集;
所述处理单元,用于当所述确定单元确定与该VPN相同的CE侧RT集合,不是所述修改单元修改后的当前的该VPN的ERT集合的子集,且是修改前的本地该VPN的ERT集合的子集时,将本地修改后的当前的该VPN的ERT集合中的ERT值作为RT值生成更新报文, 并向PE侧发送;当所述确定单元确定与该VPN相同的CE侧RT集合是本地修改后的当前的该VPN的ERT集合的子集,且不是修改前的本地该VPN的ERT集合的子集时,将本地存储的 CE侧RT集合中的RT值作为RT值生成更新报文,并向PE侧发送;当所述确定单元确定与该VPN相同的CE侧RT集合不是本地修改后的当前的该VPN的ERT集合的子集,且不是修改前的本地该VPN的ERT集合的子集时,或,当与该VPN相同的CE侧RT集合是本地修改后的当前的该VPN的ERT集合的子集,且是修改前的本地该VPN的ERT集合的子集时,不做任何操作。
综上所述,本申请中当该PE修改本地任一 VPN的ERT的值时,通过与本地存储的该VPN的CE侧的RT值进行比较,并根据比较结果在本地直接进行处理,而不向CE侧设备发送路由刷新报文。通过该方法使没有必要发送的更新报文不发送,从而提高带宽和CPU 的使用率。


图I为本发明具体实施例中6VPE组网结构示意图2为本发明实施例一中减少更新报文的方法流程示意图3为本发明实施例二中PE接收CE侧发送的更新报文的处理过程流程图4为本发明实施例二中减少更新报文发送的流程示意图5为本发明实施例三中减少更新报文的方法流程示意图6为本发明实施例四中PE接收PE侧发送的更新报文的处理过程流程图7为本发明实施例四中减少更新报文的方法流程示意图8为本发明具体实施例中应用上述技术的PE的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
本发明实施例中提出一种减少更新报文的方法,应用于6VPE组网中,该组网中任一 PE与同其相连的CE建立BGP多实例邻居,并与对端PE建立多协议内部网关边界协议 (Multiprotocol Internal Border Gateway Protocol, MP-IBGP)邻居,当该 PE 修改本地任一 VPN的ERT的值时,通过与本地存储的该VPN的CE侧的RT值进行比较,并根据比较结果在本地直接进行处理,而不向CE侧设备发送路由刷新报文。通过该方法使没有必要发送的更新报文不发送,从而提高带宽和CPU的使用率。
实施例一
PE会接收与其建立BGP邻居的各CE发送的更新报文,并将该更新报文中携带的各 RT值按VPN分类并作为CE侧RT集合存储。
参见图1,图I为本发明具体实施例中6VPE组网结构示意图。图I中PEl与CEl 和CE2建立BGP多实例邻居,PE2与CE3建立BGP邻居,PEl与PE2建立MP-IBGP邻居,即 PE之间基于IPv6地址运行IPv4协议收发报文。以PEl接收到其CE侧发送的更新报文为例,获取该更新报文中的RT值,由于CEl和CE2上的VPN不同,因此按VPN不同分类保存, CE侧VPNl的所有RT值作为一个RT集合进行存储,CE侧VPN2的所有RT值作为一个RT集合进行存储。
参见图2,图2为本发明实施例一中减少更新报文的方法流程示意图。具体步骤为
步骤201,PE修改本地任一 VPN的ERT的值。
步骤202,该PE确定与该VPN相同的CE侧RT集合是否是修改后的当前的本地该 VPN的ERT集合的子集,如果是,执行步骤203 ;否则,执行步骤205。
其中,为了描述方便,本发明具体实施例中将该PE本地的任一 VPN的所有ERT值称为该VPN的ERT集合。
步骤203,该PE确定与该VPN相同的CE侧RT集合是否是修改前的本地该VPN的 ERT集合的子集,如果是,执行步骤207 ;否则,执行步骤204。
步骤204,该PE将本地存储的该VPN的CE侧RT集合中的RT值作为RT值生成更新报文,并向PE侧发送,结束本流程。
步骤205,该PE确定与该VPN相同的CE侧RT集合是否是修改前的本地该VPN的 ERT集合的子集,如果是,执行步骤206 ;否则,执行步骤207。
步骤206,该PE将本地修改后的当前的该VPN的ERT集合中的ERT值作为RT值生成更新报文,并向PE侧发送。
步骤207,不做任何处理,结束本流程。
依然以图I为例,假设VPNl的CE侧RT集合为[1: 1,2: 2,3:3],本地VPNl的ERT 集合为[4:4,5:5,6:6], PEl 修改 VPNl 的 ERT 集合为[I I, 2:2, 3:3,4:4]时,可见 CE 侧 RT集合是修改后的ERT集合的子集,且不是修改前的ERT集合的子集,因此,PEl需要执行步骤204,该PE将本地存储的VPNl的CE侧RT集合中的RT值作为RT值生成更新报文,并向PE侧发送。假设PEl将VPNl的ERT集合修改为[4: 4,5:5],可见CE侧RT集合不是修改后的ERT集合的子集,且不是修改前的ERT集合的子集,因此,PEl需要执行步骤207,不做任何处理,结束本流程。其他情况与举例相似,不再一一例举。由此可见,本地在修改VPN 的ERT时,不向CE侧发送route-refresh报文,而是本地生成更新报文,向PE侧发送,减少了 CE侧发送不必要的更新报文。
实施例二
参见图3,图3为本发明实施例二中PE接收CE侧发送的更新报文的处理过程流程图。具体步骤为
步骤301,PE接收与其建立BGP邻居的各CE发送的更新update报文。
步骤302,该PE确定本地是否已存储该VPN的CE侧RT集合,如果是,执行步骤 303 ;否则,执行步骤304。
本步骤中即判断是否是第一次接收到CE侧发送的更新报文。
步骤303,该PE确定当前接收到的更新报文中该VPN的RT值与本地存储的该VPN 的CE侧RT集合中的RT值是否有变化,如果是,执行步骤305 ;否则,执行步骤309。
步骤304,该PE将该更新报文中携带的各RT值按VPN分类并作为CE侧RT集合存储,执行步骤306。
步骤305,该PE更新本地存储的CE侧RT集合。
该PE通过新接收的更新报文中的该VPN的所有RT值,更新本地存储的CE侧RT集合,即只要该次接收的更新报文中的RT值同上次接收的本地存储的该VPN的CE侧RT集合中的RT值有变化,如增加、减少RT值,就要使用新的RT值更新旧的RT值,并存储在本地。
步骤306,该PE确定该更新报文中的RT值的RT集合是否为本地该VPN的ERT集合的子集,如果是,执行步骤307 ;否则,执行步骤308。
步骤307,该PE将是子集值赋值给该VPN的CE侧第一标记,结束本流程。
步骤308,该PE将不是子集值赋值给该VPN的CE侧第一标记。
步骤309,不做任何处理,结束本流程。
在具体实现时,可以根据将I作为是子集值赋值给该VPN的CE侧第一标记,将O 作为不是子集值赋值给该VPN的CE侧第一标记,或者使用其他方便的值或形式作为标记。
参见图4,图4为本发明实施例二中减少更新报文发送的流程示意图。具体步骤为
步骤401,PE修改本地任一 VPN的ERT的值。
步骤402,当该PE确定本地与该VPN相同的CE侧RT集合不是本地修改后的当前的该VPN的ERT集合的子集时,将不是子集值赋值给该VPN的CE侧第二标记;当本地与该 VPN相同的CE侧RT集合是本地修改后的当前的该VPN的ERT集合的子集时,将是子集值赋值给该VPN的CE侧第二标记。
步骤403,当该PE确定CE侧第一标记为不是子集值,且CE侧第二标记为是子集值时,将本地存储的CE侧的RT值作为RT生成更新报文,向PE侧发送,并将CE侧第二标记的值赋值给该VPN的CE侧第一标记。
步骤404,当该PE确定CE侧第一标记为是子集值,且CE侧第二标记为不是子集值时,将本地修改后的当前的该VPN的ERT集合中的ERT值作为RT值生成更新报文,向PE侧发送,并将CE侧第二标记的值赋值给该VPN的CE侧第一标记。
步骤405,当该PE确定CE侧第一标记和CE侧第二标记均为不是子集值或均为是子集值时,不做任何处理。
该实施例二通过给各比较结果赋值标记,在修改任一 VPN的ERT值时,只需查看当前CE侧第一标记和CE侧第二标记的值来确定如何处理。CN 102932231 A书明说6/10 页
实施例三
该PE接收对端PE发送的更新报文,将该更新报文中携带的各RT值作为PE侧RT 集合存储。该PE本地的任一 VPN的所有IRT值称为该VPN的IRT集合。
如图3中P El接收到PE2发送的更新报文,将更新报文中的所有RT值作为VPN3 的PE侧RT集合。
参见图5,图5为本发明实施例三中减少更新报文的方法流程示意图。具体步骤为
步骤501,PE修改本地任一 VPN的IRT的值。
步骤502,该PE确定与该VPN相同的PE侧RT集合中RT值与本地修改后的当前的该VPN的IRT集合中的IRT值是否存在匹配,如果是,执行步骤503,否则,执行步骤504。
该步骤中,只要该VPN的PE侧RT集合中的RT值与修改后的该VPN的IRT集合中的IRT值存在相同值,则认为存在匹配,即这PE侧RT集合和修改后的IRT集合存在交集, 这认为这两个集合中的值存在匹配。
步骤503,该PE确定与该VPN相同的PE侧RT集合中RT值,与修改前的本地该VPN 的IRT集合中的IRT值是否存在匹配,如果是,执行步骤506 ;否则,执行步骤505。
该步骤中,只要该VPN的PE侧RT集合中的RT值与修改前的该VPN的IRT集合中的IRT值存在相同值,则认为存在匹配,即这PE侧RT集合和修改前的IRT集合存在交集, 这认为这两个集合中的值存在匹配。
步骤504,该PE确定与该VPN相同的PE侧RT集合中RT值,与修改前的本地该VPN 的IRT集合中的IRT值是否存在匹配,如果是,执行步骤505 ;否则,执行步骤506。
步骤505,该PE向PE侧发送路由刷新报文。
该PE向PE侧发送路由刷新报文,接收到该刷新的报文的PE会回复更新报文,该 PE接收到更新报文时,删除不匹配的路由信息,该过程同现有实现。
步骤506,不做任何处理,结束本流程。
依然以图I为例,假设VP3的PE侧RT集合为[2: 2,3:3],本地VPN3的IRT集合为 [3:3,5:5,6:6],PEl修改VPN3的IRT集合为[2:2,4:4]时,可见PE侧RT集合中的值与修改后的IRT集合的子集中存在匹配,即有RT值2和IRT值2匹配,且与修改前的IRT集合中的IRT值存在匹配,即有RT值3和IRT值3匹配,则执行步骤506,结束本流程,即PEl不做任何处理。假设PEl将VPN3的IRT集合修改为[7: 7,8:8],可见PE侧RT集合中的值与修改后的IRT集合的子集中不存在匹配,即没有相同的值,且与修改前的IRT集合中的IRT 值存在匹配,即有RT值3和IRT值3匹配,则执行步骤505,该PE向PE侧发送路由刷新报文。其他情况与举例相似,不再一一例举。由此可见,本地在修改VPN的IRT时,不必要向 PE侧发送路由更新报文时,则不发送,减少了更新报文的发送。
实施例四
参见图6,图6为本发明实施例四中PE接收PE侧发送的更新报文的处理过程流程图。具体步骤为
步骤601,PE接收与其建立MP-IBGP邻居的各PE发送的更新报文。
步骤602,该PE确定本地是否已存储任一 VPN的PE侧RT集合,如果是,执行步骤 603 ;否则,执行步骤604。12
本步骤中即判断是否是第一次接收到PE侧发送的更新报文。
步骤603,该PE确定当前接收到的更新报文中的RT值与本地存储的该VPN的PE 侧RT集合中的RT值是否有变化,如果是,执行步骤605 ;否则,执行步骤609。
步骤604,该PE将该更新报文中携带的各RT值按VPN分类并作为PE侧RT集合存储,执行步骤606。
步骤605,该PE更新本地存储的PE侧RT集合。
该PE通过新接收的更新报文中的该VPN的所有RT值,更新本地存储的PE侧RT集合,即只要该次接收的更新报文中的RT值同上次接收的本地存储的该VPN的PE侧RT集合中的RT值有变化,如增加、减少RT值,就要使用新的RT值更新旧的RT值,并存储在本地。
步骤606,该PE确定该更新报文中该VPN的PE侧RT集合中的RT值与本地该VPN 的IRT集合中的IRT值是否存在匹配,如果是,执行步骤607 ;否则,执行步骤608。
步骤607,该PE将存在匹配值赋值给该VPN的PE侧第一标记,结束本流程。
步骤608,该PE将不存在匹配值赋值给该VPN的PE侧第一标记。
步骤609,不做任何处理,结束本流程。
在具体实现时,可以根据将I作为存在匹配值赋值给该VPN的CE侧第一标记,将 O作为不存在匹配值赋值给该VPN的CE侧第一标记,或者使用其他方便的值或形式作为标记。
参见图7,图7为本发明实施例四中减少更新报文的方法流程示意图。具体步骤为
步骤701,PE修改本地任一 VPN的IRT的值。
步骤702,当该PE确定本地与该VPN相同的PE侧RT集合中的RT值,与本地修改后的当前的该VPN的IRT集合中的IRT值不存在匹配时,将不存在匹配值赋值给该VPN的 PE侧第二标记;当本地与该VPN相同的PE侧RT集合中的RT值,与本地修改后的当前的该 VPN的IRT集合中的IRT值存在匹配时,将存在匹配值赋值给该VPN的PE侧第二标记。
步骤703,当该PE确定PE侧第一标记为不存在匹配值,且PE侧第二标记为存在匹配值时;或,PE侧第一标记为存在匹配值,且PE侧第二标记为不存在匹配值时,向PE侧发送路由刷新报,并将PE侧第二标记的值赋值给该VPN的PE侧第一标记。
步骤704,当该PE确定PE侧第一标记和PE侧第二标记均为存在匹配值,或均为不存在匹配值时,不做任何处理,结束本流程。
该实施例四通过给各比较结果赋值标记,在修改任一 VPN的IRT值时,只需查看当前PE侧第一标记和PE侧第二标记的值来确定如何处理。
本发明的具体实施例是基于6VPE的,同样也可应用于基于IPv4的MPLSL3VPN组网中,并且处理过程类似。但是由于6VPE中IP地址长度更长,因此带来的效果更明显。
本发明具体实施例中基于同样的发明构思,还提出一种PE,可应用于6VPE组网中,该PE与在该6VPE组网中同其相连的CE建立BGP多实例邻居,并与对端PE建立MP-IBGP 邻居。参见图8,图8为本发明具体实施例中应用上述技术的PE的结构示意图。该PE包括接收单元801、存储单元802、修改单元803、确定单元804和处理单元805。
接收单元801,用于接收同本PE建立BGP邻居的各CE发送的更新update报文。
存储单元802,用于将接收单元801接收的更新报文中携带的各RT值按VPN分类并作为CE侧RT集合存储;存储本地VPN的ERT集合;存储本PE本地的任一 VPN的ERT集入口 ο
修改单元803,用于修改存储单元802中存储的本地任一 VPN的ERT。
确定单元804,用于确定存储单元802中与该VPN相同的CE侧RT集合,是否是修改单元803修改后的当前的该VPN的ERT集合的子集;与该VPN相同的CE侧RT集合,是否是所述修改前的当前的该VPN的ERT集合的子集。
处理单元805,用于当确定单元804确定与该VPN相同的CE侧RT集合,不是修改单元803修改后的当前的该VPN的ERT集合的子集,且是修改前的本地该VPN的ERT集合的子集时,将本地修改后的当前的该VPN的ERT集合中的ERT值作为RT值生成更新报文, 并向PE侧发送;当确定单元804确定与该VPN相同的CE侧RT集合是本地修改后的当前的该VPN的ERT集合的子集,且不是修改前的本地该VPN的ERT集合的子集时,将本地存储的 CE侧RT集合中的RT值作为RT值生成更新报文,并向PE侧发送;当确定单元804确定与该VPN相同的CE侧RT集合不是本地修改后的当前的该VPN的ERT集合的子集,且不是修改前的本地该VPN的ERT集合的子集时,或,当与该VPN相同的CE侧RT集合是本地修改后的当前的该VPN的ERT集合的子集,且是修改前的本地该VPN的ERT集合的子集时,不做任何操作。
较佳地,
确定单元804,进一步用于确定本地是否已存储该VPN的CE侧RT集合;确定当前接收到的更新报文中的所有RT值,与本地存储的该VPN的CE侧RT集合中的RT值相比较是否有变化;确定任一 VPN的CE侧RT集合是否为本地该VPN的ERT集合的子集。
存储单元802,进一步用于当确定单元804确定本地已存储该VPN的CE侧RT集合,且当前接收到的更新报文中的所有RT值,与本地存储的该VPN的CE侧RT集合中的RT 相比较,有变化时,更新本地存储的CE侧RT集合,并触发确定单元804确定该VPN的CE侧 RT集合是否为本地该VPN的ERT集合的子集的操作;当确定单元804确定本地未存储该VPN 的CE侧RT集合时,执行所述将该更新报文中携带的各RT值按VPN分类并作为CE侧RT集合存储操作;并触发确定单元804确定当前接收到的更新报文中的所有RT值,与本地存储的该VPN的CE侧RT集合中的RT值相比较是否有变化的操作。
处理单元805,进一步用于当确定单元804确定该VPN的CE侧RT集合为本地该 VPN的ERT集合的子集时,将是子集值赋值给该VPN的CE侧第一标记;当所述确定单元确定该VPN的CE侧RT集合不为本地该VPN的ERT集合的子集时,将不是子集值赋值给该VPN 的CE侧第一标记。
较佳地,
存储单元802,进一步用于当确定单元804确定本地与该VPN相同的CE侧RT集合不是本地修改后的当前的该VPN的ERT集合的子集时,将不是子集值赋值给该VPN的CE侧第二标记;当确定单元804确定本地与该VPN相同的CE侧RT集合是本地修改后的当前的该VPN的ERT集合的子集时,将是子集值赋值给该VPN的CE侧第二标记。
处理单元805,进一步用于当存储单元802中CE侧第一标记为不是子集值,且CE 侧第二标记为是子集值时,将本地存储的CE侧的RT值作为RT生成更新报文,向PE侧发送,并将CE侧第二标记的值赋值给该VPN的CE侧第一标记;当存储单元802中CE侧第一标记为是子集值,且CE侧第二标记为不是子集值时,将本地修改后的当前的该VPN的ERT 集合中的ERT值作为RT值生成更新报文,向PE侧发送,并将CE侧第二标记的值赋值给该 VPN的CE侧第一标记;当存储单元802中CE侧第一标记和CE侧第二标记均为存在匹配值或均为不存在匹配值时,不做任何操作。
较佳地,
接收单元801,进一步用于接收对端PE发送的更新报文。
存储单元802,进一步用于将接收单元801接收的更新报文中携带的各RT值作为 PE侧RT集合存储;存储本PE本地任一 VPN的IRT集合。
修改单元803,进一步用于修改存储单元802中存储的任一 VPN的IRT集合。
确定单元804,进一步用于确定与该VPN相同的PE侧RT集合中RT值,与本地修改后的当前的该VPN的IRT集合中的IRT值是否存在匹配;与该VPN相同的PE侧RT集合中 RT值,与本地修改前的当前的该VPN的IRT集合中的IRT值是否存在匹配。
处理单元805,进一步用于当确定单元804确定与该VPN相同的PE侧RT集合中 RT值,与本地修改后的当前的该VPN的IRT集合中的IRT值不存在匹配,且与修改前的本地该VPN的IRT集合中的IRT值存在匹配时,或,当与该VPN相同的PE侧RT集合中的RT值, 与本地修改后的当前的该VPN的IRT集合中IRT值存在匹配,且与修改前的本地该VPN的 IRT集合中的IRT值不存在匹配时,向PE侧发送路由刷新报文;当确定单元804确定与该 VPN相同的PE侧RT集合中的RT值,与本地修改后的当前的该VPN的IRT集合中的IRT值不存在匹配,且与修改前的本地该VPN的IRT集合中的IRT值不存在匹配时,或,当本地与该VPN相同的PE侧RT集合中的RT值,与本地修改后的当前的该VPN的IRT集合中的IRT 值存在匹配,且与修改前的本地该VPN的IRT集合中的IRT值存在匹配时,不做任何操作。
较佳地,
确定单元804,进一步用于确定本地是否已存储该VPN的PE侧RT集合;确定当前接收到的更新报文中的所有RT值,与本地存储的该VPN的PE侧RT集合中的RT值相比较, 是否有变化;确定任一 VPN的PE侧RT集合中的RT值,与本地该VPN的IRT集合中的IRT 值是否存在匹配。
存储单元802,进一步用于当确定单元804确定本地已存储该VPN的PE侧RT集合,且当前接收到的更新报文中的所有RT值,与本地存储的该VPN的PE侧RT集合中的RT 相比较,有变化时,更新本地存储的PE侧RT集合,并触发确定单元804确定该更新报文中该VPN的PE侧RT集合中的RT值与本地该VPN的IRT集合中的IRT值是否存在匹配操作; 当确定单元802确定本地未存储该VPN的PE侧RT集合时,执行所述将该更新报文中携带的各RT值按VPN分类并作为PE侧RT集合存储操作;并触发确定单元804确定该更新报文中该VPN的PE侧RT集合中的RT值与本地该VPN的IRT集合中的IRT值是否存在匹配操作。
处理单元805,进一步用于当确定单元804确定该VPN的PE侧RT集合中的RT值, 与本地该VPN的IRT集合中的IRT值存在匹配时,将存在匹配值赋值给该VPN的PE侧第一标记;当确定单元804确定该VPN的PE侧RT集合中的RT值,与本地该VPN的IRT集合中的IRT值不存在匹配时,将不存在匹配值赋值给该VPN的PE侧第一标记。
较佳地,
存储单元802,进一步用于当确定单元804确定本地与该VPN相同的PE侧RT集合中的RT值,与本地修改后的当前的该VPN的IRT集合中的IRT值不存在匹配时,将不存在匹配值赋值给该VPN的PE侧第二标记;当确定单元804确定本地与该VPN相同的PE侧RT 集合中的RT值,与本地修改后的当前的该VPN的IRT集合中的IRT值存在匹配时,将存在匹配值赋值给该VPN的PE侧第二标记。
处理单元805,进一步用于当存储单元802中存储的PE侧第一标记为不存在匹配值,且PE侧第二标记为存在匹配值时;或,PE侧第一标记为存在匹配值,且PE侧第二标记为不存在匹配值时,向PE侧发送路由刷新报,并将PE侧第二标记的值赋值给该VPN的PE 侧第一标记;当存储单元802中存储的PE侧第一标记和PE侧第二标记均为不存在匹配值, 或均为存在匹配值时,不做任何操作。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单兀。
综上所述,本发明具体实施例中当PE修改本地任一 VPN的ERT的值时,通过与本地存储的该VPN的CE侧的RT值进行比较,并根据比较结果在本地直接进行处理,而不向CE 侧设备发送路由刷新报文。通过该方法使没有必要发送的更新报文不发送,从而提高带宽和CPU的使用率。
当PE修改本地任一 VPN的IRT的值时,通过与本地存储的该VPN的PE侧的RT值进行比较,并根据比较结果在本地直接进行处理,不需要向PE侧发送路由刷新报文时,则不发送,从而达到减少协议报文的交互,提高带宽和CPU的使用率。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种减少更新报文的方法,应用于基于因特网协议版本6的多协议标签交换三层虚拟专用网络6VPE组网中,该组网中任一服务提供商网络边缘设备PE与同其相连的用户网络边缘设备CE建立边界网关协议BGP多实例邻居,并与对端PE建立多协议内部边界网关协议MP-IBGP邻居,其特征在于,该PE接收同其建立BGP邻居的各CE发送的更新update报文,并将该更新报文中携带的各扩展团体属性RT值按虚拟专用网络VPN分类并作为CE侧RT集合存储,包括 该PE修改本地任一 VPN的出方向扩展团体属性ERT,当确定与该VPN相同的CE侧RT集合不是本地修改后的当前的该VPN的ERT集合的子集,且是修改前的本地该VPN的ERT集合的子集时,将本地修改后的当前的该VPN的ERT集合中的ERT值作为RT值生成更新报文,并向PE侧发送; 当该PE确定与该VPN相同的CE侧RT集合是本地修改后的当前的该VPN的ERT集合的子集,且不是修改前的本地该VPN的ERT集合的子集时,将本地存储的CE侧RT集合中的RT值作为RT值生成更新报文,并向PE侧发送; 当该PE确定与该VPN相同的CE侧RT集合不是本地修改后的当前的该VPN的ERT集合的子集,且不是修改前的本地该VPN的ERT集合的子集时,或,当与该VPN相同的CE侧RT集合是本地修改后的当前的该VPN的ERT集合的子集,且是修改前的本地该VPN的ERT集合的子集时,不做任何处理; 其中,该PE本地的该VPN的所有ERT值称为该VPN的ERT集合。
2.根据权利要求I所述的方法,其特征在于,所述将该更新报文中携带的各RT值按VPN分类并作为CE侧RT集合存储,之前,所述方法进一步包括 当该PE确定本地已存储该VPN的CE侧RT集合时,若当前接收到的更新报文中的所有RT值,与本地存储的该VPN的CE侧RT集合中的RT值相比较,有变化时,更新本地存储的CE侧RT集合,并确定该VPN的CE侧RT集合是否为本地该VPN的ERT集合的子集,如果是,将是子集值赋值给该VPN的CE侧第一标记;否则,将不是子集值赋值给该VPN的CE侧第一标记; 当该PE确定本地未存储该VPN的CE侧RT集合时,执行所述将该更新报文中携带的各RT值按VPN分类并作为CE侧RT集合存储步骤,并确定该VPN的CE侧RT集合是否为本地该VPN的ERT集合的子集,如果是,将是子集值赋值给该VPN的CE侧第一标记;否则,将不是子集值赋值给该VPN的CE侧第一标记。
3.根据权利要求2所述的方法,其特征在于,所述方法进一步包括 当该PE确定本地与该VPN相同的CE侧RT集合不是本地修改后的当前的该VPN的ERT集合的子集时,将不是子集值赋值给该VPN的CE侧第二标记;当本地与该VPN相同的CE侧RT集合是本地修改后的当前的该VPN的ERT集合的子集时,将是子集值赋值给该VPN的CE侧第二标记; 当该PE确定CE侧第一标记为不是子集值,且CE侧第二标记为是子集值时,将本地存储的CE侧的RT值作为RT生成更新报文,向PE侧发送,并将CE侧第二标记的值赋值给该VPN的CE侧第一标记; 当该PE确定CE侧第一标记为是子集值,且CE侧第二标记为不是子集值时,将本地修改后的当前的该VPN的ERT集合中的ERT值作为RT值生成更新报文,向PE侧发送,并将CE侧第二标记的值赋值给该VPN的CE侧第一标记; 当该PE确定CE侧第一标记和CE侧第二标记均为是子集值或均为不是子集值时,不做任何处理。
4.根据权利要求I所述的方法,其特征在于,所述方法进一步包括该PE接收对端PE发送的更新报文,将该更新报文中携带的各RT值作为PE侧RT集合存储; 当该PE确定与该VPN相同的PE侧RT集合中RT值,与本地修改后的当前的该VPN的入方向扩展团体属性IRT集合中的IRT值不存在匹配,且与修改前的本地该VPN的IRT集合中的IRT值存在匹配时,或,当与该VPN相同的PE侧RT集合中的RT值,与本地修改后的当前的该VPN的IRT集合中IRT值存在匹配,且与修改前的本地该VPN的IRT集合中的IRT值不存在匹配时,向PE侧发送路由刷新route-refresh报文; 当该PE确定与该VPN相同的PE侧RT集合中的RT值,与本地修改后的当前的该VPN的IRT集合中的IRT值不存在匹配,且与修改前的本地该VPN的IRT集合中的IRT值不存在匹配时,或,当本地与该VPN相同的PE侧RT集合中的RT值,与本地修改后的当前的该VPN的IRT集合中的IRT值存在匹配,且与修改前的本地该VPN的IRT集合中的IRT值存在匹配时,不做任何处理; 其中,该PE本地的该VPN的所有IRT值称为该VPN的IRT集合。
5.根据权利要求4所述的方法,其特征在于,所述将该更新报文中携带的各RT值作为PE侧RT集合存储,之前,所述方法进一步包括 当该PE确定本地已存储该VPN的PE侧RT集合时,若当前接收到的更新报文中的RT值,与本地该VPN的PE侧RT集合中的RT值相比较,有变化时,更新本地存储的PE侧RT集合,并确定该更新报文中该VPN的PE侧RT集合中的RT值与本地该VPN的IRT集合中的IRT值是否存在匹配,如果是,将存在匹配值赋值给该VPN的PE侧第一标记;否则,将不存在匹配值赋值给该VPN的PE侧第一标记; 当该PE确定本地未存储该VPN的PE侧RT集合时,执行所述将该更新报文中携带的各RT值作为PE侧RT集合存储步骤,并确定任一 VPN的PE侧RT集合中的RT值,是否与本地该VPN的IRT集合中的IRT值存在匹配,如果是,将存在匹配值赋值给该VPN的PE侧第一标记;否则,将不存在匹配值赋值给该VPN的PE侧第一标记。
6.根据权利要求5所述的方法,其特征在于,所述方法进一步包括 当该PE确定本地与该VPN相同的PE侧RT集合中的RT值,与本地修改后的当前的该VPN的IRT集合中的IRT值不存在匹配时,将不存在匹配值赋值给该VPN的PE侧第二标记;当本地与该VPN相同的PE侧RT集合中的RT值,与本地修改后的当前的该VPN的IRT集合中的IRT值存在匹配时,将存在匹配值赋值给该VPN的PE侧第二标记; 当该PE确定PE侧第一标记为不存在匹配值,且PE侧第二标记为存在匹配值时;或,PE侧第一标记为存在匹配值,且PE侧第二标记为不存在匹配值时,向PE侧发送路由刷新报,并将PE侧第二标记的值赋值给该VPN的PE侧第一标记; 当该PE确定PE侧第一标记和PE侧第二标记均为存在匹配值,或均为不存在匹配值时,不做任何处理。
7.一种服务提供商网络边缘设备PE,可应用于基于因特网协议版本6的多协议标签交换三层虚拟专用网络6VPE组网中,该PE与在该6VPE组网中同其相连的用户网络边缘设备CE建立边界网关协议BGP多实例邻居,并与对端PE建立多协议内部网关边界协议MP-IBGP邻居,其特征在于,该PE包括接收单元、存储单元、修改单元、确定单元和处理单元;所述接收单元,用于接收同本PE建立BGP邻居的各CE发送的更新update报文;所述存储单元,用于将所述接收单元接收的更新报文中携带的各扩展团体属性RT值按虚拟专用网络VPN分类并作为CE侧RT集合存储;存储本地VPN的出方向扩展团体属性ERT集合;存储本PE本地的任一 VPN的ERT集合; 所述修改单元,用于修改所述存储单元中存储的本地任一 VPN的ERT ; 所述确定单元,用于确定所述存储单元中与该VPN相同的CE侧RT集合,是否所述修改单元修改后的当前的该VPN的ERT集合的子集;与该VPN相同的CE侧RT集合,是否是所述修改前的当前的该VPN的ERT集合的子集; 所述处理单元,用于当所述确定单元确定与该VPN相同的CE侧RT集合,不是所述修改单元修改后的当前的该VPN的ERT集合的子集,且是修改前的本地该VPN的ERT集合的子集时,将本地修改后的当前的该VPN的ERT集合中的ERT值作为RT值生成更新报文,并向PE侧发送;当所述确定单元确定与该VPN相同的CE侧RT集合是本地修改后的当前的该VPN的ERT集合的子集,且不是修改前的本地该VPN的ERT集合的子集时,将本地存储的CE侧RT集合中的RT值作为RT值生成更新报文,并向PE侧发送;当所述确定单元确定与该VPN相同的CE侧RT集合不是本地修改后的当前的该VPN的ERT集合的子集,且不是修改前的本地该VPN的ERT集合的子集时,或,当与该VPN相同的CE侧RT集合是本地修改后的当前的该VPN的ERT集合的子集,且是修改前的本地该VPN的ERT集合的子集时,不做任何操作。
8.根据权利要求7所述的PE,其特征在于, 所述确定单元,进一步用于确定本地是否已存储该VPN的CE侧RT集合;确定当前接收到的更新报文中的所有RT值,与本地存储的该VPN的CE侧RT集合中的RT值相比较是否有变化;确定任一 VPN的CE侧RT集合是否为本地该VPN的ERT集合的子集; 所述存储单元,进一步用于当所述确定单元确定本地已存储该VPN的CE侧RT集合,且当前接收到的更新报文中的所有RT值,与本地存储的该VPN的CE侧RT集合中的RT相比较,有变化时,更新本地存储的CE侧RT集合,并触发所述确定单元确定该VPN的CE侧RT集合是否为本地该VPN的ERT集合的子集的操作;当所述确定单元确定本地未存储该VPN的CE侧RT集合时,执行所述将该更新报文中携带的各RT值按VPN分类并作为CE侧RT集合存储操作;并触发所述确定单元确定当前接收到的更新报文中的所有RT值,与本地存储的该VPN的CE侧RT集合中的RT值相比较是否有变化的操作; 所述处理单元,进一步用于当所述确定单元确定该VPN的CE侧RT集合为本地该VPN的ERT集合的子集时,将是子集值赋值给该VPN的CE侧第一标记;当所述确定单元确定该VPN的CE侧RT集合不为本地该VPN的ERT集合的子集时,将不是子集值赋值给该VPN的CE侧第一标记。
9.根据权利要求8所述的PE,其特征在于, 所述存储单元,进一步当所述确定单元确定本地与该VPN相同的CE侧RT集合不是本地修改后的当前的该VPN的ERT集合的子集时,将不是子集值赋值给该VPN的CE侧第二标记;当所述确定单元确定本地与该VPN相同的CE侧RT集合是本地修改后的当前的该VPN的ERT集合的子集时,将是子集值赋值给该VPN的CE侧第二标记;所述处理单元,进一步用于当所述存储单元中CE侧第一标记为不是子集值,且CE侧第二标记为是子集值时,将本地存储的CE侧的RT值作为RT生成更新报文,向PE侧发送,并将CE侧第二标记的值赋值给该VPN的CE侧第一标记;当所述存储单元中CE侧第一标记为是子集值,且CE侧第二标记为不是子集值时,将本地修改后的当前的该VPN的ERT集合中的ERT值作为RT值生成更新报文,向PE侧发送,并将CE侧第二标记的值赋值给该VPN的CE侧第一标记;当所述存储单元中CE侧第一标记和CE侧第二标记均为存在匹配值或均为不存在匹配值时,不做任何操作。
10.根据权利要求7所述的PE,其特征在于, 所述接收单元,进一步用于接收对端PE发送的更新报文; 所述存储单元,进一步用于将所述接收单元接收的更新报文中携带的各RT值作为PE侧RT集合存储;存储本PE本地任一 VPN的入方向扩展团体属性IRT集合; 所述修改单元,进一步用于修改所述存储单元中存储的任一 VPN的IRT集合; 所述确定单元,进一步用于确定与该VPN相同的PE侧RT集合中RT值,与本地修改后的当前的该VPN的IRT集合中的IRT值是否存在匹配;与该VPN相同的PE侧RT集合中RT值,与本地修改前的当前的该VPN的IRT集合中的IRT值是否存在匹配; 所述处理单元,进一步用于当所述确定单元确定与该VPN相同的PE侧RT集合中RT值,与本地修改后的当前的该VPN的IRT集合中的IRT值不存在匹配,且与修改前的本地该VPN的IRT集合中的IRT值存在匹配时,或,当与该VPN相同的PE侧RT集合中的RT值,与本地修改后的当前的该VPN的IRT集合中IRT值存在匹配,且与修改前的本地该VPN的IRT集合中的IRT值不存在匹配时,向PE侧发送路由刷新route-refresh报文;当所述确定单元确定与该VPN相同的PE侧RT集合中的RT值,与本地修改后的当前的该VPN的IRT集合中的IRT值不存在匹配,且与修改前的本地该VPN的IRT集合中的IRT值不存在匹配时,或,当本地与该VPN相同的PE侧RT集合中的RT值,与本地修改后的当前的该VPN的IRT集合中的IRT值存在匹配,且与修改前的本地该VPN的IRT集合中的IRT值存在匹配时,不做任何操作。
11.根据权利要求10所述的PE,其特征在于, 所述确定单元,进一步用于确定本地是否已存储该VPN的PE侧RT集合;确定当前接收到的更新报文中的所有RT值,与本地存储的该VPN的PE侧RT集合中的RT值相比较,是否有变化;确定任一 VPN的PE侧RT集合中的RT值,与本地该VPN的IRT集合中的IRT值是否存在匹配; 所述存储单元,进一步用于当所述确定单元确定本地已存储该VPN的PE侧RT集合,且当前接收到的更新报文中的所有RT值,与本地存储的该VPN的PE侧RT集合中的RT相比较,有变化时,更新本地存储的PE侧RT集合,并触发所述确定单元确定该更新报文中该VPN的PE侧RT集合中的RT值与本地该VPN的IRT集合中的IRT值是否存在匹配操作;当所述确定单元确定本地未存储该VPN的PE侧RT集合时,触发所述存储单元执行将该更新报文中携带的各RT值按VPN分类并作为PE侧RT集合存储操作;并触发所述确定单元确定该更新报文中该VPN的PE侧RT集合中的RT值与本地该VPN的IRT集合中的IRT值是否存在匹配操作; 所述处理单元,进一步用于当所述确定单元确定该VPN的PE侧RT集合中的RT值,与本地该VPN的IRT集合中的IRT值存在匹配时,将存在匹配值赋值给该VPN的PE侧第一标记;当所述确定单元确定该VPN的PE侧RT集合中的RT值,与本地该VPN的IRT集合中的IRT值不存在匹配时,将不存在匹配值赋值给该VPN的PE侧第一标记。
12.根据权利要求11所述的PE,其特征在于, 所述存储单元,进一步用于当所述确定单元确定本地与该VPN相同的PE侧RT集合中的RT值,与本地修改后的当前的该VPN的IRT集合中的IRT值不存在匹配时,将不存在匹配值赋值给该VPN的PE侧第二标记;当所述确定单元确定本地与该VPN相同的PE侧RT集合中的RT值,与本地修改后的当前的该VPN的IRT集合中的IRT值存在匹配时,将存在匹配值赋值给该VPN的PE侧第二标记; 所述处理单元,进一步用于当所述存储单元中存储的PE侧第一标记为不存在匹配值,且PE侧第二标记为存在匹配值时;或,PE侧第一标记为存在匹配值,且PE侧第二标记为不存在匹配值时,向PE侧发送路由刷新报,并将PE侧第二标记的值赋值给该VPN的PE侧第一标记;当所述存储单元中存储的PE侧第一标记和PE侧第二标记均为不存在匹配值,或均为存在匹配值时,不做任何操作。
全文摘要
本申请公开了一种减少更新报文的方法,该方法包括当PE修改本地任一VPN的ERT的值时,通过与本地存储的该VPN的CE侧的RT值进行比较,并根据比较结果在本地直接进行处理,而不向CE侧设备发送路由刷新报文。基于同样的发明构思,本申请还提出一种服务提供商网络边缘设备,能够使没有必要发送的更新报文不发送,从而提高带宽和CPU的使用率。
文档编号H04L12/46GK102932231SQ201210494940
公开日2013年2月13日 申请日期2012年11月28日 优先权日2012年11月28日
发明者刘永奎, 王伟 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1