CN112738285B - Mac映射表处理方法、装置、控制器和系统 - Google Patents
Mac映射表处理方法、装置、控制器和系统 Download PDFInfo
- Publication number
- CN112738285B CN112738285B CN201911028583.8A CN201911028583A CN112738285B CN 112738285 B CN112738285 B CN 112738285B CN 201911028583 A CN201911028583 A CN 201911028583A CN 112738285 B CN112738285 B CN 112738285B
- Authority
- CN
- China
- Prior art keywords
- mac
- mapping table
- vtep
- address
- addresses
- 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
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
-
- 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
-
- 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
- H04L45/745—Address table lookup; Address filtering
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开公开了一种MAC映射表处理方法、装置、控制器和系统,涉及IP网络智能化领域。其中的方法包括:对MAC映射表中的MAC地址进行聚合,得到基础MAC地址和MAC掩码地址;去除MAC映射表中的具有连续数值的MAC地址中的非基础MAC地址,并添加对应的MAC掩码地址,形成聚合映射表;将聚合映射表发送至对应的VTEP;VTEP在接收到数据包后,将数据包的目的MAC地址与接收的聚合映射表和自身形成的聚合映射表进行比对,确定目的VTEP,并根据目的VTEP进行数据转发。本公开能有效控制各VTEP上的映射表容量和增长速度,能够更灵活地实现大规模网络环境下大二层网络的搭建。
Description
技术领域
本公开涉及IP网络智能化领域,尤其涉及一种MAC映射表处理方法、装置、控制器和系统。
背景技术
云计算环境下,一般基于隧道方式来搭建跨主机、跨机架以及跨IDC(InternetData Center,互联网数据中心)的大二层网络,常用的隧道技术有VxLAN(VirtualExtensible Local Area Network,虚拟扩展局域网)、nvGRE(Network Virtualizationusing Generic Routing Encapsulation,使用通用路由封装的网络虚拟化)等。基于隧道方式的Overlay(一种网络架构上叠加的虚拟化技术模式)网络架构中,各VTEP(VXLANTunnel End Point,VXLAN隧道终端)一般需要通过自学习的方式来形成转发数据表所需的MAC(Media Access Control,媒体访问控制)/VTEP映射表。
但相关技术中,即使虚拟机的MAC的分布很有规律,这种基于自学习方式形成的MAC映射表无法也实现自动聚合,每台虚拟机均需要映射表中的一个表项来存储。在虚拟机数量规模巨大的大二层网络,基于该方式形成的VTEP映射表会对各VTEP形成较大的压力。
发明内容
本公开要解决的一个技术问题是,提供一种MAC映射表处理方法、装置、控制器和系统,能够减少MAC映射表对各类VTEP的容量压力。
根据本公开一方面,提出一种MAC映射表处理方法,包括:第一虚拟扩展局域网隧道终端VTEP对媒体访问控制MAC映射表中的MAC地址进行聚合,得到基础MAC地址和MAC掩码地址;第一VTEP去除MAC映射表中的具有连续数值的MAC地址中的非基础MAC地址,并添加对应的MAC掩码地址,形成聚合映射表;第一VTEP将聚合映射表发送至第二VTEP;第二VTEP在接收到数据包后,将数据包的目的MAC地址与接收的聚合映射表和自身形成的聚合映射表进行比对,确定目的VTEP,并根据目的VTEP进行数据转发。
在一些实施例中,第一VTEP得到MAC掩码地址包括:第一VTEP将MAC映射表中的基础MAC地址的数值,依次与具有连续数值的MAC地址中的其他MAC地址的数值进行第一异或运算;确定第一异或运算结果中多位连续数值的位置;将多位连续数值所在位置的数字设置为1,得到与基础MAC地址对应的MAC掩码地址。
在一些实施例中,第一VTEP得到MAC掩码地址还包括:第一VTEP将MAC映射表中的离散MAC地址的各位置的数值设置为0,得到与离散MAC地址对应的MAC掩码地址。
在一些实施例中,第一VTEP得到基础MAC地址包括:第一VTEP将MAC映射表中的MAC地址,按照数值由小到大的顺序进行排序;根据排序结果,将具有连续数值的MAC地址中的第一个MAC地址作为基础MAC地址。
在一些实施例中,第二VTEP确定目的VTEP包括:第二VTEP将数据包的目的MAC地址,与接收的聚合映射表和自身形成的聚合映射表中的第i个MAC地址进行第二异或运算,其中,接收的聚合映射表和自身形成的聚合映射表中有N个MAC地址,i为大于等于1小于等于N的正整数;将第二异或运算结果与第i个MAC地址对应的MAC掩码地址进行或运算;将或运算结果与第i个MAC地址对应的MAC掩码地址进行第三异或运算;若第三异或运算结果的全部数值为0,则第i个MAC地址对应的VTEP为目的VTEP。
在一些实施例中,若第三异或运算结果中没有全部数值为0对应的MAC地址,则第二VTEP利用泛洪方式进行数据转发。
根据本公开的另一方面,还提出一种VTEP,包括:MAC地址聚合单元,被配置为对媒体访问控制MAC映射表中的MAC地址进行聚合,得到基础MAC地址和MAC掩码地址;聚合映射表形成单元,被配置为去除MAC映射表中的具有连续数值的MAC地址中的非基础MAC地址,并添加对应的MAC掩码地址,形成聚合映射表;聚合映射表发送单元,被配置为将聚合映射表发送至第二虚拟扩展局域网隧道终端VTEP;目的VTEP确定单元,被配置为在接收到数据包后,将数据包的目的MAC地址与接收的聚合映射表和自身形成的聚合映射表进行比对,确定目的VTEP;数据转发单元,被配置为根据目的VTEP进行数据转发。
根据本公开的另一方面,还提出一种MAC映射表处理方法,包括:接收各虚拟扩展局域网隧道终端VTEP上报的媒体访问控制MAC映射表;对属于同一VTEP的MAC映射表中的MAC地址进行聚合,得到基础MAC地址和MAC掩码地址;去除各VTEP的MAC映射表中的具有连续数值的MAC地址中的非基础MAC地址,并添加对应的MAC掩码地址,形成聚合映射表;将聚合映射表按照需求发送至对应的VTEP,以便VTEP在接收到数据包后,将数据包的目的MAC地址与聚合映射表进行比对,确定目的VTEP,并根据目的VTEP进行数据转发。
在一些实施例中,得到MAC掩码地址包括:将属于同一VTEP的MAC映射表中的基础MAC地址的数值,依次与具有连续数值的MAC地址中的其他MAC地址的数值进行第一异或运算;确定第一异或运算结果中多位连续数值的位置;将多位连续数值所在位置的数字设置为1,得到与基础MAC地址对应的MAC掩码地址。
在一些实施例中,得到MAC掩码地址还包括:将属于同一VTEP的MAC映射表中的离散MAC地址的各位置的数值设置为0,得到与离散MAC地址对应的MAC掩码地址。
在一些实施例中,得到基础MAC地址包括:将属于同一VTEP的MAC映射表中的MAC地址,按照数值由小到大的顺序进行排序;根据排序结果,将具有连续数值的MAC地址中的第一个MAC地址作为基础MAC地址。
根据本公开的另一方面,还提出一种控制器,包括:MAC映射表接收单元,被配置为接收各虚拟扩展局域网隧道终端VTEP上报的媒体访问控制MAC映射表;MAC地址聚合确定单元,被配置为对属于同一VTEP的MAC映射表中的MAC地址进行聚合,得到基础MAC地址和MAC掩码地址;聚合映射表确定单元,被配置为去除各VTEP的MAC映射表中的具有连续数值的MAC地址中的非基础MAC地址,并添加对应的MAC掩码地址,形成聚合映射表;聚合映射表分发单元,被配置为将聚合映射表按照需求发送至对应的VTEP,以便VTEP在接收到数据包后,将数据包的目的MAC地址与聚合映射表进行比对,确定目的VTEP,并根据目的VTEP进行数据转发。
根据本公开的另一方面,还提出一种MAC映射表处理系统,包括:上述的控制器;以及VTEP,被配置为向控制器上报MAC映射表,以及在接收到数据包后,将数据包的目的MAC地址与聚合映射表进行比对,确定目的VTEP,并根据目的VTEP进行数据转发。
在一些实施例中,VTEP被配置为将数据包的目的MAC地址与聚合映射表中的第i个MAC地址进行第二异或运算,其中,聚合映射表中有N个MAC地址,i为大于等于1小于等于N的正整数;将第二异或运算结果与第i个MAC地址对应的MAC掩码地址进行或运算;将或运算结果与第i个MAC地址对应的MAC掩码地址进行第三异或运算;若第三异或运算结果的全部数值为0,则第i个MAC地址对应的VTEP为目的VTEP。
在一些实施例中,VTEP还被配置为若第三异或运算结果中没有全部数值为0对应的MAC地址,则利用泛洪方式进行数据转发。
根据本公开的另一方面,还提出一种MAC映射表处理装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器的指令执行如上述的MAC映射表处理方法。
根据本公开的另一方面,还提出一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述的MAC映射表处理方法。
与相关技术相比,本公开通过分布或集中控制的方式对MAC映射表进行有效聚合,将聚合后的映射表按需分发给各VTEP,有效控制各VTEP上的映射表容量和增长速度,即大幅减少了MAC映射表对各类VTEP的容量压力,能够更灵活地实现大规模网络环境下大二层网络的搭建。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1为本公开的MAC映射表处理方法的一些实施例的流程示意图。
图2为本公开的MAC映射表处理方法的另一些实施例的流程示意图。
图3为本公开的VTEP的一些实施例的结构示意图。
图4为本公开的控制器的一些实施例的结构示意图。
图5为本公开的MAC映射表处理系统的一些实施例的结构示意图。
图6为本公开的MAC映射表处理装置的一些实施例的结构示意图。
图7为本公开的MAC映射表处理装置的另一些实施例的结构示意图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
图1为本公开的MAC映射表处理方法的一些实施例的流程示意图。
在步骤110,第一VTEP对MAC映射表中的MAC地址进行聚合,得到基础MAC地址和MAC掩码地址。
各VTEP收集所关联的虚拟机的MAC地址、IP地址、以及归属VLAN(Virtual LocalArea Network,虚拟局域网)/VNI(Virtual Network Interface,虚拟网络接口)信息等。
在一些实施例中,第一VTEP将MAC映射表中的MAC地址,按照数值由小到大的顺序进行排序;根据排序结果,将具有连续数值的MAC地址中的第一个MAC地址作为基础MAC地址。
例如,如表1所示,对于VTEP1.1.1.1,对MAC地址按照数值由小到大的顺序进行排序,其中,排序后的MAC地址不一定连续,11:22:33:44:55:60为对应的基础MAC地址,11:22:33:44:55:65为对应的离散MAC地址。
在一些实施例中,若有两段或者两段以上具有连续数值的MAC地址,则可以得到两个或两个以上基础MAC地址,此处仅以一个基础MAC地址为例进行介绍。
VTEP | MAC | IP |
1.1.1.1 | 11:22:33:44:55:60 | 3.4.5.0 |
1.1.1.1 | 11:22:33:44:55:61 | 3.4.5.1 |
1.1.1.1 | 11:22:33:44:55:62 | 3.4.5.2 |
1.1.1.1 | 11:22:33:44:55:63 | 3.4.5.3 |
1.1.1.1 | 11:22:33:44:55:65 | 3.4.5.5 |
表1为MAC映射表的部分内容
MAC掩码地址与基础MAC地址、离散MAC地址相对应。在一些实施例中,第一VTEP将MAC映射表中的基础MAC地址的数值,依次与具有连续数值的MAC地址中的其他MAC地址的数值进行第一异或运算;确定第一异或运算结果中多位连续数值的位置;将多位连续数值所在位置的数字设置为1,得到与基础MAC地址对应的MAC掩码地址。第一VTEP将MAC映射表中的离散MAC地址的各位置的数值设置为0,得到与离散MAC地址对应的MAC掩码地址。
例如,将11:22:33:44:55:60分别与11:22:33:44:55:61、11:22:33:44:55:62、11:22:33:44:55:63进行异或运算,得到第一异或运算结果。其中,该实施例中,可以将MAC地址的数值由10进制数转换为2进制数后再进行异或运算,由于只有末尾数字不一样,因此,可以得到第一异或运算结果中的末尾数分别为01、10、11,其中,末尾数01、10、11为连续数值,则将末尾数的数值设置为11,然后将二进制数转换为10进制数,即该11:22:33:44:55:60对应的MAC掩码地址为00:00:00:00:00:03。
将离散MAC地址11:22:33:44:55:65的各位置的数值设置为0,得到与11:22:33:44:55:65对应的MAC掩码地址为00:00:00:00:00:00。
在步骤120,第一VTEP去除MAC映射表中的具有连续数值的MAC地址中的非基础MAC地址,并添加对应的MAC掩码地址,形成聚合映射表。例如,通过对表1的MAC映射表进行地址聚合,得到聚合映射表如表2所示,其中,在映射表中引入MACMask字段,即MAC掩码地址。
VTEP | MAC | MACMask |
1.1.1.1 | 11:22:33:44:55:61 | 00:00:00:00:00:03 |
1.1.1.1 | 11:22:33:44:55:65 | 00:00:00:00:00:00 |
表2为聚合映射表的部分内容
在步骤130,第一VTEP将聚合映射表发送至第二VTEP。
在步骤140,第二VTEP在接收到数据包后,将数据包的目的MAC地址与接收的聚合映射表和自身形成的聚合映射表进行比对,确定目的VTEP。
在一些实施例中,第二VTEP将数据包的目的MAC地址,与接收的聚合映射表和自身形成的聚合映射表中的第i个MAC地址进行第二异或运算,其中,接收的聚合映射表和自身形成的聚合映射表中有N个MAC地址,i为大于等于1小于等于N的正整数;将第二异或运算结果与第i个MAC地址对应的MAC掩码地址进行或运算;将或运算结果与第i个MAC地址对应的MAC掩码地址进行第三异或运算;若第三异或运算结果的全部数值为0,则第i个MAC地址对应的VTEP为目的VTEP。
例如,第二VTEP接收的聚合映射表和自身形成的聚合映射表如表3所示。
VTEP | MAC | MACMask |
2.2.2.2 | 11:22:33:44:55:60 | 00:00:00:00:00:00 |
3.3.3.3 | 11:22:33:44:55:61 | 00:00:00:00:00:03 |
4.4.4.4 | 11:22:33:44:55:65 | 00:00:00:00:00:00 |
表3为接收的聚合映射表和自身形成的聚合映射表
若第二VTEP接收到的数据包的目的MAC为11:22:33:44:55:62,则将11:22:33:44:55:62分别与各VTEP对应的聚合映射表中的MAC地址、MACMask地址进行【【(数据包目的MAC)XOR(聚合映射表MAC)】OR【聚合映射表MacMask】】XOR【聚合映射表MacMask】。则可以得到VTEP2.2.2.2对应的结果为00:00:00:00:00:02,VTEP3.3.3.3对应的结果为00:00:00:00:00:00,VTEP4.4.4.4对应的结果为00:00:00:00:00:02,则VTEP3.3.3.3为目的VTEP。
若第二VTEP接收到的数据包的目的MAC为11:22:33:44:55:60,则将11:22:33:44:55:60分别与各VTEP对应的聚合映射表中的MAC地址、MACMask地址进行【【(数据包目的MAC)XOR(聚合映射表MAC)】OR【聚合映射表MacMask】】XOR【聚合映射表MacMask】。则可以得到VTEP2.2.2.2对应的结果为00:00:00:00:00:00,VTEP3.3.3.3对应的结果为00:00:00:00:00:02,VTEP4.4.4.4对应的结果为00:00:00:00:00:05,则VTEP2.2.2.2为目的VTEP。
上述对应的目的VTEP查找算法可适配不同类型、位于网络不同层次的VTEP。
在步骤150,第二VTEP根据目的VTEP进行数据转发。
在一些实施例中,若第三异或运算结果中没有全部数值为0对应的MAC地址,则第二VTEP利用泛洪方式进行数据转发。
在上述实施例中,VTEP通过分布控制的方式对MAC映射表进行有效聚合,将聚合后的映射表按需分发给各VTEP,有效控制各VTEP上的映射表容量和增长速度,即大幅减少了MAC映射表对各类VTEP的容量压力,能够更灵活地实现大规模网络环境下大二层网络的搭建。
图2为本公开的MAC映射表处理方法的另一些实施例的流程示意图。该实施例的步骤由控制器执行。
在步骤210,控制器接收各VTEP上报的MAC映射表。例如,如表4所示。
VTEP | MAC | IP |
1.1.1.1 | 11:22:33:44:55:60 | 3.4.5.0 |
1.1.1.1 | 11:22:33:44:55:61 | 3.4.5.1 |
1.1.1.1 | 11:22:33:44:55:62 | 3.4.5.2 |
1.1.1.1 | 11:22:33:44:55:63 | 3.4.5.3 |
2.2.2.2 | 11:22:33:44:55:64 | 3.4.5.4 |
2.2.2.2 | 11:22:33:44:55:65 | 3.4.5.5 |
2.2.2.2 | 11:22:33:44:55:66 | 3.4.5.6 |
2.2.2.2 | 11:22:33:44:55:67 | 3.4.5.7 |
表4为MAC映射表的部分内容
在步骤220,控制器对属于同一VTEP的MAC映射表中的MAC地址进行聚合,得到基础MAC地址和MAC掩码地址。
在一些实施例中,控制器将属于同一VTEP的MAC映射表中的MAC地址,按照数值由小到大的顺序进行排序;根据排序结果,将具有连续数值的MAC地址中的第一个MAC地址作为基础MAC地址。
在一些实施例中,将属于同一VTEP的MAC映射表中的基础MAC地址的数值,依次与具有连续数值的MAC地址中的其他MAC地址的数值进行第一异或运算;确定第一异或运算结果中多位连续数值的位置;将多位连续数值所在位置的数字设置为1,得到与基础MAC地址对应的MAC掩码地址。将属于同一VTEP的MAC映射表中的离散MAC地址的各位置的数值设置为0,得到与离散MAC地址对应的MAC掩码地址。
在步骤230,控制器去除各VTEP的MAC映射表中的具有连续数值的MAC地址中的非基础MAC地址,并添加对应的MAC掩码地址,形成聚合映射表。例如表3所示。
在步骤240,控制器将聚合映射表按照需求发送至对应的VTEP。在一些实施例中,控制器可以将聚合映射表中的全部信息发送给各VTEP,也可以将聚合映射表中部分内容发送给相应的VTEP,其中,部分内容即不包含接收聚合映射表的VTEP相关的内容。
在步骤250,VTEP在接收到数据包后,将数据包的目的MAC地址与聚合映射表进行比对,确定目的VTEP。若控制器将聚合映射表的全部内容发送给对应的VTEP,则该VTEP将数据包的目的MAC地址与接收的聚合映射表进行比对;若控制器将聚合映射表的部分内容发送给对应的VTEP,则该VTEP将数据包的目的MAC地址与接收的聚合映射表以及自身生成的聚合映射表进行比对。
在一些实施例中,VTEP被配置为将数据包的目的MAC地址与聚合映射表中的第i个MAC地址进行第二异或运算,其中,聚合映射表中有N个MAC地址,i为大于等于1小于等于N的正整数;将第二异或运算结果与第i个MAC地址对应的MAC掩码地址进行或运算;将或运算结果与第i个MAC地址对应的MAC掩码地址进行第三异或运算;若第三异或运算结果的全部数值为0,则第i个MAC地址对应的VTEP为目的VTEP。
上述对应的目的VTEP查找算法可适配不同类型、位于网络不同层次的VTEP。
在步骤260,VTEP根据目的VTEP进行数据转发。
在一些实施例中,若第三异或运算结果中没有全部数值为0对应的MAC地址,则第二VTEP利用泛洪方式进行数据转发。
在上述实施例中,控制器通过集中控制的方式对MAC映射表进行有效聚合,将聚合后的映射表按需分发给各VTEP,有效减少各VTEP设备MAC表容量,该实施例可集中灵活调度,可扩展性强,即实现云网快速联动、灵活部署,实现租户跨网络大二层的灵活组网,灵活应对大二层网络的规模扩展。
图3为本公开的VTEP的一些实施例的结构示意图。该VTEP即可以实现MAC映射表聚合,也可以实现目标VTEP查找。该VTEP包括MAC地址聚合单元310、聚合映射表形成单元320、聚合映射表发送单元330、目的VTEP确定单元340和数据转发单元350。
MAC地址聚合单元310被配置为对MAC映射表中的MAC地址进行聚合,得到基础MAC地址和MAC掩码地址。
在一些实施例中,MAC地址聚合单元310将MAC映射表中的MAC地址,按照数值由小到大的顺序进行排序;根据排序结果,将具有连续数值的MAC地址中的第一个MAC地址作为基础MAC地址。
在一些实施例中,MAC地址聚合单元310将MAC映射表中的基础MAC地址的数值,依次与具有连续数值的MAC地址中的其他MAC地址的数值进行第一异或运算;确定第一异或运算结果中多位连续数值的位置;将多位连续数值所在位置的数字设置为1,得到与基础MAC地址对应的MAC掩码地址。MAC地址聚合单元310将MAC映射表中的离散MAC地址的各位置的数值设置为0,得到与离散MAC地址对应的MAC掩码地址。
聚合映射表形成单元320被配置为去除MAC映射表中的具有连续数值的MAC地址中的非基础MAC地址,并添加对应的MAC掩码地址,形成聚合映射表。
聚合映射表发送单元330被配置为将聚合映射表发送至第二VTEP。
目的VTEP确定单元340被配置为在接收到数据包后,将数据包的目的MAC地址与接收的聚合映射表和自身形成的聚合映射表进行比对,确定目的VTEP;
在一些实施例中,目的VTEP确定单元340将数据包的目的MAC地址,与接收的聚合映射表和自身形成的聚合映射表中的第i个MAC地址进行第二异或运算,其中,接收的聚合映射表和自身形成的聚合映射表中有N个MAC地址,i为大于等于1小于等于N的正整数;将第二异或运算结果与第i个MAC地址对应的MAC掩码地址进行或运算;将或运算结果与第i个MAC地址对应的MAC掩码地址进行第三异或运算;若第三异或运算结果的全部数值为0,则第i个MAC地址对应的VTEP为目的VTEP。
数据转发单元350被配置为根据目的VTEP进行数据转发。
在一些实施例中,若第三异或运算结果中没有全部数值为0对应的MAC地址,则数据转发单元350利用泛洪方式进行数据转发。
在上述实施例中,VTEP通过分布控制的方式对MAC映射表进行有效聚合,将聚合后的映射表按需分发给各VTEP,有效控制各VTEP上的映射表容量和增长速度,能够实现租户跨网络大二层的灵活组网。
图4为本公开的控制器的一些实施例的结构示意图。该控制器包括MAC映射表接收单元410、MAC地址聚合确定单元420、聚合映射表确定单元430和聚合映射表分发单元440。
MAC映射表接收单元410被配置为接收各VTEP上报的MAC映射表。
MAC地址聚合确定单元420被配置为对属于同一VTEP的MAC映射表中的MAC地址进行聚合,得到基础MAC地址和MAC掩码地址。
在一些实施例中,MAC地址聚合确定单元420将属于同一VTEP的MAC映射表中的MAC地址,按照数值由小到大的顺序进行排序;根据排序结果,将具有连续数值的MAC地址中的第一个MAC地址作为基础MAC地址。
在一些实施例中,MAC地址聚合确定单元420将属于同一VTEP的MAC映射表中的基础MAC地址的数值,依次与具有连续数值的MAC地址中的其他MAC地址的数值进行第一异或运算;确定第一异或运算结果中多位连续数值的位置;将多位连续数值所在位置的数字设置为1,得到与基础MAC地址对应的MAC掩码地址。将属于同一VTEP的MAC映射表中的离散MAC地址的各位置的数值设置为0,得到与离散MAC地址对应的MAC掩码地址。
聚合映射表确定单元430被配置为去除各VTEP的MAC映射表中的具有连续数值的MAC地址中的非基础MAC地址,并添加对应的MAC掩码地址,形成聚合映射表。
聚合映射表分发单元440被配置为将聚合映射表按照需求发送至对应的VTEP,以便VTEP在接收到数据包后,将数据包的目的MAC地址与聚合映射表进行比对,确定目的VTEP,并根据目的VTEP进行数据转发。
在上述实施例中,控制器通过集中控制的方式对MAC映射表进行有效聚合,将聚合后的映射表按需分发给各VTEP,有效减少各VTEP设备MAC表容量,能够更灵活地实现大规模网络环境下大二层网络的搭建。
图5为本公开的MAC映射表处理系统的一些实施例的结构示意图。该系统包括上述的控制器510,还包括多个VTEP 520。其中,控制器510已在上述实施例中进行了详细介绍,此处不再进一步阐述。
VTEP 520被配置为向控制器上报MAC映射表,以及在接收到数据包后,将数据包的目的MAC地址与聚合映射表进行比对,确定目的VTEP,并根据目的VTEP进行数据转发。
在一些实施例中,VTEP 520被配置为将数据包的目的MAC地址与聚合映射表中的第i个MAC地址进行第二异或运算,其中,聚合映射表中有N个MAC地址,i为大于等于1小于等于N的正整数;将第二异或运算结果与第i个MAC地址对应的MAC掩码地址进行或运算;将或运算结果与第i个MAC地址对应的MAC掩码地址进行第三异或运算;若第三异或运算结果的全部数值为0,则第i个MAC地址对应的VTEP为目的VTEP。
在一些实施例中,VTEP 520还被配置为若第三异或运算结果中没有全部数值为0对应的MAC地址,则利用泛洪方式进行数据转发。
该实施例中,目的VTEP查找算法可适配不同类型、位于网络不同层次的VTEP。
图6为本公开的MAC映射表处理装置的一些实施例的结构示意图。该装置包括存储器610和处理器620,其中:存储器610可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储图1-2所对应实施例中的指令。处理器620耦接至存储器610,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器620用于执行存储器中存储的指令。
在一些实施例中,还可以如图7所示,该装置700包括存储器710和处理器720。处理器720通过BUS总线730耦合至存储器77。该装置700还可以通过存储接口740连接至外部存储装置750以便调用外部数据,还可以通过网络接口760连接至网络或者另外一台计算机系统(未标出),此处不再进行详细介绍。
在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,大幅减少了MAC映射表对各类VTEP的容量压力,能够更灵活地实现大规模网络环境下大二层网络的搭建。
在另一些实施例中,一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现图1-2所对应实施例中的方法的步骤。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。
Claims (15)
1.一种MAC映射表处理方法,包括:
第一虚拟扩展局域网隧道终端VTEP对媒体访问控制MAC映射表中的MAC地址进行聚合,得到基础MAC地址和MAC掩码地址;
所述第一VTEP去除所述MAC映射表中的具有连续数值的MAC地址中的非基础MAC地址,并添加对应的所述MAC掩码地址,形成聚合映射表;
所述第一VTEP将所述聚合映射表发送至第二VTEP;
所述第二VTEP在接收到数据包后,将所述数据包的目的MAC地址与接收的聚合映射表和自身形成的聚合映射表中的第i个MAC地址进行第二异或运算,其中,所述接收的聚合映射表和自身形成的聚合映射表中有N个MAC地址,i为大于等于1小于等于N的正整数;将第二异或运算结果与所述第i个MAC地址对应的MAC掩码地址进行或运算;将或运算结果与所述第i个MAC地址对应的MAC掩码地址进行第三异或运算;若第三异或运算结果的全部数值为0,则所述第i个MAC地址对应的VTEP为目的VTEP,并根据所述目的VTEP进行数据转发。
2.根据权利要求1所述的MAC映射表处理方法,其中,所述第一VTEP得到MAC掩码地址包括:
所述第一VTEP将所述MAC映射表中的基础MAC地址的数值,依次与具有连续数值的MAC地址中的其他MAC地址的数值进行第一异或运算;
确定第一异或运算结果中多位连续数值的位置;
将所述多位连续数值所在位置的数字设置为1,得到与所述基础MAC地址对应的MAC掩码地址。
3.根据权利要求2所述的MAC映射表处理方法,其中,所述第一VTEP得到MAC掩码地址还包括:
所述第一VTEP将MAC映射表中的离散MAC地址的各位置的数值设置为0,得到与所述离散MAC地址对应的MAC掩码地址。
4.根据权利要求1至3任一所述的MAC映射表处理方法,其中,所述第一VTEP得到基础MAC地址包括:
所述第一VTEP将所述MAC映射表中的MAC地址,按照数值由小到大的顺序进行排序;
根据排序结果,将具有连续数值的MAC地址中的第一个MAC地址作为所述基础MAC地址。
5.根据权利要求1至3任一所述的MAC映射表处理方法,还包括:
若所述第三异或运算结果中没有全部数值为0对应的MAC地址,则所述第二VTEP利用泛洪方式进行数据转发。
6.一种虚拟扩展局域网隧道终端VTEP,包括:
MAC地址聚合单元,被配置为对媒体访问控制MAC映射表中的MAC地址进行聚合,得到基础MAC地址和MAC掩码地址;
聚合映射表形成单元,被配置为去除所述MAC映射表中的具有连续数值的MAC地址中的非基础MAC地址,并添加对应的所述MAC掩码地址,形成聚合映射表;
聚合映射表发送单元,被配置为将所述聚合映射表发送至第二VTEP;
目的VTEP确定单元,被配置为在接收到数据包后,将所述数据包的目的MAC地址与接收的聚合映射表和自身形成的聚合映射表中的第i个MAC地址进行第二异或运算,其中,所述接收的聚合映射表和自身形成的聚合映射表中有N个MAC地址,i为大于等于1小于等于N的正整数;将第二异或运算结果与所述第i个MAC地址对应的MAC掩码地址进行或运算;将或运算结果与所述第i个MAC地址对应的MAC掩码地址进行第三异或运算;若第三异或运算结果的全部数值为0,则所述第i个MAC地址对应的VTEP为目的VTEP;
数据转发单元,被配置为根据所述目的VTEP进行数据转发。
7.一种MAC映射表处理方法,包括:
接收各虚拟扩展局域网隧道终端VTEP上报的媒体访问控制MAC映射表;
对属于同一VTEP的MAC映射表中的MAC地址进行聚合,得到基础MAC地址和MAC掩码地址;
去除各VTEP的MAC映射表中的具有连续数值的MAC地址中的非基础MAC地址,并添加对应的所述MAC掩码地址,形成聚合映射表;
将所述聚合映射表按照需求发送至对应的VTEP,以便所述VTEP在接收到数据包后,将所述数据包的目的MAC地址与聚合映射表中的第i个MAC地址进行第二异或运算,其中,所述接收的聚合映射表和自身形成的聚合映射表中有N个MAC地址,i为大于等于1小于等于N的正整数;将第二异或运算结果与所述第i个MAC地址对应的MAC掩码地址进行或运算;将或运算结果与所述第i个MAC地址对应的MAC掩码地址进行第三异或运算;若第三异或运算结果的全部数值为0,则所述第i个MAC地址对应的VTEP为目的VTEP,并根据所述目的VTEP进行数据转发。
8.根据权利要求7所述的MAC映射表处理方法,其中,得到MAC掩码地址包括:
将属于同一VTEP的MAC映射表中的基础MAC地址的数值,依次与具有连续数值的MAC地址中的其他MAC地址的数值进行第一异或运算;
确定第一异或运算结果中多位连续数值的位置;
将所述多位连续数值所在位置的数字设置为1,得到与所述基础MAC地址对应的MAC掩码地址。
9.根据权利要求8所述的MAC映射表处理方法,其中,得到MAC掩码地址还包括:
将属于同一VTEP的MAC映射表中的离散MAC地址的各位置的数值设置为0,得到与所述离散MAC地址对应的MAC掩码地址。
10.根据权利要求7至9任一所述的MAC映射表处理方法,其中,得到基础MAC地址包括:
将属于同一VTEP的MAC映射表中的MAC地址,按照数值由小到大的顺序进行排序;
根据排序结果,将具有连续数值的MAC地址中的第一个MAC地址作为所述基础MAC地址。
11.一种控制器,包括:
MAC映射表接收单元,被配置为接收各虚拟扩展局域网隧道终端VTEP上报的媒体访问控制MAC映射表;
MAC地址聚合确定单元,被配置为对属于同一VTEP的MAC映射表中的MAC地址进行聚合,得到基础MAC地址和MAC掩码地址;
聚合映射表确定单元,被配置为去除各VTEP的MAC映射表中的具有连续数值的MAC地址中的非基础MAC地址,并添加对应的所述MAC掩码地址,形成聚合映射表;
聚合映射表分发单元,被配置为将所述聚合映射表按照需求发送至对应的VTEP,以便所述VTEP在接收到数据包后,将所述数据包的目的MAC地址与聚合映射表中的第i个MAC地址进行第二异或运算,其中,所述接收的聚合映射表和自身形成的聚合映射表中有N个MAC地址,i为大于等于1小于等于N的正整数;将第二异或运算结果与所述第i个MAC地址对应的MAC掩码地址进行或运算;将或运算结果与所述第i个MAC地址对应的MAC掩码地址进行第三异或运算;若第三异或运算结果的全部数值为0,则所述第i个MAC地址对应的VTEP为目的VTEP,并根据所述目的VTEP进行数据转发。
12.一种MAC映射表处理系统,包括:
权利要求11所述的控制器;以及
VTEP,被配置为向所述控制器上报MAC映射表,以及在接收到数据包后,将所述数据包的目的MAC地址与聚合映射表进行比对,确定目的VTEP,并根据所述目的VTEP进行数据转发。
13.根据权利要求12所述的MAC映射表处理系统,其中,
所述VTEP还被配置为若所述第三异或运算结果中没有全部数值为0对应的MAC地址,则利用泛洪方式进行数据转发。
14.一种MAC映射表处理装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如权利要求1至5、7至10任一项所述的MAC映射表处理方法。
15.一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现权利要求1至5、7至10任一项所述的MAC映射表处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911028583.8A CN112738285B (zh) | 2019-10-28 | 2019-10-28 | Mac映射表处理方法、装置、控制器和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911028583.8A CN112738285B (zh) | 2019-10-28 | 2019-10-28 | Mac映射表处理方法、装置、控制器和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112738285A CN112738285A (zh) | 2021-04-30 |
CN112738285B true CN112738285B (zh) | 2022-11-18 |
Family
ID=75588867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911028583.8A Active CN112738285B (zh) | 2019-10-28 | 2019-10-28 | Mac映射表处理方法、装置、控制器和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112738285B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6826621B1 (en) * | 2000-04-24 | 2004-11-30 | International Business Machines Corporation | Method and system for aggregating interface addresses |
CN107645569A (zh) * | 2016-07-22 | 2018-01-30 | 北京信威通信技术股份有限公司 | 一种生成子网集的方法及装置 |
CN109347748A (zh) * | 2018-11-29 | 2019-02-15 | 新华三技术有限公司 | 一种同步路由信息的方法和装置 |
CN109525683A (zh) * | 2018-11-14 | 2019-03-26 | 中盈优创资讯科技有限公司 | 城域网ipv4地址的空闲地址挖潜方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7280752B2 (en) * | 2002-02-22 | 2007-10-09 | Intel Corporation | Network address routing using multiple routing identifiers |
-
2019
- 2019-10-28 CN CN201911028583.8A patent/CN112738285B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6826621B1 (en) * | 2000-04-24 | 2004-11-30 | International Business Machines Corporation | Method and system for aggregating interface addresses |
CN107645569A (zh) * | 2016-07-22 | 2018-01-30 | 北京信威通信技术股份有限公司 | 一种生成子网集的方法及装置 |
CN109525683A (zh) * | 2018-11-14 | 2019-03-26 | 中盈优创资讯科技有限公司 | 城域网ipv4地址的空闲地址挖潜方法及装置 |
CN109347748A (zh) * | 2018-11-29 | 2019-02-15 | 新华三技术有限公司 | 一种同步路由信息的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112738285A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9385954B2 (en) | Hashing techniques for use in a network environment | |
CN103117931B (zh) | 基于哈希表和tcam表的mac地址硬件学习方法及系统 | |
US10193806B2 (en) | Performing a finishing operation to improve the quality of a resulting hash | |
CN105122745A (zh) | 用于网络设备的高效最长前缀匹配技术 | |
CN105391797A (zh) | 基于sdn的云服务器负载均衡方法及装置 | |
CN108259328B (zh) | 报文转发方法及装置 | |
CN104954270A (zh) | 用于在多包处理器联网系统中聚合硬件路由资源的技术 | |
US9716592B1 (en) | Traffic distribution over multiple paths in a network while maintaining flow affinity | |
CN107659498B (zh) | 一种报文转发方法和装置 | |
CN104038425A (zh) | 转发以太网报文的方法和装置 | |
CN112532501B (zh) | 主机物理地址处理方法和装置、计算机可读存储介质 | |
CN104394083A (zh) | 转发表项处理的方法、报文转发的方法及其装置和系统 | |
CN113132202B (zh) | 一种报文传输方法及相关设备 | |
CN106209636A (zh) | 从vlan至vxlan的组播数据报文转发方法和设备 | |
CN107409095B (zh) | 从交换机的输入端口向输出端口路由分组的方法、系统、介质和交换机 | |
CN112787938B (zh) | 一种路由表项配置方法及装置 | |
CN112738285B (zh) | Mac映射表处理方法、装置、控制器和系统 | |
CN105701128A (zh) | 一种查询语句的优化方法和装置 | |
CN107786447A (zh) | 一种基于fpga的报文转发方法及设备 | |
CN104253754A (zh) | 一种acl快速匹配的方法和设备 | |
CN112187636B (zh) | Ecmp路由的存储方法及装置 | |
CN105471756A (zh) | 一种数据包处理方法及装置 | |
CN106254282B (zh) | 链路聚合的实现方法及装置 | |
CN117459462A (zh) | 网络负载均衡方法和装置 | |
CN108990126B (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 |