本申请涉及通信技术,尤其涉及一种mac地址同步方法及装置。
背景技术:
以太网虚拟专用网络(ethernetvirtualprivatenetwork,evpn)是一种二层虚拟专用网络(vpn)技术,控制平面采用多协议-边界网关协议(mp-bgp)通告evpn路由信息,数据平面采用虚拟可扩展局域网(vxlan)封装方式转发报文。
目前,evpn在分布式链路聚合(mlag)应用场景中,存在如图1所示的一种单挂应用,其中,用户网络边缘设备(ce)f和ceg两台虚拟机(vm)分别下挂在分布式聚合系统中两个普通的物理端口上,即分别下挂在vtepb的端口(port)1和vtepc的port2上,对于分布式聚合系统而言,这两个单挂的vm需要在两个vtep之间进行媒体访问控制(mac)地址同步,才能够完成业务通信。
假设,cef的mac地址是a-a-a,则两个vtep之间进行mac地址同步的过程包括:当cef和vtepb之间的链路连接成功(up)时,cef会发送免费地址解析协议(arp)报文,vtepb设备会学习到cef的vxlanmac地址,vxlanmac转发表项的下一跳为port1;vtepb在学习到vxlanmac地址之后,通过mlag协议将该mac转发表项同步给vtepc设备,在vtepc设备上形成a-a-a的转发表项,下一跳为vtepc上的互联网打印协议(ipp)口;当ceg设备需要转发目的mac为a-a-a的流量时,在vtepc上面查询到vxlanmac转发表项,首先通过vtepc设备上的ipp口将流量转发到vtepb,然后通过port1转发到cef。
技术实现要素:
有鉴于此,本申请提供一种mac地址同步方法及装置。
具体地,本申请是通过如下技术方案实现的:
根据本申请实施例的第一方面,提供一种mac地址同步方法,应用于第一虚拟可扩展局域网隧道端点vtep上,所述方法包括:
将所述第一vtep的第一聚合口和第一互联网打印协议ipp口上配置的第一端口的第一tag标识到第一预设虚拟可扩展局域网vxlan标识的第一映射关系通知给同一分布式聚合系统中的第二vtep,以使所述第二vtep在第二vetp的第二聚合口以及第二ipp口上配置所述第一映射关系,所述第二vtep接入设备的第二端口的第二tag标识与所述第一tag标识不同,所述第一端口为所述第一vtep接入设备的端口;
接收所述第二vtep在所述第二ipp口成功配置所述第一映射关系后返回的配置成功消息;
通过所述第一ipp口向所述第二ipp口发送所述第一端口接入设备的第一mac地址。
根据本申请实施例的第二方面,提供一种mac地址同步装置,应用于第一虚拟可扩展局域网隧道端点vtep上,所述装置包括:
通知模块,用于将所述第一vtep的第一聚合口和第一互联网打印协议ipp口上配置的第一端口的第一tag标识到第一预设虚拟可扩展局域网vxlan标识的第一映射关系通知给同一分布式聚合系统中的第二vtep,以使所述第二vtep在第二vetp的第二聚合口以及第二ipp口上配置所述第一映射关系,所述第二vtep接入设备的第二端口的第二tag标识与所述第一tag标识不同,所述第一端口为所述第一vtep接入设备的端口;
消息接收模块,用于接收所述第二vtep在所述第二ipp口成功配置所述通知模块通知的所述第一映射关系后返回的配置成功消息;
地址发送模块,用于根据所述消息接收模块接收的所述配置成功消息通过所述第一ipp口向所述第二ipp口发送所述第一端口接入设备的第一mac地址。
在本申请实施例中,通过将第一vtep的第一聚合口和第一互联网打印协议ipp口上配置的第一端口的第一tag标识到第一预设vxlan标识的第一映射关系通知给同一分布式聚合系统中的第二vtep,使得第二vtep可以在第二vetp的第二聚合口以及第二ipp口上成功配置第一映射关系,即第一ipp口和第二ipp口上配置了相同的映射关系,然后可以通过第一ipp口向第二ipp口发送第一端口接入设备的第一mac地址,从而实现第一vtep到第二vtep的mac地址同步。
附图说明
图1是分布式聚合系统中两个vtep之间进行mac地址同步的过程示意图;
图2是本申请一示例性实施例示出的一种mac地址同步方法的流程图;
图3是本申请一示例性实施例示出的一种分布式聚合系统的组网示意图;
图4是本申请一示例性实施例示出的另一种mac地址同步方法的流程图;
图5是本申请一示例性实施例示出的数据报文转发过程的流程图;
图6是本申请mac地址同步装置所在设备的一种硬件结构图;
图7是本申请一示例性实施例示出的一种mac地址同步装置的框图;
图8是本申请一示例性实施例示出的另一种mac地址同步装置的框图;
图9是本申请一示例性实施例示出的另一种mac地址同步装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1中两个vtep之间之所以可以完成mac地址的同步,是因为port1和port2的标签(tag)标识(id)相同,即port1连接的设备(例如图1中的cef)和port2连接的设备(例如图1中的ceg)属于同一虚拟局域网(vlan),两个vtep之间可以通过ipp口同步mac转发表项,但是如果它们的tag标识不同,则port1连接的设备(例如图1中的cef)和port2连接的设备(例如图1中的ceg)属于不同的vlan,两个vtep之间无法通过ipp口完成mac地址同步。
在本申请提供的mlag分布式聚合系统中,为了使接入设备的端口tag标识不同的vtep之间可以同步mac地址,第一vtep将自己的第一聚合口和第一ipp口上配置的第一端口的第一tag标识到第一预设vxlan标识的第一映射关系通知给同一分布式聚合系统中的第二vtep,这样,第二vtep可以在第二vetp的第二聚合口以及第二ipp口上配置该第一映射关系,因此,第一vtep可以在接收第二vtep返回的配置成功消息后,通过第一ipp口向第二ipp口发送第一端口接入设备的第一mac地址,即实现由第一vtep到第二vtep的mac地址同步。与上述过程类似,第一vtep在接收第二vtep发送的第二vtep接入设备的第二端口对应的第二tag标识到第二预设vxlan标识的第二映射关系后,在第一聚合口和第一ipp口上配置该第二映射关系,从而可以通过第一ipp口接收第二端口接入设备的第二mac地址,即实现由第二vtep到第一vtep的mac地址同步。本申请实施例中通过在第一ipp口和第二ipp口上配置相同的映射关系(例如在第一ipp口和第二ipp口上都配置第一映射关系或者第二映射关系),即将不同的tag都映射到相同的vxlan,从而可以通过第一ipp口和第二ipp口实现不同vtep之间的双向mac地址同步。下面结合具体实施例对本申请的实现过程进行详细描述。
图2是本申请一示例性实施例示出的一种mac地址同步方法的流程图,该实施例应用于第一vtep上,如图2所示,该mac地址同步方法包括:
步骤s201,将第一vtep的第一聚合口和第一ipp口上配置的第一端口的第一tag标识到第一预设vxlan标识的第一映射关系通知给同一分布式聚合系统中的第二vtep,以使第二vtep在第二vetp的第二聚合口以及第二ipp口上配置第一映射关系。
其中,第一端口为第一vtep接入设备的端口,第二vtep接入设备的第二端口的第二tag标识与第一端口的tag标识不同。
为了描述方便,该实施例以图3所示的组网为例进行描述,需要说明的是,图3所示组网仅为一个示例,该同步方法也可应用于其它组网结构的分布式聚合系统中。
如图3所示,vtepb接入设备的端口为port1,vtepb具有聚合口agg1,vtepc接入设备的端口为port2,vtepc具有聚合口agg2,port1的tag标识为3,port2的tag标识为4,以第一vtep为vtepb,第二vtep为vtepc为例进行描述,则port1为第一端口,第一tag标识为3,port2为第二端口,第二tag标识为4,agg1为第一聚合口,agg2为第二聚合口,vtepb与vtepc相连的ipp口即ipp1为第一ipp口,vtepc与vtepb相连的ipp口即ipp2为第二ipp口,假设第一预设vxlan标识为10,则vtepb可以通过mlag协议将agg1和ipp1上配置的第一tag标识3到第一预设vxlan标识10的映射关系通知给vtepc,vtepc在接收3到10的映射关系后,在agg2和ipp2上配置第一tag标识3到第一预设vxlan标识10的映射关系。需要说明的是,第二vtep可以为多个vtep,该实施例中,仅以vtepc为例进行描述。
另外,第一vtep在将第一vtep的第一聚合口和第一ipp口上配置的第一端口的第一tag标识到第一预设vxlan标识的第一映射关系通知给同一分布式聚合系统中的第二vtep之前,若检测到第一聚合口和第一ipp口上未配置第一映射关系,则在第一聚合口和第一ipp口上配置第一映射关系。
其中,在第一聚合口和第一ipp口上配置第一映射关系可以包括以下情况:
(1)当第一聚合口未绑定第一tag标识时,在第一聚合口绑定第一tag标识以及第一预设vxlan标识的第一映射关系,并在第一ipp口绑定该第一映射关系。
(2)当第一聚合口未绑定第一预设vxlan标识时,在第一聚合口绑定第一tag标识以及第一预设vxlan标识的第一映射关系,并在第一ipp口绑定该第一映射关系。
(3)当第一聚合口未绑定第一tag标识和第一预设vxlan标识时,在第一聚合口绑定第一tag标识以及第一预设vxlan标识的第一映射关系,并在第一ipp口绑定该第一映射关系。
步骤s202,接收第二vtep在第二ipp口成功配置第一映射关系后返回的配置成功消息。
在该实施例中,第二vtep在第二ipp口成功配置第一映射关系之后,可以向第一vtep返回配置成功消息。
步骤s203,通过第一ipp口向第二ipp口发送第一端口接入设备的第一mac地址。
在该实施例中,由于第一ipp口和第二ipp口均配置有第一映射关系,因此,第一vtep可以通过第一ipp口向第二ipp口发送第一端口接入设备的第一mac地址。
例如,vtepb的ipp1和vtepc的ipp2均配置有第一tag标识3到第一预设vxlan标识10的映射关系,因此,vtepb可以通过ipp1将port1接入设备即图3中的cef的mac地址发送给vtepc,vtepc可以通过ipp2接收cef的mac地址。
上述实施例,通过将第一vtep的第一聚合口和第一互联网打印协议ipp口上配置的第一端口的第一tag标识到第一预设vxlan标识的第一映射关系通知给同一分布式聚合系统中的第二vtep,使得第二vtep可以在第二vetp的第二聚合口以及第二ipp口上成功配置第一映射关系,即第一ipp口和第二ipp口上配置了相同的映射关系,然后可以通过第一ipp口向第二ipp口发送第一端口接入设备的第一mac地址,从而实现第一vtep到第二vtep的mac地址同步。
图4是本申请一示例性实施例示出的另一种mac地址同步方法的流程图,如图4所示,在图2所示方法实施例的基础上,该mac地址同步方法还可以包括:
步骤s401,接收第二vtep在第二聚合口和第二ipp口配置第二tag标识到第二预设vxlan标识的第二映射关系后发送的第二映射关系。
第一vtep除了可以将第一聚合口和第一ipp口上配置的第一映射关系通知给同一分布式聚合系统中的第二vtep,还可以接收第二vtep发送的第二tag标识到第二预设vxlan标识的第二映射关系。其中,该第二映射关系由第二vtep在第二聚合口和第二ipp口配置第二映射关系后向第一vtep发送。
继续以图3为例进行描述,假设第二预设vxlan标识为20,则vtepc在agg2和ipp2上配置第二tag标识4到第二预设vxlan标识20的映射关系后,可以通过mlag协议向vtepb发送第二tag标识4到第二预设vxlan标识20的映射关系。
步骤s402,在第一聚合口和第一ipp口上配置第二映射关系。
vtepb在接收到vtepc发送的第二tag标识4到第二预设vxlan标识20的映射关系后,可以在agg1和ipp1上配置第二tag标识4到第二预设vxlan标识20的映射关系。
步骤s403,若在第一ipp口上成功配置第二映射关系,则向第二vtep发送配置成功消息。
vtepb在ipp1上成功配置第二tag标识4到第二预设vxlan标识20的映射关系之后,可以向vtepc发送配置成功消息,这样,vtepc可以通过ipp2向vtepb发送port2接入设备即图3中的ceg的mac地址。
步骤s404,通过第一ipp口接收第二端口接入设备的第二mac地址。
vtepc在通过ipp2向vtepb发送ceg的mac地址之后,vtepb可以通过ipp1接收ceg的mac地址。
上述实施例,通过接收第二vtep在第二聚合口和第二ipp口配置第二tag标识到第二预设vxlan标识的第二映射关系后发送的第二映射关系,并在第一聚合口和第一ipp口上配置该第二映射关系,然后通过成功配置第二映射关系的第一ipp口接收第二端口接入设备的第二mac地址,从而实现第二vtep到第一vtep的mac地址同步。
图5是本申请一示例性实施例示出的数据报文转发过程的流程图,如图5所示,在上述步骤s404之后,该过程还可以包括:
步骤s501,生成第二mac地址的转发表项,该转发表项的下一跳为第一ipp口。
继续以图3为例进行描述,假设,ceg的mac地址是2-2-2,则当ceg和vtepc之间的链路up时,ceg会发送免费arp报文,vtepc设备会学习到ceg的vxlanmac地址,vxlanmac转发表项的下一跳为port2;vtepc在学习到vxlanmac地址之后,通过ipp2将该vxlanmac转发表项同步给vtepb设备,vtepb设备通过ipp1接收该vxlanmac转发表项,在vtepb设备上形成的2-2-2的转发表项的下一跳为ipp1。
步骤s502,通过第一ipp口向第二vtep发送目的mac地址为第二mac地址的数据报文。
当vtepb接收到目的mac为2-2-2的数据报文时,通过ipp1向vtepc转发数据报文。之后,vtepc通过port2向ceg转发数据报文,至此,可以实现由第一vtep向第二vtep发送数据报文,也即位于不同vlan的设备可以进行通信。
类似地,也可以实现由第二vtep向第一vtep发送数据报文。假设,cef的mac地址是1-1-1,则当cef和vtepb之间的链路up时,cef会发送免费arp报文,vtepb设备会学习到cef的vxlanmac地址,vxlanmac转发表项的下一跳为port1;vtepb在学习到vxlanmac地址之后,通过ipp1将该vxlanmac转发表项同步给vtepc设备,vtepc设备通过ipp2接收该vxlanmac转发表项,在vtepc设备上形成的1-1-1的转发表项的下一跳为ipp2。
上述实施例,基于mac地址转发表项可以实现跨vlan设备间的数据报文转发。
与前述mac地址同步方法的实施例相对应,本申请还提供了mac地址同步装置的实施例。
本申请mac地址同步装置的实施例可以应用在vtep设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在vtep设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,是本申请mac地址同步装置600所在vtep设备的一种硬件结构图,除了图6所示的处理器610、内存620、网络接口630、以及非易失性存储器640之外,实施例中装置所在的vtep设备通常根据其实际功能,还可以包括其他硬件,对此不再赘述。
图7是本申请一示例性实施例示出的一种mac地址同步装置的框图,该装置可应用于第一vtep上,该装置包括:通知模块71、消息接收模块72和地址发送模块73。
通知模块71用于将第一vtep的第一聚合口和第一互联网打印协议ipp口上配置的第一端口的第一tag标识到第一预设虚拟可扩展局域网vxlan标识的第一映射关系通知给同一分布式聚合系统中的第二vtep,以使第二vtep在第二vetp的第二聚合口以及第二ipp口上配置第一映射关系,第二vtep接入设备的第二端口的第二tag标识与第一tag标识不同,第一端口为第一vtep接入设备的端口。
消息接收模块72用于接收第二vtep在第二ipp口成功配置通知模块71通知的第一映射关系后返回的配置成功消息。
地址发送模块73用于在消息接收模块72接收到配置成功消息后,通过第一ipp口向第二ipp口发送第一端口接入设备的第一mac地址。
在其中一个实现方式中,该装置还可以包括:第一配置模块70。
第一配置模块70用于在通知模块71将第一vtep的第一聚合口和第一ipp口上配置的第一端口的第一tag标识到第一vxlan标识的第一映射关系通知给同一分布式聚合系统中的第二vtep之前,若第一聚合口和第一ipp口上未配置第一映射关系,则在第一聚合口和第一ipp口上配置第一映射关系。
在其中另一个实现方式中,第一配置模块70可以具体用于:当第一聚合口未绑定第一tag标识和/或第一预设vxlan标识时,在第一聚合口绑定第一tag标识以及第一预设vxlan标识的第一映射关系,并在第一ipp口绑定第一映射关系。
在其中另一个实现方式中,如图8所示,在图7所示实施例的基础上,该装置还可以包括:映射关系接收模块81、第二配置模块82、消息发送模块83和地址接收模块84。
映射关系接收模块81用于接收第二vtep在第二聚合口和第二ipp口配置第二tag标识到第二预设vxlan标识的第二映射关系后发送的第二映射关系。
第二配置模块82用于在第一聚合口和第一ipp口上配置映射关系接收模块81接收的第二映射关系。
消息发送模块83用于若第二配置模块82在第一ipp口上成功配置第二映射关系,则向第二vtep发送配置成功消息。
地址接收模块84用于在消息发送模块83发送配置成功消息后,通过第一ipp口接收第二端口接入设备的第二mac地址。
在其中另一个实现方式中,如图9所示,在图8所示实施例的基础上,该装置还可以包括:生成模块91和报文发送模块92。
生成模块91用于生成第二mac地址的转发表项,转发表项的下一跳为第一ipp口。
报文发送模块92用于通过生成模块91生成的转发表项中的第一ipp口向第二vtep发送目的mac地址为第二mac地址的数据报文。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述mac地址同步装置,通过将第一vtep的第一聚合口和第一互联网打印协议ipp口上配置的第一端口的第一tag标识到第一预设vxlan标识的第一映射关系通知给同一分布式聚合系统中的第二vtep,使得第二vtep可以在第二vetp的第二聚合口以及第二ipp口上成功配置第一映射关系,即第一ipp口和第二ipp口上配置了相同的映射关系,然后可以通过第一ipp口向第二ipp口发送第一端口接入设备的第一mac地址,从而实现第一vtep到第二vtep的mac地址同步;通过接收第二vtep在第二聚合口和第二ipp口配置第二tag标识到第二预设vxlan标识的第二映射关系后发送的第二映射关系,并在第一聚合口和第一ipp口上配置该第二映射关系,然后通过成功配置第二映射关系的第一ipp口接收第二端口接入设备的第二mac地址,从而实现第二vtep到第一vtep的mac地址同步。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。