一种MAC地址表项的处理方法及装置与流程

文档序号:25437087发布日期:2021-06-11 21:54阅读:87来源:国知局
一种MAC地址表项的处理方法及装置与流程

本发明涉及网络技术领域,尤其涉及一种mac地址表项的处理方法及装置。



背景技术:

在vxlan(virtualextensiblelocalareanetwork,虚拟可扩展局域网)网络evn(ethernetvirtualnetwork)多归属方案中存在single-active模式,single-active模式的核心是只保留一条链路用于转发,其余链路均处于阻塞状态,实现多链路备份的功能。通过df(designatedforwarder,指定转发者)选举来决定哪一条链路用于转发流量。连接同一个ce(customeredge,用户边缘)的多个vtep((vxlantunnelendpoint,vxlan隧道端点)组成一个冗余组,为了能够根据设备及链路状态自动调整流量的分担情况,需要实现vtep设备的自动发现(vtep的退出或者加入)和df选举。

目前,在有新的vtep设备加入evn多归属网络时,会触发df重新选举,若重新选举后的新主设备不是原有的vtep设备,原主设备将删除ce的mac地址表项,新主设备发送ce的路由信息给所有其余vtep。然而,在对现有技术的研究和实践过程中,发明人发现:在df重新选举后到更新的路由信息接收之前,由于其余vtep中的本地mac地址表项中ce的路由信息的下一跳仍是原主设备的ip地址,若此时有数据包发送给ce,vtep仍然把数据包发送给原主设备,因此,造成了丢包的问题。



技术实现要素:

本发明所要解决的技术问题是针对现有技术的上述不足,提供一种mac地址表项的处理方法及装置,用以解决相关技术中df重新选举后到更新的路由信息接收之前由于存在路由漏洞,容易造成丢包的问题。

第一方面,本发明实施例提供一种mac地址表项的处理方法,应用于evn多归属网络中重新选举后由主设备变更为从设备的原主设备,所述方法包括:

在接收到新主设备发送的用于指示暂缓删除本地mac地址表项中多归属下联设备的mac地址表项的处理信息之前,或者,在预设定时器定时结束之前,暂缓删除本地mac地址表项中多归属下联设备的mac地址表项,并暂缓阻塞多归属下联设备链路的流量;

在接收到所述新主设备发送的所述处理信息之后,或者,在所述定时器定时结束之后,删除所述本地mac地址表项中多归属下联设备的mac地址表项,并阻塞所述多归属下联设备链路的流量。

优选地,在所述暂缓删除本地mac地址表项中多归属下联设备的mac地址表项,以及暂缓阻塞多归属下联设备链路的流量期间,所述方法还包括:

接收其他vtep设备发送给所述多归属下联设备的数据包;

根据所述本地mac地址表项中所述多归属下联设备的mac地址表项转发所述数据包。

优选地,所述在预设定时器定时结束之前,所述方法还包括:

当检测到重新选举后的主设备不为本设备时,设置并启动所述定时器。

第二方面,本发明实施例提供一种mac地址表项的处理方法,应用于evn多归属网络中重新选举出的新主设备,所述方法包括:

向与本设备预先建立bgp邻居的不属于多归属网络的所有其他vtep设备发送路由更新信息,以使所述其他vtep设备接收到所述路由更新信息后将自身本地mac地址表项中到原主设备多归属下联设备的mac地址表项中的下一跳地址更新为新主设备的ip地址;

若接收到所述其他vtep设备发送给所述多归属下联设备的数据包,或者基于所述路由更新信息反馈的更新成功信息,则向原主设备发送处理信息,以使所述原主设备删除本地mac地址表项中多归属下联设备的mac地址表项,并阻塞所述多归属下联设备链路的流量。

优选地,所述向与本设备预先建立bgp邻居的不属于多归属网络的所有其他vtep设备发送路由更新信息之前,所述方法还包括:

分别与所述其余vtep设备建立bgp邻居。

第三方面,本发明实施例提供一种mac地址表项的处理装置,设置于evn多归属网络中重新选举后由主设备变更为从设备的原主设备,所述装置包括:

暂缓模块,用于在接收到新主设备发送的用于指示暂缓删除本地mac地址表项中多归属下联设备的mac地址表项的处理信息之前,或者,在预设定时器定时结束之前,暂缓删除本地mac地址表项中多归属下联设备的mac地址表项,并暂缓阻塞多归属下联设备链路的流量;

处理模块,与所述暂缓模块连接,用于在接收到所述新主设备发送的所述处理信息之后,或者,在所述定时器定时结束之后,删除所述本地mac地址表项中多归属下联设备的mac地址表项,并阻塞所述多归属下联设备链路的流量。

优选地,还包括:

数据包接收模块,用于接收其他vtep设备发送给所述多归属下联设备的数据包;

数据包转发模块,用于根据所述本地mac地址表项中所述多归属下联设备的mac地址表项转发所述数据包。

优选地,还包括:

定时器模块,用于当检测到重新选举后的主设备不为本设备时,设置并启动所述定时器。

第四方面,本发明实施例提供一种mac地址表项的处理装置,设置于evn多归属网络中重新选举出的新主设备,所述装置包括:

路由更新模块,用于向与本设备预先建立bgp邻居的不属于多归属网络的所有其他vtep设备发送路由更新信息,以使所述其他vtep设备接收到所述路由更新信息后将自身本地mac地址表项中到原主设备多归属下联设备的mac地址表项中的下一跳地址更新为新主设备的ip地址;

处理信息发送模块,与所述路由更新模块连接,用于若接收到所述其他vtep设备发送给所述多归属下联设备的数据包,或者基于所述路由更新信息反馈的更新成功信息,则向原主设备发送处理信息,以使所述原主设备删除本地mac地址表项中多归属下联设备的mac地址表项,并阻塞所述多归属下联设备链路的流量。

优选地,还包括:

bgp邻居建立模块,用于分别与所述其余vtep设备建立bgp邻居。

本发明实施例提供的mac地址表项的处理方法及装置,在重新选举后,evn多归属网络中由主设备变更为从设备的原主设备在接收到新主设备发送的用于指示暂缓删除本地mac地址表项中多归属下联设备的mac地址表项的处理信息之前,或者,在预设定时器定时结束之前,暂缓删除本地mac地址表项中多归属下联设备的mac地址表项,并暂缓阻塞多归属下联设备链路的流量,从而能够保证重新选举期间发送给多归属下联设备的数据包能够正常转发,避免应重新选举而造成丢包的问题。同时,在重新选举后,新主设备向与本设备预先建立bgp邻居的不属于多归属网络的所有其他vtep设备发送路由更新信息,并在接收到其他vtep设备发送给所述多归属下联设备的数据包,或者基于所述路由更新信息反馈的更新成功信息时,向原主设备发送处理信息,以使所述原主设备删除本地mac地址表项中多归属下联设备的mac地址表项,并阻塞所述多归属下联设备链路的流量,从而解决了相关技术中df重新选举后到更新的路由信息接收之前由于存在路由漏洞,容易造成丢包的问题。

附图说明

图1:为本发明实施例的一种mac地址表项的处理方法的组网示意图;

图2:为本发明实施例1的一种mac地址表项的处理方法的流程图;

图3:为本发明实施例2的一种mac地址表项的处理方法的流程图;

图4:为本发明实施例3的一种mac地址表项的处理装置的结构示意图;

图5:为本发明实施例4的一种mac地址表项的处理装置的结构示意图。

具体实施方式

为使本领域技术人员更好地理解本发明的技术方案,下面将结合附图对本发明实施方式作进一步地详细描述。

可以理解的是,此处描述的具体实施例和附图仅仅用于解释本发明,而非对本发明的限定。

可以理解的是,在不冲突的情况下,本发明中的各实施例及实施例中的各特征可相互组合。

可以理解的是,为便于描述,本发明的附图中仅示出了与本发明相关的部分,而与本发明无关的部分未在附图中示出。

可以理解的是,本发明的实施例中所涉及的每个单元、模块可仅对应一个实体结构,也可由多个实体结构组成,或者,多个单元、模块也可集成为一个实体结构。

可以理解的是,在不冲突的情况下,本发明的流程图和框图中所标注的功能、步骤可按照不同于附图中所标注的顺序发生。

可以理解的是,本发明的流程图和框图中,示出了按照本发明各实施例的系统、装置、设备、方法的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可代表一个单元、模块、程序段、代码,其包含用于实现规定的功能的可执行指令。而且,框图和流程图中的每个方框或方框的组合,可用实现规定的功能的基于硬件的系统实现,也可用硬件与计算机指令的组合来实现。

可以理解的是,本发明实施例中所涉及的单元、模块可通过软件的方式实现,也可通过硬件的方式来实现,例如单元、模块可位于处理器中。

为了使本领域的技术人员更好地理解本发明实施例中的技术方案,下面先对本发明实施例中涉及的部分技术术语进行简单说明。

evn:是一种基于vxlan隧道的二层网络互联vpn(virtualprivatenetwork,虚拟专用网络)技术。evn技术通过mp-bgp(multi-protocolbordergatewayprotocol,多协议边界网关协议)协议来传递二层网络间的mac地址信息,通过生成的mac地址表项进行二层报文转发。

vxlan(virtualextensiblelan,可扩展虚拟局域网络):是基于ip网络、采用“macinudp”封装形式的二层vpn技术。vxlan可以基于已有的服务提供商或企业ip网络,为分散的物理站点提供二层互联,并能够为不同的租户提供业务隔离。

vtep(vxlantunnelendpoint,vxlan隧道端点):是vxlan的边缘设备,vxlan的相关处理都在vtep上进行,例如识别以太网数据帧所属的vxlan、基于vxlan对数据帧进行二层转发、封装/解封装报文等,vtep可以是一台独立的物理设备,也可以是虚拟机所在的服务器。

vm(virtualmachine,虚拟机):在一台服务器上可以创建多台虚拟机,不同的虚拟机可以属于不同的vxlan。属于相同vxlan的虚拟机处于同一个逻辑二层网络,彼此之间二层互通;属于不同vxlan的虚拟机之间二层隔离。vxlan通过vxlanid来标识,vxlanid又称vni(vxlannetworkidentifier,vxlan网络标识符),其长度为24比特。

图1示出了本发明实施例的一种mac地址表项的处理方法的组网示意图。如图1所示,ce1设备多归属连接到vtep1和vtep2,vtep1和vtep2建立bgp邻居关系后,通过bgpupdate信息发送以太网段路由信息的过程进行df的选举,vtep1被选举为主设备后,vtep1向vtep3发送ce1下联的所有mac地址信息,vtep3接收到ce1下联的所有mac地址信息后,在本地mac地址表项中建立到ce1下联所有mac的地址表项,下一跳是vtep1。当vtep4也连接到ce1,并通过bgpupdate信息发送以太网段路由信息给vtep1和vtep2进行df的重新选举。df重新选举后vtep4为主设备,vtep1从主设备变为从设备,vtep1将删除ce1的mac地址表项,vtep4发布ce1的路由信息给所有其余vtep。

在对现有技术的研究和实践过程中,发明人发现:在vtep4发布ce1的路由信息给所有其余vtep之后,其余vtep接收到vtep4发送的ce1的路由信息之前,由于本地mac地址表项中ce1的路由信息的下一跳是vtep1的ip地址,因此,若此时有数据包发送给ce1时,vtep仍然把数据包发送给vtep1,而vtep1的ce1的mac地址表项已经删除,并阻塞下联到ce1的链路,因此,vtep1把发送给ce1的数据包丢弃,这样在df重新选举后到更新的路由信息接收之前存在路由漏洞,造成丢包情况。

实施例1:

本实施例提供一种mac地址表项的处理方法,应用于evn多归属网络中重新选举后由主设备变更为从设备的原主设备,如图2所示,该方法包括:

步骤s102:在接收到新主设备发送的用于指示暂缓删除本地mac地址表项中多归属下联设备的mac地址表项的处理信息之前,或者,在预设定时器定时结束之前,暂缓删除本地mac地址表项中多归属下联设备的mac地址表项,并暂缓阻塞多归属下联设备链路的流量;

步骤s104:在接收到新主设备发送的处理信息之后,或者,在定时器定时结束之后,删除本地mac地址表项中多归属下联设备的mac地址表项,并阻塞多归属下联设备链路的流量。

在本实施例中,当evn多归属网络中有新的vtep设备加入或旧的vtep设备退出,均可以触发df重新选举,evn利用以太网段路由信息的交互来实现该功能。vtep之间bgp邻居关系建立后,如果在vtep的接口上配置了esi,且接口的状态为up,就开始了通过bgpupdate信息发送以太网段路由信息的过程。以太网段路由信息包含在update报文的nlri字段中,bgp的update报文中携带了es-import扩展团体属性,根据以太网段路由信息选举出df后,原主设备暂缓删除本地mac地址表项中多归属下联设备的mac地址表项,暂缓阻塞多归属下联设备链路的流量,从而能够在接收到其他vtep设备发送给多归属下联设备的数据包时,保证该数据包能够正常转发,避免应重新选举而造成丢包的问题。

在本实施例中,如图1所示,重新选举后作为原主设备的vtep1在接收到新主设备vtep4发送的处理信息之前先不删除ce1下联的所有mac地址表项信息,也不阻塞下联到ce1链路的流量。同时,为了避免因vtep4发送的信息丢包而造成vtep1无期限的等待,vtep1同时启动一个定时器,定时器的定时时长可以根据实际情况进行设置,比如可以根据接收处理信息预计所需的反馈时长进行设置,或者根据其他vtep设备接收路由更新信息预计所需的时长进行设置。

在本实施例中,在暂缓期间,若原主设备接收到其他vtep设备发送给多归属下联设备的数据包,则根据暂缓删除的本地mac地址表项中多归属下联设备的mac地址表项转发该数据包。如图1所示,当vtep3有数据包发送给ce1下联的mac地址时,比如发送给vm1,vtep3根据本地mac地址表项中vm1的路由信息把数据包发送给vtep1,vtep1接收到数据包后,根据本地mac地址表项中vm1的地址表项信息,把数据包发送给ce1,再由ce1发送给vm1。

在本实施例中,重新选举后作为新主设备的vtep设备向与自身预先建立bgp邻居的不属于多归属网络的所有其他vtep设备发送路由更新信息,以使其他vtep设备接收到路由更新信息后将自身本地mac地址表项中到原主设备多归属下联设备的mac地址表项中的下一跳地址更新为新主设备的ip地址,同时,在接收到其他vtep设备发送给多归属下联设备的数据包,或者基于路由更新信息反馈的更新成功信息时,则向原主设备发送处理信息,以使原主设备删除本地mac地址表项中多归属下联设备的mac地址表项,并阻塞多归属下联设备链路的流量。如图1所示,vtep4事先与vtep1、vtep2和vtep3之间相互建立bgp邻居,vtep1和vtep2属于多归属网络,vtep3不属于多归属网络,vtep4向vtep3发送ce1下联的所有mac地址信息的路由更新信息,vtep3接收到路由更新信息后,把本地mac地址表项中到ce1下联的所有mac地址信息的下一跳更新为vtep4的ip地址,从而在后续vtep3将发送给ce1下联的mac地址的数据包发送到vtep4,而不是vtep1,vtep3在更新完成后可以向vtep4发送更新成功信息。vtep4可以根据接收到的vtep3发送给ce1的数据包,或者更新成功信息向属于多归属网络中的所有其他vtep设备(如vtep1和vtep2)发送处理信息,该处理信息用于指示将ce1下联的所有mac地址信息删除,作为原主设备的vtep1接收到该信息后,删除ce1下联的所有mac地址表项信息,并阻塞下联到ce1链路的流量。

在本实施例中,如图1所示,如果vtep1的定时器超时,vtep1一直没有接收到vtep4发送的用于指示删除ce1下联的mac地址信息的处理信息,则证明vtep4发送的信息丢包了,此时,vtep1删除ce1下联的所有mac地址表项信息,并阻塞下联到ce1链路的流量。

本实施例提供的mac地址表项的处理方法,在重新选举后,evn多归属网络中由主设备变更为从设备的原主设备在接收到新主设备发送的用于指示暂缓删除本地mac地址表项中多归属下联设备的mac地址表项的处理信息之前,或者,在预设定时器定时结束之前,暂缓删除本地mac地址表项中多归属下联设备的mac地址表项,并暂缓阻塞多归属下联设备链路的流量,从而能够保证重新选举期间发送给多归属下联设备的数据包能够正常转发,避免应重新选举而造成丢包的问题。同时,在重新选举后,新主设备向与本设备预先建立bgp邻居的不属于多归属网络的所有其他vtep设备发送路由更新信息,并在接收到其他vtep设备发送给所述多归属下联设备的数据包,或者基于所述路由更新信息反馈的更新成功信息时,向原主设备发送处理信息,以使所述原主设备删除本地mac地址表项中多归属下联设备的mac地址表项,并阻塞所述多归属下联设备链路的流量,从而解决了相关技术中df重新选举后到更新的路由信息接收之前由于存在路由漏洞,容易造成丢包的问题。

实施例2:

如图3所示,本实施例提供一种mac地址表项的处理方法,应用于evn多归属网络中重新选举出的新主设备,所述方法包括:

步骤s202:向与本设备预先建立bgp邻居的不属于多归属网络的所有其他vtep设备发送路由更新信息,以使其他vtep设备接收到路由更新信息后将自身本地mac地址表项中到原主设备多归属下联设备的mac地址表项中的下一跳地址更新为新主设备的ip地址;

步骤s204:若接收到其他vtep设备发送给多归属下联设备的数据包,或者基于路由更新信息反馈的更新成功信息,则向原主设备发送处理信息,以使原主设备删除本地mac地址表项中多归属下联设备的mac地址表项,并阻塞多归属下联设备链路的流量。

可选地,向与本设备预先建立bgp邻居的不属于多归属网络的所有其他vtep设备发送路由更新信息之前,方法还可以包括:

分别与其余vtep设备建立bgp邻居。

实施例3:

如图4所示,本实施例提供一种mac地址表项的处理装置,设置于evn多归属网络中重新选举后由主设备变更为从设备的原主设备,所述装置包括:

暂缓模块21,用于在接收到新主设备发送的用于指示暂缓删除本地mac地址表项中多归属下联设备的mac地址表项的处理信息之前,或者,在预设定时器定时结束之前,暂缓删除本地mac地址表项中多归属下联设备的mac地址表项,并暂缓阻塞多归属下联设备链路的流量;

处理模块22,与暂缓模块21连接,用于在接收到新主设备发送的处理信息之后,或者,在定时器定时结束之后,删除本地mac地址表项中多归属下联设备的mac地址表项,并阻塞多归属下联设备链路的流量。

可选地,还可以包括:

数据包接收模块,用于接收其他vtep设备发送给多归属下联设备的数据包;

数据包转发模块,用于根据本地mac地址表项中多归属下联设备的mac地址表项转发数据包。

可选地,还可以包括:

定时器模块,用于当检测到重新选举后的主设备不为本设备时,设置并启动定时器。

实施例4:

如图5所示,本实施例提供一种mac地址表项的处理装置,设置于evn多归属网络中重新选举出的新主设备,所述装置包括:

路由更新模块31,用于向与本设备预先建立bgp邻居的不属于多归属网络的所有其他vtep设备发送路由更新信息,以使其他vtep设备接收到路由更新信息后将自身本地mac地址表项中到原主设备多归属下联设备的mac地址表项中的下一跳地址更新为新主设备的ip地址;

处理信息发送模块32,与路由更新模块31连接,用于若接收到其他vtep设备发送给多归属下联设备的数据包,或者基于路由更新信息反馈的更新成功信息,则向原主设备发送处理信息,以使原主设备删除本地mac地址表项中多归属下联设备的mac地址表项,并阻塞多归属下联设备链路的流量。

可选地,还可以包括:

bgp邻居建立模块,用于分别与其余vtep设备建立bgp邻居。

实施例2至实施例4提供的mac地址表项的处理方法及装置,在重新选举后,evn多归属网络中由主设备变更为从设备的原主设备在接收到新主设备发送的用于指示暂缓删除本地mac地址表项中多归属下联设备的mac地址表项的处理信息之前,或者,在预设定时器定时结束之前,暂缓删除本地mac地址表项中多归属下联设备的mac地址表项,并暂缓阻塞多归属下联设备链路的流量,从而能够保证重新选举期间发送给多归属下联设备的数据包能够正常转发,避免应重新选举而造成丢包的问题。同时,在重新选举后,新主设备向与本设备预先建立bgp邻居的不属于多归属网络的所有其他vtep设备发送路由更新信息,并在接收到其他vtep设备发送给所述多归属下联设备的数据包,或者基于所述路由更新信息反馈的更新成功信息时,向原主设备发送处理信息,以使所述原主设备删除本地mac地址表项中多归属下联设备的mac地址表项,并阻塞所述多归属下联设备链路的流量,从而解决了相关技术中df重新选举后到更新的路由信息接收之前由于存在路由漏洞,容易造成丢包的问题。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1