CN111327717B - 一种mac地址学习方法及装置 - Google Patents
一种mac地址学习方法及装置 Download PDFInfo
- Publication number
- CN111327717B CN111327717B CN202010065448.7A CN202010065448A CN111327717B CN 111327717 B CN111327717 B CN 111327717B CN 202010065448 A CN202010065448 A CN 202010065448A CN 111327717 B CN111327717 B CN 111327717B
- Authority
- CN
- China
- Prior art keywords
- mac
- mac address
- local
- entry corresponding
- remote
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请涉及网络通信技术领域,特别涉及一种MAC地址学习方法及装置。该方法包括:接收外部设备发送的源MAC地址为第一MAC地址的二层数据报文;判断本地是否存在第一MAC地址对应的远端MAC表项;若存在,则不在本地添加第一MAC对应的本地MAC表项,并不删除第一MAC地址对应的远端MAC表项;若不存在,则在本地添加第一MAC地址对应的本地MAC表项,并向设备上的其它接口板发送携带第一MAC地址的MAC同步消息,以及向管理平台发送携带第一MAC地址的MAC学习消息。采用该方法,远端MAC只被管理平台管理,防止VM频繁迁移,分布式系统多任务时序问题,而导致的设备上只存在远端MAC而无法删除的问题。
Description
技术领域
本申请涉及网络通信技术领域,特别涉及一种MAC地址学习方法及装置。
背景技术
以太网虚拟专用网络(Ethernet Virtual Private Network,EVPN)是一种二层虚拟专用网络(Virtual Private Network,VPN)技术,在控制平面上采用多协议边界网关协议(MultiProtocol-Border Gateway Protocol,MP-BGP)通告路由信息,在数据平面上采用可扩展虚拟局域网络(Virtual eXtensible LAN,VXLAN)封装方式转发用户报文。在EVPN网络中,VXLAN隧道端点(VXLAN Tunnel End Point,VTEP)通过MP-BGP协议将本地MAC地址通告给远端VTEP,远端VTEP接收到该信息后,将MAC地址添加到本地MAC表中,而删除远端MAC也需通过MP-BGP协议通告删除。
目前,大部分高性能分布式通信设备(如,EVPN网络中的各VTEP)的内部链路连接均采用如图1所示的方式。接口板负责数据报文处理与转发,交换网板负责设备内部跨板通信与数据交互,实现跨接口板数据互通。当接口板A接收到一个二层数据报文,需查找本板上是否存在该二层数据报文的源MAC地址对应的本地MAC表项,若不存在,则在本板上添加该源MAC地址对应的本地MAC表项,在完成本地MAC表项学习之后,会发送同步消息至其它接口板,同时上报本地MAC学习消息至平台,平台接收到该消息后,发送携带该源MAC地址信息的MP-BGP协议报文至远端VTEP,以便远端VTEP进行远端MAC学习。
目前,接口板的MAC地址学习方式为,1)本板学习源MAC:若已存在对应的远端MAC表项,则删除该远端MAC表项,并将该源MAC同步其他单板,同时上报平台发送BP-BGP协议,通告远端VTEP的刷新远端MAC表;2)本板学习平台下发远端MAC信息:若存在对应的本地MAC表项,则删除该本地MAC表项,若该本地MAC表项由本板学习的,则上报平台通告远端VTEP刷新远端MAC表;3)同步板学习源MAC:接收到其他板发送的同步源MAC消息,先核查本板是否已存在对应的远端MAC表项,若存在,则删除该远端MAC表项,且不上报平台。且本地MAC表项是可被老化删除的,远端MAC表项是不可被老化的。
由上可知,针对任一接口板而言,本地MAC学习会触发对应的远端MAC表项删除的操作,同样的,远端MAC学习会触发对应的本地MAC表项删除的操作,那么,当虚拟机频繁迁移时,分布式系统因多任务时序,可能会导致设备上只存在远端MAC,而无法删除,最终导致流量因源端口返回而丢包,以及某些接口板学习到的远端MAC表项被同步源MAC覆盖而导致同一设备上不同接口板间MAC不一致的问题。
发明内容
本申请提供一种MAC地址学习方法及装置,用以解决现有技术中存在的虚拟机频繁迁移,分布式系统因多任务时序,导致设备上只存在远端MAC而无法删除,最终导致流量因源端口返回而丢包的问题。
第一方面,本申请提供一种MAC地址学习方法,应用于分布式通信设备的目标接口板,所述方法包括:
接收外部设备发送的源MAC地址为第一MAC地址的二层数据报文;
判断本地是否存在所述第一MAC地址对应的远端MAC表项;
若存在,则不在本地添加所述第一MAC对应的本地MAC表项,并不删除所述第一MAC地址对应的远端MAC表项;
若不存在,则在本地添加所述第一MAC地址对应的本地MAC表项,并向所述分布式通信设备上的其它接口板发送携带所述第一MAC地址的MAC同步消息,以及向管理平台发送携带所述第一MAC地址的MAC学习消息,以触发所述管理平台向远端VTEP发送携带所述第一MAC地址的MAC学习消息。
可选地,在本地添加所述第一MAC地址对应的本地MAC表项的步骤包括:
判断接收所述二层数据报文的接口是否为聚合口;
若是,则在所述第一MAC地址对应的软件MAC表项中新增标志位,并将所述标志位置为指定值,以及在本地MAC表中添加所述第一MAC地址对应的本地MAC表项;
否则,在所述第一MAC地址对应的软件MAC表项中标记为自学习,并在本地MAC表中添加所述第一MAC地址对应的本地MAC表项。
可选地,所述方法还包括:
接收管理平台下发的携带第二MAC地址的MAC学习消息,并判断本地是否存在所述第二MAC地址对应的本地MAC表项;
若存在所述第二MAC地址对应的本地MAC表项,则删除所述第二MAC地址对应的本地MAC表项若所述第二MAC地址对应的软件MAC表项中标志位为指定值,或者,被标记为自学习,则触发管理平台向远端VTEP发送携带所述第二MAC地址的远端MAC删除消息,并在本地MAC表中添加所述第二MAC地址对应的远端MAC表项;
若不存在所述第二MAC地址对应的本地MAC表项,则在本地MAC表中添加所述第二MAC地址对应的远端MAC表项。
可选地,所述方法还包括:
接收所述分布式通信设备上其它接口板发送的携带有第三MAC地址的本地MAC同步消息;
判断本地是否存在所述第三MAC地址对应的远端MAC表项;
若存在,则不在本地MAC表中添加所述第三MAC地址对应的本地MAC表项,并不删除所述第三MAC地址对应的远端MAC,否则在本地MAC表中添加所述第三MAC地址对应的本地MAC表项。
可选地,所述方法还包括:
接收外部设备发送的目的MAC地址为第四MAC地址的二层数据报文;
判断本地与所述第四MAC地址对应的出接口是否为接收该二层数据报文的接口,若是,则删除所述第四MAC地址对应的本地MAC表项,触发管理平台向远端VTEP发送携带所述第四MAC地址的远端MAC删除消息,并泛洪该二层数据报文。
第二方面,本申请提供了一种MAC地址学习装置,应用于分布式通信设备的目标接口板,所述装置包括:
接收单元,用于接收外部设备发送的源MAC地址为第一MAC地址的二层数据报文;
判断单元,用于判断本地是否存在所述第一MAC地址对应的远端MAC表项;
执行单元,在所述判断单元判定所述目标接口板本地存在所述第一MAC地址对应的远端MAC表项时,所述执行单元不在所述目标接口板本地添加所述第一MAC对应的本地MAC表项,并不删除所述第一MAC地址对应的远端MAC表项;在所述判断单元判定所述目标接口板本地不存在所述第一MAC地址对应的远端MAC表项时,所述执行单元在所述目标接口板本地添加所述第一MAC地址对应的本地MAC表项,并向所述分布式通信设备上的其它接口板发送携带所述第一MAC地址的MAC同步消息,以及向管理平台发送携带所述第一MAC地址的MAC学习消息,以触发所述管理平台向远端VTEP发送携带所述第一MAC地址的MAC学习消息。
可选地,在本地添加所述第一MAC地址对应的本地MAC表项时,所述执行单元具体用于:
判断接收所述二层数据报文的接口是否为聚合口;
若是,则在所述第一MAC地址对应的软件MAC表项中新增标志位,并将所述标志位置为指定值,以及在本地MAC表中添加所述第一MAC地址对应的本地MAC表项;
否则,在所述第一MAC地址对应的软件MAC表项中标记为自学习,并在本地MAC表中添加所述第一MAC地址对应的本地MAC表项。
可选地,
所述接收单元还用于,接收管理平台下发的携带第二MAC地址的MAC学习消息,所述判断单元还用于,判断所述目标接口板本地是否存在所述第二MAC地址对应的本地MAC表项;
若所述判断单元判定存在所述第二MAC地址对应的本地MAC表项,则所述执行单元删除所述第二MAC地址对应的本地MAC表项,若所述第二MAC地址对应的软件MAC表项中标志位为指定值,或者,被标记为自学习,则所述执行单元触发管理平台向远端VTEP发送携带所述第二MAC地址的远端MAC删除消息,并在所述目标接口板的本地MAC表中添加所述第二MAC地址对应的远端MAC表项;
若所述判断单元判定不存在所述第二MAC地址对应的本地MAC表项,则所述执行单元在所述目标接口板的本地MAC表中添加所述第二MAC地址对应的远端MAC表项。
可选地,
所述接收单元还用于,接收所述分布式通信设备上其它接口板发送的携带有第三MAC地址的本地MAC同步消息;
所述判断单元还用于,判断所述目标接口板本地是否存在所述第三MAC地址对应的远端MAC表项;
若所述判断单元判定存在所述第三MAC地址对应的远端MAC表项,则所述执行单元不在所述目标接口板的本地MAC表中添加所述第三MAC地址对应的本地MAC表项,并不删除所述第三MAC地址对应的远端MAC,否则所述执行单元在所述目标接口板的本地MAC表中添加所述第三MAC地址对应的本地MAC表项。
可选地,
所述接收单元还用于,接收外部设备发送的目的MAC地址为第四MAC地址的二层数据报文;
所述判断单元还用于,判断所述目标接口板的本地MAC表中与所述第四MAC地址对应的出接口是否为接收该二层数据报文的接口,若所述判断单元判定所述目标接口板的本地MAC表中与所述第四MAC地址对应的出接口是接收该二层数据报文的接口,则所述执行单元删除所述第四MAC地址对应的本地MAC表项,触发管理平台向远端VTEP发送携带所述第四MAC地址的远端MAC删除消息,并泛洪该二层数据报文。
第三方面,本申请实施例提供一种分布式通信设备,该分布式通信设备包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第一方面中任一项所述的方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第一方面中任一项所述方法的步骤。
综上可知,本申请实施例中,目标接口板接收外部设备发送的源MAC地址为第一MAC地址的二层数据报文;判断本地是否存在所述第一MAC地址对应的远端MAC表项;若存在,则不在本地添加所述第一MAC对应的本地MAC表项,并不删除所述第一MAC地址对应的远端MAC表项;若不存在,则在本地添加所述第一MAC地址对应的本地MAC表项,并向所述分布式通信设备上的其它接口板发送携带所述第一MAC地址的MAC同步消息,以及向管理平台发送携带所述第一MAC地址的MAC学习消息,以触发所述管理平台向远端VTEP发送携带所述第一MAC地址的MAC学习消息。
采用本申请实施例提供的MAC地址学习方法,目标接口板在接收到一个二层数据报文,并在判定本地存在该二层数据报文的源MAC地址对应的远端MAC表项时,不直接覆盖该远端MAC表项,以确保远端MAC只被管理平台管理,防止远端MAC不统一,VM频繁迁移,分布式系统多任务时序问题,而导致的设备上只存在远端MAC而无法删除的问题。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1为本申请实施例提供的分布式通信设备的系统链路图;
图2为本申请实施例提供的一种MAC地址学习方法的流程图;
图3为本申请实施例提供的另一种MAC地址学习方法的流程图;
图4为本申请实施例提供的又一种MAC地址学习方法的流程图;
图5为本申请实施例提供的一种MAC地址学习装置的结构示意图;
图6为本申请实施例提供的一种分布式通信设备的结构示意图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
示例性的,参阅图2所示,本申请实施例提供的一种MAC地址学习方法的详细流程图,该方法应用于分布式通信设备的目标接口板,该目标接口板为该分布式通信设备的任一接口板,该方法包括以下步骤:
步骤200:接收外部设备发送的源MAC地址为第一MAC地址的二层数据报文。
本申请实施例中,外部设备可以是与分布式通信设备直连的设备,或,分布式通信设备下挂的其它设备。
例如,EVPN组网中,VTEP为分布式通信设备,与其直连的服务器(Server)为外部设备,当然,也可以理解为Server中虚拟出的各个虚拟机(Virtual Machine,VM)。VTEP可以通过本地接口板接收其下挂的各Server中的VM发送的二层数据报文,其中,该二层数据报文至少携带有发送该二层数据报文的源设备的MAC地址(源MAC地址)和该二层数据报文需发往的目的设备的MAC地址(目的MAC地址)。
步骤210:判断本地是否存在上述第一MAC地址对应的远端MAC表项。
本申请实施例中,若接口板判定本地存在上述第一MAC对应的远端MAC表项,则执行步骤220;若目标接口板判定本地不存在上述第一MAC对应的远端MAC表项,则执行步骤230。
具体地,本申请实施例中,目标接口板在接收到一个外部设备发送的二层数据报文后,首先,获取该二层数据报文携带的源MAC地址和获取接收该二层数据报文的端口信息;然后,判断目标接口板的本地MAC表中是否存在该源MAC地址对应的远端MAC表项,所谓该源MAC地址对应的远端MAC表项,指的是根据管理平台下发的远端MAC学习消息学习到的MAC表项,该MAC表项中的端口信息,并不是此次接收该二层数据报文的端口信息。
步骤220:不在本地添加上述第一MAC对应的本地MAC表项,并不删除上述第一MAC地址对应的远端MAC表项。
目前相关技术中,若某一接口板在接收到一个外部设备发送的二层数据报文时,无论本地是否存在该二层数据报文的源MAC地址对应的远端MAC表项,该接口板均会在本地保存该源MAC地址和接收该二层数据报文的端口信息至本地MAC表中,即,若不存在该二层数据报文的源MAC地址对应的远端MAC表项,则会直接保存该源MAC地址和接收该二层数据报文的端口之间的映射关系;若存在该二层数据报文的源MAC地址对应的远端MAC表项,则会将远端MAC表项中的端口信息刷新为接收该二层数据报文的端口信息,当然,也可以是在删除该远端MAC表项后,再保存该源MAC地址和接收该二层数据报文的端口之间的映射关系。
而本申请实施例中,目标接口板在接收到一个二层数据报文,并在判定本地存在该二层数据报文的源MAC地址对应的远端MAC表项时,不覆盖该远端MAC表项,以确保远端MAC只被管理平台管理,防止远端MAC不统一,VM频繁迁移,分布式系统多任务时序问题,而导致的设备上只存在远端MAC而无法删除的问题。
步骤230:在本地添加上述第一MAC地址对应的本地MAC表项,并向上述分布式通信设备上的其它接口板发送携带上述第一MAC地址的MAC同步消息,以及向管理平台发送携带上述第一MAC地址的MAC学习消息,以触发上述管理平台向远端VTEP发送携带上述第一MAC地址的MAC学习消息。
本申请实施例中,目标接口板在接收到一个二层数据报文,并在判定本地不存在该二层数据报文的源MAC地址对应的远端MAC表项时,即可将该源MAC地址和接收该二层数据报文的端口信息添加在本地的MAC表中,即目标接口板进行源MAC本地学习。如,在Server中新创建一个VM,然后该VM向目标接口板发送了携带源MAC地址为MAC 1的二层数据报文1,假设接收二层数据报文1的端口为Port 0,那么,目标接口板判断本地不存在MAC地址1对应的MAC表项,则直接将MAC 1和Port 0的映射关系添加至本地MAC表中。
目前相关技术中,当目标接口板接收外部设备发送的源MAC地址为第一MAC地址的二层数据报文的接口为聚合口时,目标接口板学习到的第一MAC地址对应的本地MAC表项在经过一个老化周期后,并不会直接删除该本地MAC表项,而是会将selflrn置为false。那么,当第一MAC地址对应的VM迁移至其它VTEP下时,若MP-BGP协议通告的第一MAC地址对应的远端MAC学习下发至目标接口板,而目标接口板上已存在第一MAC地址对应的本地MAC表项,则该第一MAC地址对应的本地MAC表项会被远端MAC表项覆盖,由于selflrn为false,目标接口板不会上报管理平台通告远端VTEP删除第一MAC地址对应的远端MAC表项,导致远端VTEP上残留了第一MAC地址对应的远端MAC表项。
为了解决上述技术问题,本申请实施例中,一种可选实施方式为,在本地添加上述第一MAC地址对应的本地MAC表项的步骤包括:判断接收上述二层数据报文的接口是否为聚合口;若是,则在上述第一MAC地址对应的软件MAC表项中新增标志位,并将上述标志位置为指定值,以及在本地MAC表中添加上述第一MAC地址对应的本地MAC表项;否则,在上述第一MAC地址对应的软件MAC表项中标记为自学习,并在本地MAC表中添加上述第一MAC地址对应的本地MAC表项。
实际应用中,目标接口板在学习到一个MAC地址之后,会将其学习到MAC地址的消息上报管理平台,以触发管理平台向远端分布式通信设备(如,远端VTEP)发送携带已学习到的MAC地址的协议报文(如,MP-BGP协议报文),以使得远端分布式通信设备学习该MAC地址。那么,远端分布式通信设备上的接口板在学习到一个MAC地址后,也会触发管理平台向目标接口板所属的分布式通信设备发送远端MAC学习消息,以使得目标接口板所属的分布式通信设备学习该MAC地址(即,目标接口板所属的分布式通信设备上所有的接口板学习该MAC地址)。
那么,示例性的,参阅图3所示,本申请实施例中,另一种MAC地址学习方法的详细流程如下:
步骤300:接收管理平台下发的携带第二MAC地址的MAC学习消息。
也就是说,任一分布式通信设备上的接口板在学习到一个新的MAC地址之后,会通知管理平台,以触发管理平台向除该任一分布式通信设备之外的其他分布式通信设备发送远端MAC学习消息,那么,目标接口板就可以接收到管理平台下发的携带其他分布式通信设备的接口板学习到的MAC地址的MAC学习消息。
步骤310:判断本地是否存在上述第二MAC地址对应的本地MAC表项。
本申请实施例中,目标接口板在接收到管理平台下发的携带第二MAC地址的MAC学习消息之后,会先判断目标接口板本地是否存在该第二MAC地址对应的本地MAC表项,并根据判断结果,执行后续对应的操作,本申请实施例中,在此不再赘述。
步骤320:若存在上述第二MAC地址对应的本地MAC表项,则删除上述第二MAC地址对应的本地MAC表项,若上述第二MAC地址对应的软件MAC表项中标志位为指定值,或者,被标记为自学习,则触发管理平台向远端VTEP发送携带上述第二MAC地址的远端MAC删除消息,并在本地MAC表中添加上述第二MAC地址对应的远端MAC表项。
具体地,若目标接口板本地存在第二MAC地址对应的本地MAC表项,则采用远端MAC覆盖本地MAC的原则,可以删除MAC表中该第二MAC地址对应的本地MAC表项,并在MAC表中增加该第二MAC地址对应的远端MAC表项,其中,删除的该本地MAC表项中与新增的远端MAC表项的端口信息不同。
进一步地,在删除该本地MAC表项对应的软件MAC表项中标志位为指定值(置为1),或者,被标记为自学习,也就是说,该本地MAC表项是目标接口板学习到的,而非其他接口板同步过来的,那么,若删除了该本地MAC表项,就需要通知管理平台触发删除其他分布式通信设备上,与该本地MAC表项对应的远端MAC表项。
相应的,在删除该本地MAC表项对应的软件MAC表项中标志位为非指定值(置为0),或者,未被标记为自学习,也就是说,该本地MAC表项不是目标接口板学习到的,而是与目标接口板属于同一分布式通信设备上的其他接口板同步过来的,那么,若删除了该本地MAC表项,也无需通知管理平台触发删除其他分布式通信设备上,与该本地MAC表项对应的远端MAC表项。
也就是说,只能由自学习某一MAC地址的接口板触发管理平台执行远端同步/远端删除该MAC地址对应的远端MAC表项的操作。
步骤330:若不存在上述第二MAC地址对应的本地MAC表项,则在本地MAC表中添加上述第二MAC地址对应的远端MAC表项。
基于上述描述,进一步地,目标接口板在学习到一个本地MAC地址之后,也会将该本地MAC地址同步至与该目标接口板属于同一分布式通信设备的其它接口板,那么,其它接口板在学习到一个MAC地址之后,也会将该MAC地址同步至目标接口板。
那么,示例性的,参阅图4所示,本申请实施例中,又一种MAC地址学习方法的详细流程如下:
步骤400:接收上述分布式通信设备上其它接口板发送的携带有第三MAC地址的本地MAC同步消息。
步骤410:判断本地是否存在上述第三MAC地址对应的远端MAC表项。
步骤420:若存在,则不在本地MAC表中添加上述第三MAC地址对应的本地MAC表项,并不删除上述第三MAC地址对应的远端MAC,否则在本地MAC表中添加上述第三MAC地址对应的本地MAC表项。
基于与上述方法实施例同样的发明构思,本申请实施例中还提供了一种MAC地址学习装置。
进一步地,本申请实实施例中,若目标接口板接收到外部设备发送的目的MAC地址为第四MAC地址的二层数据报文;则目标接口板需判断本地与上述第四MAC地址对应的出接口是否为接收该二层数据报文的接口,若是,则删除上述第四MAC地址对应的本地MAC表项,触发管理平台向远端VTEP发送携带上述第四MAC地址的远端MAC删除消息,并泛洪该二层数据报文。
目前相关技术中,分布式通信设备在接收到一个二层数据报文后,根据该二层数据报文的目的MAC地址查MAC表,确定转发该二层数据报文的出接口,若确定出的出接口为接收该二层数据报文的源端口,则直接丢弃该二层数据报文。
而本申请实施例中,若确定转发该二层数据报文的出接口为接收该二层数据报文的源端口,说明目标接口板本地学习有该目的MAC地址对应本地MAC表项,在此情况下,本申请实施例中,执行删除该本地MAC表项的操作,并上报管理平台,以触发管理平台向其他分布式通信设备发送删除远端MAC表项的消息。同时,还可以泛洪该二层数据报文,以使得MAC地址为该目的MAC地址的VM能够接收到该二层数据报文。
示例性的,参阅图5所示,本申请实施例提供的另一种MAC地址学习装置的结构示意图,该装置应用于分布式通信设备的目标接口板,所述装置包括:
接收单元50,用于接收外部设备发送的源MAC地址为第一MAC地址的二层数据报文;
判断单元51,用于判断本地是否存在所述第一MAC地址对应的远端MAC表项;
执行单元52,在判断单元51判定所述目标接口板本地存在所述第一MAC地址对应的远端MAC表项时,执行单元52不在所述目标接口板本地添加所述第一MAC对应的本地MAC表项,并不删除所述第一MAC地址对应的远端MAC表项;在判断单元51判定所述目标接口板本地不存在所述第一MAC地址对应的远端MAC表项时,执行单元52在所述目标接口板本地添加所述第一MAC地址对应的本地MAC表项,并向所述分布式通信设备上的其它接口板发送携带所述第一MAC地址的MAC同步消息,以及向管理平台发送携带所述第一MAC地址的MAC学习消息,以触发所述管理平台向远端VTEP发送携带所述第一MAC地址的MAC学习消息。
可选地,在本地添加所述第一MAC地址对应的本地MAC表项时,执行单元52具体用于:
判断接收所述二层数据报文的接口是否为聚合口;
若是,则在所述第一MAC地址对应的软件MAC表项中新增标志位,并将所述标志位置为指定值,以及在本地MAC表中添加所述第一MAC地址对应的本地MAC表项;
否则,在所述第一MAC地址对应的软件MAC表项中标记为自学习,并在本地MAC表中添加所述第一MAC地址对应的本地MAC表项。
可选地,
接收单元50还用于,接收管理平台下发的携带第二MAC地址的MAC学习消息,判断单元51还用于,判断所述目标接口板本地是否存在所述第二MAC地址对应的本地MAC表项;
若判断单元51判定存在所述第二MAC地址对应的本地MAC表项,则执行单元52删除所述第二MAC地址对应的本地MAC表项,若所述第二MAC地址对应的软件MAC表项中标志位为指定值,或者,被标记为自学习,则执行单元52触发管理平台向远端VTEP发送携带所述第二MAC地址的远端MAC删除消息,并在所述目标接口板的本地MAC表中添加所述第二MAC地址对应的远端MAC表项;
若判断单元51判定不存在所述第二MAC地址对应的本地MAC表项,则执行单元52在所述目标接口板的本地MAC表中添加所述第二MAC地址对应的远端MAC表项。
可选地,
接收单元50还用于,接收所述分布式通信设备上其它接口板发送的携带有第三MAC地址的本地MAC同步消息;
判断单元51还用于,判断所述目标接口板本地是否存在所述第三MAC地址对应的远端MAC表项;
若判断单元51判定存在所述第三MAC地址对应的远端MAC表项,则执行单元52不在所述目标接口板的本地MAC表中添加所述第三MAC地址对应的本地MAC表项,并不删除所述第三MAC地址对应的远端MAC,否则执行单元52在所述目标接口板的本地MAC表中添加所述第三MAC地址对应的本地MAC表项。
可选地,
接收单元50还用于,接收外部设备发送的目的MAC地址为第四MAC地址的二层数据报文;
判断单元51还用于,判断所述目标接口板的本地MAC表中与所述第四MAC地址对应的出接口是否为接收该二层数据报文的接口,若判断单元51判定所述目标接口板的本地MAC表中与所述第四MAC地址对应的出接口是接收该二层数据报文的接口,则执行单元52删除所述第四MAC地址对应的本地MAC表项,触发管理平台向远端VTEP发送携带所述第四MAC地址的远端MAC删除消息,并泛洪该二层数据报文。
以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
综上可知,本申请实施例中,目标接口板接收外部设备发送的源MAC地址为第一MAC地址的二层数据报文;判断本地是否存在所述第一MAC地址对应的远端MAC表项;若存在,则不在本地添加所述第一MAC对应的本地MAC表项,并不删除所述第一MAC地址对应的远端MAC表项;若不存在,则在本地添加所述第一MAC地址对应的本地MAC表项,并向所述分布式通信设备上的其它接口板发送携带所述第一MAC地址的MAC同步消息,以及向管理平台发送携带所述第一MAC地址的MAC学习消息,以触发所述管理平台向远端VTEP发送携带所述第一MAC地址的MAC学习消息。
采用本申请实施例提供的MAC地址学习方法,目标接口板在接收到一个二层数据报文,并在判定本地存在该二层数据报文的源MAC地址对应的远端MAC表项时,不直接覆盖该远端MAC表项,以确保远端MAC只被管理平台管理,防止远端MAC不统一,VM频繁迁移,分布式系统多任务时序问题,而导致的设备上只存在远端MAC而无法删除的问题。
进一步地,本申请实施例提供的分布式通信设备,从硬件层面而言,所述分布式通信设备的硬件架构示意图可以参见图6所示,所述分布式通信设备可以包括:存储器60和处理器61,
存储器60用于存储程序指令;处理器61调用存储器60中存储的程序指令,按照获得的程序指令执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种分布式通信设备,包括用于执行上述方法实施例的至少一个处理元件(或芯片)。
可选地,本申请还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述方法实施例。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种MAC地址学习方法,其特征在于,应用于分布式通信设备的目标接口板,所述方法包括:
接收外部设备发送的源MAC地址为第一MAC地址的二层数据报文;
判断本地是否存在所述第一MAC地址对应的远端MAC表项;
若存在,则不在本地添加所述第一MAC对应的本地MAC表项,并不删除所述第一MAC地址对应的远端MAC表项;
若不存在,则在本地添加所述第一MAC地址对应的本地MAC表项,并向所述分布式通信设备上的其它接口板发送携带所述第一MAC地址的MAC同步消息,以及向管理平台发送携带所述第一MAC地址的MAC学习消息,以触发所述管理平台向远端VTEP发送携带所述第一MAC地址的MAC学习消息。
2.如权利要求1所述的方法,其特征在于,在本地添加所述第一MAC地址对应的本地MAC表项的步骤包括:
判断接收所述二层数据报文的接口是否为聚合口;
若是,则在所述第一MAC地址对应的软件MAC表项中新增标志位,并将所述标志位置为指定值,以及在本地MAC表中添加所述第一MAC地址对应的本地MAC表项;
否则,在所述第一MAC地址对应的软件MAC表项中标记为自学习,并在本地MAC表中添加所述第一MAC地址对应的本地MAC表项。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
接收管理平台下发的携带第二MAC地址的MAC学习消息,并判断本地是否存在所述第二MAC地址对应的本地MAC表项;
若存在所述第二MAC地址对应的本地MAC表项,则删除所述第二MAC地址对应的本地MAC表项,若所述第二MAC地址对应的软件MAC表项中标志位为指定值,或者,被标记为自学习,则触发管理平台向远端VTEP发送携带所述第二MAC地址的远端MAC删除消息,并在本地MAC表中添加所述第二MAC地址对应的远端MAC表项;
若不存在所述第二MAC地址对应的本地MAC表项,则在本地MAC表中添加所述第二MAC地址对应的远端MAC表项。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述分布式通信设备上其它接口板发送的携带有第三MAC地址的本地MAC同步消息;
判断本地是否存在所述第三MAC地址对应的远端MAC表项;
若存在,则不在本地MAC表中添加所述第三MAC地址对应的本地MAC表项,并不删除所述第三MAC地址对应的远端MAC,否则在本地MAC表中添加所述第三MAC地址对应的本地MAC表项。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收外部设备发送的目的MAC地址为第四MAC地址的二层数据报文;
判断本地与所述第四MAC地址对应的出接口是否为接收该二层数据报文的接口,若是,则删除所述第四MAC地址对应的本地MAC表项,触发管理平台向远端VTEP发送携带所述第四MAC地址的远端MAC删除消息,并泛洪该二层数据报文。
6.一种MAC地址学习装置,其特征在于,应用于分布式通信设备的目标接口板,所述装置包括:
接收单元,用于接收外部设备发送的源MAC地址为第一MAC地址的二层数据报文;
判断单元,用于判断所述目标接口板本地是否存在所述第一MAC地址对应的远端MAC表项;
执行单元,在所述判断单元判定所述目标接口板本地存在所述第一MAC地址对应的远端MAC表项时,所述执行单元不在所述目标接口板本地添加所述第一MAC对应的本地MAC表项,并不删除所述第一MAC地址对应的远端MAC表项;在所述判断单元判定所述目标接口板本地不存在所述第一MAC地址对应的远端MAC表项时,所述执行单元在所述目标接口板本地添加所述第一MAC地址对应的本地MAC表项,并向所述分布式通信设备上的其它接口板发送携带所述第一MAC地址的MAC同步消息,以及向管理平台发送携带所述第一MAC地址的MAC学习消息,以触发所述管理平台向远端VTEP发送携带所述第一MAC地址的MAC学习消息。
7.如权利要求6所述的装置,其特征在于,在本地添加所述第一MAC地址对应的本地MAC表项时,所述执行单元具体用于:
判断接收所述二层数据报文的接口是否为聚合口;
若是,则在所述第一MAC地址对应的软件MAC表项中新增标志位,并将所述标志位置为指定值,以及在本地MAC表中添加所述第一MAC地址对应的本地MAC表项;
否则,在所述第一MAC地址对应的软件MAC表项中标记为自学习,并在本地MAC表中添加所述第一MAC地址对应的本地MAC表项。
8.如权利要求7所述的装置,其特征在于,
所述接收单元还用于,接收管理平台下发的携带第二MAC地址的MAC学习消息,所述判断单元还用于,判断所述目标接口板本地是否存在所述第二MAC地址对应的本地MAC表项;
若所述判断单元判定存在所述第二MAC地址对应的本地MAC表项,则所述执行单元删除所述第二MAC地址对应的本地MAC表项,若所述第二MAC地址对应的软件MAC表项中标志位为指定值,或者,被标记为自学习,则所述执行单元触发管理平台向远端VTEP发送携带所述第二MAC地址的远端MAC删除消息,并在所述目标接口板的本地MAC表中添加所述第二MAC地址对应的远端MAC表项;
若所述判断单元判定不存在所述第二MAC地址对应的本地MAC表项,则所述执行单元在所述目标接口板的本地MAC表中添加所述第二MAC地址对应的远端MAC表项。
9.如权利要求6所述的装置,其特征在于,
所述接收单元还用于,接收所述分布式通信设备上其它接口板发送的携带有第三MAC地址的本地MAC同步消息;
所述判断单元还用于,判断所述目标接口板本地是否存在所述第三MAC地址对应的远端MAC表项;
若所述判断单元判定存在所述第三MAC地址对应的远端MAC表项,则所述执行单元不在所述目标接口板的本地MAC表中添加所述第三MAC地址对应的本地MAC表项,并不删除所述第三MAC地址对应的远端MAC,否则所述执行单元在所述目标接口板的本地MAC表中添加所述第三MAC地址对应的本地MAC表项。
10.如权利要求6所述的装置,其特征在于,
所述接收单元还用于,接收外部设备发送的目的MAC地址为第四MAC地址的二层数据报文;
所述判断单元还用于,判断所述目标接口板的本地MAC表中与所述第四MAC地址对应的出接口是否为接收该二层数据报文的接口,若所述判断单元判定所述目标接口板的本地MAC表中与所述第四MAC地址对应的出接口是接收该二层数据报文的接口,则所述执行单元删除所述第四MAC地址对应的本地MAC表项,触发管理平台向远端VTEP发送携带所述第四MAC地址的远端MAC删除消息,并泛洪该二层数据报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010065448.7A CN111327717B (zh) | 2020-01-20 | 2020-01-20 | 一种mac地址学习方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010065448.7A CN111327717B (zh) | 2020-01-20 | 2020-01-20 | 一种mac地址学习方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111327717A CN111327717A (zh) | 2020-06-23 |
CN111327717B true CN111327717B (zh) | 2022-04-01 |
Family
ID=71165138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010065448.7A Active CN111327717B (zh) | 2020-01-20 | 2020-01-20 | 一种mac地址学习方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111327717B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112350945B (zh) * | 2021-01-08 | 2021-04-06 | 南京易科腾信息技术有限公司 | Mac地址学习方法、网关设备及存储介质 |
CN113765806B (zh) * | 2021-09-02 | 2022-09-02 | 烽火通信科技股份有限公司 | Mac地址学习方法、装置、设备及可读存储介质 |
CN116055455A (zh) * | 2023-02-14 | 2023-05-02 | 迈普通信技术股份有限公司 | Mac地址老化处理方法、装置、lpu卡及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102801820A (zh) * | 2012-08-10 | 2012-11-28 | 杭州华三通信技术有限公司 | 一种evi网络中mac地址发布方法和装置 |
CN104243318A (zh) * | 2014-09-29 | 2014-12-24 | 杭州华三通信技术有限公司 | Vxlan网络中的mac地址学习方法及装置 |
CN104243630A (zh) * | 2014-09-29 | 2014-12-24 | 杭州华三通信技术有限公司 | Vxlan网络中的mac地址学习方法及装置 |
CN110049149A (zh) * | 2019-04-25 | 2019-07-23 | 新华三技术有限公司 | Mac地址学习方法、装置及分布式设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5718198B2 (ja) * | 2011-09-15 | 2015-05-13 | アラクサラネットワークス株式会社 | ネットワーク管理システム、及び装置 |
-
2020
- 2020-01-20 CN CN202010065448.7A patent/CN111327717B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102801820A (zh) * | 2012-08-10 | 2012-11-28 | 杭州华三通信技术有限公司 | 一种evi网络中mac地址发布方法和装置 |
CN104243318A (zh) * | 2014-09-29 | 2014-12-24 | 杭州华三通信技术有限公司 | Vxlan网络中的mac地址学习方法及装置 |
CN104243630A (zh) * | 2014-09-29 | 2014-12-24 | 杭州华三通信技术有限公司 | Vxlan网络中的mac地址学习方法及装置 |
CN110049149A (zh) * | 2019-04-25 | 2019-07-23 | 新华三技术有限公司 | Mac地址学习方法、装置及分布式设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111327717A (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111327717B (zh) | 一种mac地址学习方法及装置 | |
US20190123963A1 (en) | Method and apparatus for managing resources of network slice | |
EP3200393B1 (en) | Method and device for virtual network function management | |
CN107104824B (zh) | 一种网络拓扑确定方法和装置 | |
US9148387B2 (en) | Hardware hash table virtualization in multi-packet processor networking systems | |
US20140366027A1 (en) | Early network notification in live migration | |
US10547567B2 (en) | Packet forwarding | |
CN106254256B (zh) | 基于三层vxlan网关的数据报文转发方法和设备 | |
WO2016164610A4 (en) | Dynamic orchestration of overlay tunnels | |
US10181999B2 (en) | Optimizing information related to a route and/or a next hop for multicast traffic | |
CN115134315B (zh) | 报文转发方法及相关装置 | |
CN105791175A (zh) | 软件定义网络中控制传输资源的方法及设备 | |
CN102857414A (zh) | 一种转发表写入、报文转发方法及装置 | |
CN110808857B (zh) | 实现Kubernetes集群的网络互通方法、装置、设备以及存储介质 | |
US10397340B2 (en) | Multicast migration | |
US20210312472A1 (en) | Method and system for prediction of smart contract violation using dynamic state space creation | |
CN111143034B (zh) | 一种控制网络数据转发平面的方法、装置及系统 | |
US20220353170A1 (en) | Method, apparatus, and system for controlling a flow entry | |
US20170279624A1 (en) | Overlay network with optimized bum flooding | |
US11855855B2 (en) | Network operation method based on network functions virtualization device and storage medium | |
CN115277305A (zh) | 一种网络管理方法、装置、设备及机器可读存储介质 | |
US11252070B2 (en) | Adaptive polling in software-defined networking (SDN) environments | |
CN108200221B (zh) | 一种网络地址转换环境中转换规则同步方法及装置 | |
CN111510435A (zh) | 一种网络安全策略迁移方法及装置 | |
CN107846476A (zh) | 一种信息同步方法、设备及存储介质、程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |