MAC地址学习方法及装置与流程

文档序号:12809354阅读:763来源:国知局
MAC地址学习方法及装置与流程

本申请涉及网络通信技术领域,特别涉及一种mac地址学习方法及装置。



背景技术:

evpn(ethernetvirtualprivatenetwork,以太网虚拟专用网络)是一种二层vpn(virtualprivatenetwork,虚拟专用网络)技术,在控制平面上采用mp-bgp(multiprotocol-bordergatewayprotocol,多协议边界网关协议)通告路由信息,在数据平面上采用vxlan(virtualextensiblelan,可扩展虚拟局域网络)封装方式转发用户报文。

在evpn网络中,vtep(vxlantunnelendpoint,vxlan隧道端点)上连接vm(virtualmachine,虚拟机)的用户端口可以开启动态mac地址学习高优功能。具体的,如果vtep从开启了动态mac地址学习高优功能的第一用户端口、以及没有开启动态mac地址学习高优功能的第二用户端口,均接收到了同一源mac地址的用户报文,则,mac转发表中包含该源mac地址的mac表项中的出接口优先设置为第一用户端口。

例如,vtep从用户端口porta接收到源mac地址为vm-mac的用户报文后,若mac转发表中不存在包含vm-mac的mac表项,则创建包含vm-mac的mac表项,并将该mac表项中的出接口设置为porta。后续,vtep又从用户端口portb接收到源mac地址为vm-mac的用户报文,此时,如果porta没有开启动态mac地址学习高优功能,则会将mac表项中的出接口由porta更新为portb,而如果porta开启了动态mac地址学习高优功能,则不会将mac表项中的出接口更新为portb,而是将出接口维持为porta。



技术实现要素:

有鉴于此,本申请提供一种mac地址学习方法及装置。

具体地,本申请是通过如下技术方案实现的:

一方面,提供了一种mac地址学习方法,该方法应用于evpn中的vtep,该方法包括:

接收远端vtep发来的携带有第一mac地址以及高优功能通告标识的地址同步消息,其中,该高优功能通告标识用于表示在远端vtep上第一mac地址对应的第一用户端口开启了动态mac地址学习高优功能;

根据该高优功能通告标识,在本端vtep上的包含第一mac地址的第一mac表项中添加高优功能标识;

在从本端vtep上的第二用户端口接收到源mac地址为第一mac地址的用户报文后,根据第一mac表项中的高优功能标识,禁止将第一mac表项中的出接口更新为第二用户端口,并禁止将第一mac地址同步给远端vtep。

另一方面,还提供了一种mac地址学习装置,该装置应用于evpn中的vtep上,该装置包括:

接收单元,用于接收远端vtep发来的地址同步消息;还用于接收用户报文;

更新单元,用于在接收单元接收到远端vtep发来的携带有第一mac地址以及高优功能通告标识的地址同步消息后,根据该高优功能通告标识,在本端vtep上的包含第一mac地址的第一mac表项中添加高优功能标识,其中,该高优功能通告标识用于表示在远端vtep上第一mac地址对应的第一用户端口开启了动态mac地址学习高优功能;

禁止单元,用于在接收单元从本端vtep上的第二用户端口接收到源mac地址为第一mac地址的用户报文后,根据第一mac表项中的高优功能标识,禁止将第一mac表项中的出接口更新为第二用户端口,并禁止将第一mac地址同步给远端vtep。

通过本申请的以上技术方案,本端vtep在接收到远端vtep发来的携带有第一mac地址以及高优功能通告标识的地址同步消息后,通过该消息中携带的高优功能通告标识即可获知在远端vtep上第一mac地址对应的第一用户端口开启了动态mac地址学习高优功能,即,在远端vtep上第一mac地址是从开启了动态mac地址学习高优功能的第一用户端口上学习到的,从而,本端vtep会在本地的包含第一mac地址的第一mac表项中添加高优功能标识,以便后续本端vtep从本地的第二用户端口接收到源mac地址为第一mac地址的用户报文后,不会将第一mac表项中的出接口更新为第二用户端口,而是维持出接口不变,并且也不会将第一mac地址同步给远端vtep。

由于本端vtep不会将第一mac地址对应的出接口更新为第二用户端口,也不会将第一mac地址同步给远端vtep,因此,远端vtep也就不会将远端vtep上与第一mac地址对应的开启了动态mac地址学习高优功能的第一用户端口更新为vxlan隧道接口,从而能够使得对于从开启了动态mac地址学习高优功能的用户端口上学习到的mac地址,确保远端vtep不会从本地用户端口上学习该mac地址,也不会同步该mac地址的目的,确保动态mac地址学习高优功能不仅能对本地vm的mac地址生效,也能对远端vtep同步来的mac地址生效,即,确保了用户端口的动态mac地址学习高优功能的全局生效。

附图说明

图1是本申请实施例的evpn组网示意图;

图2是本申请实施例的mac地址学习方法的一种交互示意图;

图3是本申请实施例的mac地址学习方法的另一种交互示意图;

图4是本申请实施例的mac地址学习装置所在vtep的硬件结构示意图;

图5是本申请实施例的mac地址学习装置的一种结构示意图;

图6是本申请实施例的mac地址学习装置的另一种结构示意图;

图7是本申请实施例的mac地址学习装置的又一种结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在现有技术中,动态mac地址学习高优功能只能针对本地vm的mac地址生效,而对远端vtep同步来的mac地址不生效。也就是说,vtep接收到远端vtep同步来的mac地址后,即使对应mac表项中的出接口是开启了动态mac地址学习高优功能的用户端口,也会对出接口进行更新。为了解决上述问题,本申请以下实施例中提供了一种mac地址学习方法,以及一种可以应用该方法的mac地址学习装置。

本申请实施例的mac地址学习方法可以由evpn中的vtep来执行,该方法包括:接收远端vtep发来的携带有第一mac地址以及高优功能通告标识的地址同步消息,其中,该高优功能通告标识用于表示在远端vtep上第一mac地址对应的第一用户端口开启了动态mac地址学习高优功能;根据该高优功能通告标识,在本端vtep上的包含第一mac地址的第一mac表项中添加高优功能标识;在从本端vtep上的第二用户端口接收到源mac地址为第一mac地址的用户报文后,根据第一mac表项中的高优功能标识,禁止将第一mac表项中的出接口更新为第二用户端口,并禁止将第一mac地址同步给远端vtep。

本申请上述实施例的方法中,本端vtep在接收到远端vtep发来的携带有第一mac地址以及高优功能通告标识的地址同步消息后,通过该消息中携带的高优功能通告标识即可获知在远端vtep上第一mac地址对应的第一用户端口开启了动态mac地址学习高优功能,即,在远端vtep上第一mac地址是从开启了动态mac地址学习高优功能的第一用户端口上学习到的,从而,本端vtep会在本地的包含第一mac地址的第一mac表项中添加高优功能标识,以便后续本端vtep从本地的第二用户端口接收到源mac地址为第一mac地址的用户报文后,不会将第一mac表项中的出接口更新为第二用户端口,而是维持出接口不变,并且也不会将第一mac地址同步给远端vtep。

由于本端vtep不会将第一mac地址对应的出接口更新为第二用户端口,也不会将第一mac地址同步给远端vtep,因此,远端vtep也就不会将远端vtep上与第一mac地址对应的开启了动态mac地址学习高优功能的第一用户端口更新为vxlan隧道接口,从而能够使得对于从开启了动态mac地址学习高优功能的用户端口上学习到的mac地址,确保远端vtep不会从本地用户端口上学习该mac地址,也不会同步该mac地址的目的,确保动态mac地址学习高优功能不仅能对本地vm的mac地址生效,也能对远端vtep同步来的mac地址生效,即,确保了用户端口的动态mac地址学习高优功能的全局生效。

同样,本端vtep在确定本端vtep上的第二mac表项中与第二mac地址对应的第三用户端口开启了动态mac地址学习高优功能时,会将第二mac地址以及高优功能通告标识携带在地址同步消息中发送给远端vtep。这样,远端vtep在接收到携带有第二mac地址以及高优功能通告标识的地址同步消息后,也会执行与本端vtep执行的上述步骤相同的操作,这里不再详述。

另外,本端vtep还会执行以下步骤:接收远端vtep发来的携带有第一mac地址以及高优功能撤销标识的地址同步消息,其中,该高优功能撤销标识用于表示在远端vtep上第一mac地址对应的第一用户端口关闭了动态mac地址学习高优功能;根据该高优功能撤销标识,删除本端vtep上的第一mac表项中的高优功能标识。本端vtep通过该地址同步消息中携带的高优功能撤销标识即可获知远端vtep上与第一mac地址对应的第一用户端口关闭了动态mac地址学习高优功能,从而,本端vtep会将本端vtep上的包含第一mac地址的第一mac表项中的高优功能标识删除,这样,后续本端vtep在从第二用户端口接收到源mac地址为第一mac地址的用户报文后,可以将第一mac表项中的出接口更新为第二用户端口,并将第一mac地址同步给远端vtep,从而使得远端vtep上与第一mac地址对应的出接口更新为vxlan隧道接口。

同样,本端vtep在确定本端vtep上的第二mac表项中与第二mac地址对应的第三用户端口关闭了动态mac地址学习高优功能时,会将第二mac地址以及高优功能撤销标识携带在地址同步消息中发送给远端vtep。这样,远端vtep在接收到该地址同步消息后,也会执行与本端vtep执行的上述步骤相同的操作,这里不再详述。

以图1所示的evpn为例,详细说明上述实施例的方法。在如图1所示的evpn中,vtep1与vtep2之间建立了vxlan隧道tunnel0。基于图1所示的evpn组网的mac地址学习方法,如图2所示,包括以下步骤:

步骤s101,vtep1确定mac表项中与mac地址vm-mac对应的用户端口port1_a开启了动态mac地址学习高优功能。

具体的,在步骤s101中,确定mac表项中与mac地址vm-mac对应的用户端口port1_a开启了动态mac地址学习高优功能的方式,可以采用以下任意一种:

vtep1从开启了动态mac地址学习高优功能的用户端口port1_a接收到了用户报文后,若mac转发表中不存在包含该用户报文的源mac地址vm-mac的mac表项,则在mac转发表中添加包含vm-mac的mac表项,并将该mac表项中的出接口设置为port1_a。此时,可以确定出该mac表项中与mac地址vm-mac对应的用户端口port1_a开启了动态mac地址学习高优功能。

vtep1从开启了动态mac地址学习高优功能的用户端口port1_a接收到了用户报文后,若mac转发表中已经存在包含该用户报文的源mac地址vm-mac的mac表项,则将该mac表项中的出接口更新为port1_a。此时,可以确定出该mac表项中与mac地址vm-mac对应的用户端口port1_a开启了动态mac地址学习高优功能。

当vtep1上的用户端口port1_a开启了动态mac地址学习高优功能后,vtep1可以在mac转发表中查找出接口为port1_a的mac表项,从而,确定该mac表项中与mac地址vm-mac对应的用户端口port1_a开启了动态mac地址学习高优功能。

步骤s102,vtep1将该mac表项中包含的mac地址vm-mac、以及高优功能通告标识携带在地址同步消息中发送给vtep2。

其中,该高优功能通告标识用于表示在vtep1上与vm-mac对应的用户端口开启了动态mac地址学习高优功能,即,vm-mac是从vtep1上的开启了动态mac地址学习高优功能的用户端口上学习到的。

步骤s103,vtep2接收到该地址同步消息后,根据该消息中携带的高优功能通告标识,在vtep2上的包含vm-mac的mac表项中添加高优功能标识。

vtep2根据该地址同步消息中携带的高优功能通告标识,即可获知vm-mac是从vtep1上的开启了动态mac地址学习高优功能的用户端口上学习到的,从而,vtep2在mac转发表中不存在包含vm-mac的mac表项时,在mac转发表中创建包含vm-mac的mac表项,将该mac表项中的出接口设置为tunnel0,并在该mac表项中添加高优功能标识;在mac转发表中存在包含vm-mac的mac表项时,将该mac表项中的出接口更新为tunnel0,并在该mac表项中添加高优功能标识。

其中的高优功能标识用于指示在从用户端口接收到源mac地址为vm-mac的用户报文后,禁止将该mac表项中的出接口更新为该用户端口。

步骤s104,vtep2从用户端口port2_a接收到了源mac地址为vm-mac的用户报文后,不会将vtep2上的包含vm-mac的mac表项中的出接口更新为port2_a,也不会将vm-mac同步给vtep1。

另外,vtep1上的用户端口port1_a关闭了动态mac地址学习高优功能时的mac地址学习方法,如图3所示,包括以下步骤:

步骤s201,vtep1确定mac表项中与mac地址vm-mac对应的用户端口port1_a关闭了动态mac地址学习高优功能。

步骤s202,vtep1将该mac表项中包含的mac地址vm-mac、以及高优功能撤销标识携带在地址同步消息中发送给vtep2。

其中,高优功能撤销标识用于表示vtep1上与vm-mac对应的用户端口port1_a关闭了动态mac地址学习高优功能。

步骤s203,vtep2在接收到该地址同步消息后,根据该消息中携带的高优功能撤销标识,删除vtep2上的包含vm-mac的mac表项中的高优功能标识。

vtep2根据该地址同步消息中携带的高优功能撤销标识,即可获知vm-mac对应的用户端口关闭了动态mac地址学习高优功能,从而,vtep2会将本地包含vm-mac的mac表项中的高优功能标识删除。

步骤s204,vtep2在从用户端口port2_a接收到源mac地址为vm-mac的用户报文后,将vtep2上包含vm-mac的mac表项中的出接口由tunnel0更新为port2_a,并将vm-mac同步给vtep1。

在实际实施过程中,上述地址同步消息具体为现有的evpn2类路由。为了在evpn2类路由中携带高优功能通告标识和高优功能撤销标识,可以扩展出一种新的bgp路由属性,该bgp路由属性例如可以为团体属性等。当该bgp路由属性的值设置为第一值时,表示该bgp路由属性携带的是高优功能通告标识,当该bgp路由属性的值设置为第二值时,表示该bgp路由属性携带的是高优功能撤销标识。或者,也可以扩展出两种bgp路由属性,分别用于携带高优功能通告标识和高优功能撤销标识。

本申请mac地址学习装置的实施例可以应用在vtep上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在vtep的处理器10将非易失性存储器50中对应的计算机程序指令读取到内存40中运行形成的。从硬件层面而言,如图4所示,为本申请mac地址学习装置60所在vtep的一种硬件结构图,除了图4所示的处理器10、内部总线20、网络接口30、内存40、以及非易失性存储器50之外,实施例中装置所在的vtep通常根据该vtep的实际功能,还可以包括其他硬件,对此不再赘述。

请参考图5,本申请实施例的mac地址学习装置60中包括:接收单元601、更新单元602和禁止单元603,其中:

接收单元601,用于接收远端vtep发来的地址同步消息;还用于接收用户报文;

更新单元602,用于在接收单元601接收到远端vtep发来的携带有第一mac地址以及高优功能通告标识的地址同步消息后,根据该高优功能通告标识,在本端vtep上的包含第一mac地址的第一mac表项中添加高优功能标识,其中,该高优功能通告标识用于表示在远端vtep上第一mac地址对应的第一用户端口开启了动态mac地址学习高优功能;

禁止单元603,用于在接收单元601从本端vtep上的第二用户端口接收到源mac地址为第一mac地址的用户报文后,根据第一mac表项中的高优功能标识,禁止将第一mac表项中的出接口更新为第二用户端口,并禁止将第一mac地址同步给远端vtep。

如图6所示,上述mac地址学习装置60中还包括:第一确定单元604和第一发送单元605,其中:

第一确定单元604,用于确定本端vtep上的第二mac表项中与第二mac地址对应的第三用户端口开启了动态mac地址学习高优功能;

第一发送单元605,用于将第二mac地址以及高优功能通告标识携带在地址同步消息中发送给远端vtep。

其中,更新单元602,还用于在接收单元601接收到远端vtep发来的携带有第一mac地址以及高优功能撤销标识的地址同步消息后,根据该高优功能撤销标识,删除第一mac表项中的高优功能标识,其中,该高优功能撤销标识用于表示远端vtep上的第一用户端口关闭了动态mac地址学习高优功能。

如图7所示,上述mac地址学习装置60中还包括:

第二确定单元606,用于确定本端vtep上的第二mac表项中与第二mac地址对应的第三用户端口关闭了动态mac地址学习高优功能;

第二发送单元607,用于将第二mac地址以及高优功能撤销标识携带在地址同步消息中发送给远端vtep。

其中,更新单元602,还用于在删除了第一mac表项中的高优功能标识之后,在接收单元601从本端vtep上的第二用户端口接收到源mac地址为第一mac地址的用户报文时,将第一mac表项中的出接口更新为第二用户端口,并将第一mac地址同步给远端vtep。

在上述实施例的装置中,第一确定单元和第二确定单元可以是两个独立的单元,也可以集成于同一单元中实现;同样,第一发送单元和第二发送单元可以是两个独立的单元,也可以集成于同一单元中实现;本申请对此不做限定。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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