一种多子接口下运行vrrp的方法及装置的制造方法

文档序号:9828081阅读:1979来源:国知局
一种多子接口下运行vrrp的方法及装置的制造方法
【技术领域】
[0001]本发明涉及网络通信技术领域,尤其涉及一种多子接口下运行VRRP的方法及装置。
【背景技术】
[0002]VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)是应用非常广泛的可以提高局域网可靠性的三层协议。它将局域网内的可以承担网关功能的一组路由器划分在一起,组成一个备份组。备份组由一台Master路由器和多台Backup路由器组成,对外相当于一台虚拟路由器。虚拟路由器具有IP(Internet Protocol,互联网协议)地址,称为Virtual-1P (虚拟IP)地址。局域网内的主机仅需要知道这台虚拟路由器的IP地址,并将其设置为网关的IP地址即可。局域网内的主机通过这台虚拟路由器与外部网络进行通信。
[0003]在多租户云数据中心场景下,租户的VLAN(Virtual Local Area Network,虚拟局域网)/VRF (Virtual Routing Forwarding,虚拟路由转发)数量与VRRP组的数量密切相关,可以认为是一比一对应关系。在动辄上千个VLAN/VRF的应用需求下,每个三层物理接口下可能需要创建上千个子接口,每个子接口绑定到一个VRF,每个VRF对应一个VRRP组,VRRP组的数量将达到上千个。以4k个为例,此时控制平面的处理压力即为4kpps(按每秒钟一个advertise报文计算)。此外,在多个三层物理接口下均使能4k个VRRP组的场景下,CPU(Center Process Unit,中央处理单元)压力将逐级放大,如何降低大量子接口下运行VRRP时CPU的压力成为一个亟待解决的问题。

【发明内容】

[0004]本发明提供一种多子接口下运行VRRP的方法及装置,以解决现有技术中大量子接口下运行VRRP时CPU压力过大的问题。
[0005]根据本发明实施例的第一方面,提供一种多子接口下运行虚拟路由器冗余协议VRRP的方法,所述多个子接口属于同一三层物理接口的子接口,且每一个子接口对应一个VRRP组,所述多个子接口配置有相同的虚拟路由器标识VRID,该方法包括:
[0006]当自身为代理子接口时,确定本子接口的状态;
[0007]当自身为非代理子接口时,共享代理子接口的状态。
[0008]根据本发明实施例的第二方面,提供一种多子接口下运行VRRP的装置,所述多个子接口属于同一三层物理接口的子接口,且每一个子接口对应一个VRRP组,所述多个子接口配置有相同的虚拟路由器标识VRID,该装置对应于一子接口,该装置包括:
[0009]确定单元,用于所述装置对应的子接口为代理子接口时,确定该子接口的状态;
[0010]共享单元,用于当所述装置对应的子接口为非代理子接口时,共享代理子接口的状态。
[0011]应用本发明实施例,通过为属于同一三层物理接口下的多个子接口配置相同的VRID,并为使用该VRID的所有子接口中指定某一虚拟IP对应的子接口为代理子接口,仅有代理子接口需要确定自身的状态,非代理子接口,共享该代理子接口的状态,而不需要按照现有VRRP协议进行相应处理,降低了多子接口下运行VRRP时CPU的压力。
【附图说明】
[0012]图1是本发明实施例提供的一种多子接口下运行VRRP的方法的流程示意图;
[0013]图2是本发明实施例提供的另一种多子接口下运行VRRP的方法的流程示意图;
[0014]图3A是现有技术中一个多子接口下VRRP组配置示意图;
[0015]图3B是本发明实施例提供的一种多子接口下VRRP组配置示意图;
[0016]图4是本发明实施例提供的一种多子接口下运行VRRP的装置的结构示意图;
[0017]图5是本发明实施例提供的另一种多子接口下运行VRRP的装置的结构示意图;
[0018]图6是本发明实施例提供的多子接口下运行VRRP的装置所在设备的一种硬件结构图。
【具体实施方式】
[0019]为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
[0020]参见图1,为本发明实施例提供的一种多子接口下运行VRRP的方法,该多个子接口属于同一三层物理接口的子接口,且每一个子接口对应一个VRRP组,该多个子接口配置有相同的VRID,如图1所示,该方法可以包括:
[0021]步骤101、当自身为代理子接口时,确定本子接口的状态。
[0022]步骤102、当自身为非代理子接口时,共享代理子接口的状态。
[0023]在本发明实施例中,可以通过为属于同一三层物理接口下的该多个子接口配置相同的VRID (Virtual Route IDentif ier,虚拟路由标识),并指定使用该VRID的子接口中某一子接口为代理子接口(可以通过指定虚拟IP的方式指定代理子接口),使用该VRID的其它子接口共享该代理子接口的状态。
[0024]需要注意的是,在本发明实施例中,子接口的VRID、子接口的虚拟IP,以及子接口的状态均指子接口对应的VRRP组VRID、虚拟IP以及状态,本发明实施例后续不再复述。
[0025]本发明实施例中,对于代理子接口,其需要按照现有VRRP协议进行相应处理,如进行通告、选举、抢占、封装等一系列处理,而对于非代理子接口,其不需要按照现有VRRP协议进行相应处理,而是可以直接共享该代理子接口的状态。
[0026]本发明实施例中,共享代理子接口的状态,可以包括:
[0027]当代理子接口的状态为Initialize(初始化)时,将自身的状态也切换为Initialize ;
[0028]当代理子接口的状态为Master (主)时,将自身的状态也切换为Master ;
[0029]当代理子接口的状态为Backup (备用)时,将自身的状态也切换为Backup。
[0030]具体的,在本发明实施例中,子接口的状态可以包括Initialize、Master以及Backup,其中,代理子接口的状态按照现有VRRP协议通过状态机选举出来,而其它的与代理子接口 VRID相同的子接口则不需要进行选举过程,直接共享代理子接口的状态。
[0031]在一种实施方式中,为了防止大量子接口同时随代理子接口的状态迀移而迀移,对CPU产生负面影响,共享代理子接口的状态的其它子接口在监测到代理子接口状态变化后,可以等待预设时间阈值内的一个预设时间后,再进行状态迀移。
[0032]例如,可以设置一个随机定时器(Random_timer),其定时时长为(0,tn);其中,tn为预设时间阈值,可以根据具体应用场景设定,如50ms,10ms等。设置该随机定时器之后,当共享代理子接口的状态的其它子接口需要进行状态迀移时,可以随机等待一个(0,tn)区间内的时间,再进行状态迀移。
[0033]本发明实施例中,可以分别针对三层物理接口下各子接口配置相应的进程,代理子接口之外的其它子接口可以通过该进程实现监控代理子接口的状态,并根据代理子接口的状态的迀移而进行状态迀移。
[0034]本发明实施例中,考虑到当物理接口 UP时,该物理接口下的各子接口一般会均处于可用状态,而当物理接口 Down时,该物理接口下的各子接口将均不可用,即同一物理接口下各子接口的可靠性基本上是一致的,因此,可以不需要为同一物理接口下的每一个子接口都建立一整套可靠性的检测方法,而是可以通过设定一个代理子接口,由代理子接口负责完整的协议交互,而该物理接口下的其它子接口共享该代理子接口的状态,无需每个子接口均进行VRRP协议的处理,以达到减轻CPU负担的目的。参见图2,为本发明实施例提供的另一种多子接口下运行VRRP的方法,该多个子接口属于同一三层物理接口的子接口,且每一个子接口对应一个VRRP组,该多个子接口配置有相同的VRID,如图1所示,该方法可以包括:
[0035]步骤201、接收代理子接口配置指令。
[0036]本发明实施例中,可以通过为属于同一三层物理接口下的该多个子接口配置相同的VRID,并指定使用该VRID的子接口中某一子接口为代理子接口(可以通过指定虚拟IP的方式指定代理子接口),使用该VRID的其它子接口共享该代理子接口的状态。
[0037]步骤202、根据代理子接口配置指令确定自身是否为代理子接口。若是,则转至步骤203 ;否则,转至步骤204。
[0038]本发明实施例中,代理子接口配置指令中可以包括代理子接口的VRID,以及虚拟IP ;接收到代理子接口配置指令之后,各子接口可以通过比较自身的VRID,以及虚拟IP与代理子接口配置指令中包括的VRID,以及虚拟IP,确定自身是否为代理子接口。
[0039]当某子接口确定自身的VRID,以及虚拟IP与代理子接口配置指令中包括的代理子接口的VRID,以及虚拟IP分别相同时,确定自身为代理子接口 ;当某子接口确定自身的VRID,以及虚拟IP与代理子接口配置指令中包括的代理子接口的VRID以及虚拟IP部分不同(VRID不同或虚拟IP不同)或全部不同时
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1