CN104038425A - 转发以太网报文的方法和装置 - Google Patents
转发以太网报文的方法和装置 Download PDFInfo
- Publication number
- CN104038425A CN104038425A CN201310071261.8A CN201310071261A CN104038425A CN 104038425 A CN104038425 A CN 104038425A CN 201310071261 A CN201310071261 A CN 201310071261A CN 104038425 A CN104038425 A CN 104038425A
- Authority
- CN
- China
- Prior art keywords
- ethernet message
- address
- mac
- receiving
- mac address
- 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.)
- Granted
Links
Classifications
-
- 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
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- 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
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- 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/25—Mapping addresses of the same type
- H04L61/2596—Translation of addresses of the same type other than IP, e.g. translation from MAC to MAC addresses
-
- 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)
- Power Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请提供转发以太网报文的方法和装置。该方法包括对接收到的以太网报文的IP地址进行哈希运算得到哈希值;基于所述哈希值,利用预先设置的查找表来判定是否需要对接收到的以太网报文进行MAC网络地址转换处理,其中所述预先设置的查找表包括一个或多个索引值以及与各索引值对应的一个或多个数据集合,所述索引值与通过对虚拟机的IP地址进行哈希运算得到的值相对应,所述数据集合包括虚拟机的IP地址、本地MAC地址和对应的全局MAC地址;以及根据判定结果,进行对接收到的以太网报文的转发。由此可以提高MAC网络地址转换速度,能够在减少核心交换机的MAC表规模和提高虚拟比的情况下进一步提高以太网报文转发效率,优化网络收发包性能。
Description
技术领域
本申请涉及计算机通信领域,具体地涉及一种转发以太网报文的方法和装置。
背景技术
这里的内容尽管是在背景技术标题下阐述的,但是其中也包含了本发明人的发现和构思,所以不应被完全视为现有技术。
在以太网络中,核心交换机的每个端口都级联很多主机(物理机),并且一般都工作在全双工方式。也就是,核心交换机能同时连通许多对端口,使每一对相互通信的物理机都能像独占通信媒体那样无冲突地传输数据。而在每台物理机上都可以实现若干虚拟机,每台虚拟机都有为其预先配置的IP地址和MAC地址。核心交换机凭借其上存储的MAC地址表,与所述在物理机上实现的虚拟机进行数据传输,该MAC地址表包括各MAC地址和交换机端口的对应关系。
当从发送方(物理机)接收到报文时,核心交换机根据其上存储的MAC地址表,找到与报文中的目的地MAC地址相对应的端口,并将报文发送到与该端口连接的物理机(接收方)。当在物理机上接收到来自核心交换机的报文(入包)时,物理机根据该入包报文中的目的地MAC地址将该入包报文转发到具有相应MAC地址的虚拟机。相应地,当在物理机上接收到来自虚拟机的报文(出包)时,物理机将该出包报文直接转发给核心交换机,然后由核心交换机如上所述那样根据其上存储的MAC地址表再发送给相应的目的地物理机。
然而,上述以太网络中的核心交换机的MAC地址表的容量是有限的,随着云计算环境下虚拟机数量的不断增加,核心交换机的MAC地址表的容量将达到极限,从而不能容纳更多虚拟机。
为了提高虚拟比,而不必更换核心交换机相关硬件,目前一般通过在物理机上通过基于MAC网络地址转换(NAT)转发以太网报文来解决上述问题。在这种方法中,为若干不同的虚拟机(拥有不同的本地MAC地址和IP地址)分配一个共有的MAC地址,称为全局MAC地址,并在物理机上维护一个查找表,以记录虚拟机的IP地址、本地MAC地址和全局MAC地址的对应关系。当接收到来自虚拟机的报文(出包)时,物理机依据报文中的源IP地址在查找表中查找该IP地址对应的全局MAC地址,并将报文中的源MAC地址替换为全局MAC地址,再将报文转发给核心交换机。当接收到来自核心交换机的报文(入包)时,在报文中的目的地MAC地址为全局MAC地址的情况下,物理机依据报文中的目的地IP地址在查找表中查找该IP地址对应的本地MAC地址,并将报文中的目的地MAC地址替换为本地MAC地址,然后再转发给具有该本地MAC地址的虚拟机。由于在核心交换机的MAC表中只需要记录全局MAC地址,而一个全局MAC地址可以对应多个虚拟机的本地MAC地址,此方法减少了核心交换机的MAC表占用量,可支持更多的虚拟机。
然而,在基于这样的MAC网络地址转换的转发以太网报文的方法中,尽管通过MAC网络地址转换可以减小核心交换机MAC表规模,但是MAC网络地址转换速度较为缓慢,以太网报文转发效率较低,使得网络收发包性能受到很大影响。
发明内容
因此,本申请的主要目的在于提供一种能够更有效地转发以太网报文并且同时减少核心交换机的MAC表规模和提高虚拟比的技术,从而克服上述缺陷。
根据本申请的一个方面,提供一种转发以太网报文的方法,其特征在于,包括:对接收到的以太网报文的IP地址进行哈希运算得到哈希值;基于所述哈希值,利用预先设置的查找表来判定是否需要对接收到的以太网报文进行MAC网络地址转换处理,其中所述预先设置的查找表包括一个或多个索引值以及与各索引值对应的一个或多个数据集合,所述索引值与通过对虚拟机的IP地址进行哈希运算得到的值相对应,所述数据集合包括虚拟机的IP地址、本地MAC地址和对应的全局MAC地址;以及根据判定结果,进行对接收到的以太网报文的转发。
根据本申请的另一方面,提供一种转发以太网报文的装置,其特征在于,包括:运算模块,用于对接收到的以太网报文的IP地址进行哈希运算得到哈希值;判定模块,用于基于所述哈希值,利用预先设置的查找表来判定是否需要对接收到的以太网报文进行MAC网络地址转换处理,其中所述预先设置的查找表包括一个或多个索引值以及与各索引值对应的一个或多个数据集合,所述索引值与通过对虚拟机的IP地址进行哈希运算得到的值相对应,所述数据集合包括虚拟机的IP地址、本地MAC地址和对应的全局MAC地址;以及转发模块,用于根据判定结果,进行对接收到的以太网报文的转发。
与现有技术相比,根据本申请的技术方案,能够提高MAC网络地址转换速度,进而能够在减少核心交换机的MAC表规模和提高虚拟比的情况下进一步提高以太网报文转发效率,优化网络收发包性能。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出根据本申请一个实施例的转发以太网报文的方法的流程图;
图2示出根据本申请另一个实施例的转发以太网报文的方法的流程图;
图3示出根据本申请一个实施例的MAC网络地址转换处理的流程图;
图4示意性地示出了IP报文和ARP报文的传输格式;
图5示出根据本申请一个实施例的转发以太网报文的装置的框图。
具体实施方式
如上所述,本申请发明人注意到,在现有的物理机上转发以太网报文的方法中,需要依据实际的IP地址在查找表中进行遍历查找,即在查找过程中,须将接收到的报文中的IP地址与查找表中的每一个IP地址逐个对比直至IP地址吻合,进而查找到虚拟机的IP地址、本地MAC地址和全局MAC地址的对应关系来进行MAC网络地址转换处理。这样的查找导致MAC网络地址转换速度较为缓慢,以太网报文转发效率降低,从而成为网络收发包性能瓶颈。
为此,本申请的主要思想在于,通过实现更快速的查找方式来提高MAC网络地址转换速度,从而提高以太网报文转发效率,进而优化网络收发包性能。具体而言,本发明人想到,如果通过将所有虚拟机的IP地址、本地MAC地址和全局MAC地址的对应关系按照某种规则预先进行分组,对每个分组建立一个索引值,然后在转发以太网报文时的MAC网络地址转换过程中,通过索引值查找所需虚拟机的MAC地址对应关系。由此可以将查找范围从所有虚拟机缩小至小部分有关的虚拟机,从而可以提高查找效率,进而提高MAC网络地址转换速度和以太网报文的转发效率,优化网络收发包性能。
为使本申请的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本申请作进一步地详细说明。
参考图1,图1示出根据本申请一个实施例的转发以太网报文的方法的流程图。该方法包括步骤S110-步骤S130,这些步骤可以在作为以太网络中的网络节点的物理机上实现。
在步骤S110处,对接收到的以太网报文的IP地址进行哈希运算得到哈希值。
具体而言,物理机(接收方)可以从核心交换机接收由其它物理机(发送方)发送来的以太网报文。
在一个实施例中,以太网报文可以包括根据因特网协议(IP,InternetProtocol)传输的诸如IPv4(Internet Protocol version4,IPv4,因特网协议第四版)报文之类的IP报文和/或根据地址解析协议(ARP,Address ResolutionProtocol)传输的ARP报文。图4示意性地示出了IP报文和ARP报文的传输格式。
哈希(hash)运算是本领域技术人员熟知的一种算法,用于将任意长度的二进制值映射为固定长度的较小二进制值,这个较小二进制值称为哈希值。这里通过对接收到的以太网报文的IP地址进行哈希运算得到IP地址的相应哈希值。在一个实施例中,可以通过取IP地址的后若干位作为哈希值。例如IP地址值为192.168.0.1,则取其后16位的值“0.1”得到哈希值为1。在此需要指出的是,可以采用本领域已知或未来开发的任意哈希运算算法或类似算法来得到与IP地址对应的哈希值,而并不限于上述实施例中的方式,只要该算法与稍后描述的查找表的构建中使用的算法一致即可。
在步骤S120处,基于所述哈希值,利用预先设置的查找表来判定是否需要对接收到的以太网报文进行MAC网络地址转换处理。
其中所述预先设置的查找表可以包括一个或多个索引值以及与各索引值对应的一个或多个数据集合,所述索引值可以与通过对虚拟机的IP地址进行哈希运算得到的值相对应,所述数据集合可以包括虚拟机的IP地址、本地MAC地址和对应的全局MAC地址。
下面结合说明性示例描述查找表的预先设置。例如,存在A、B、C三台虚拟机的IP地址、本地MAC地址、全局MAC地址分别如表1所示:
表1
IP地址 | 本地MAC地址 | 全局MAC地址 | |
A | 192.168.0.1 | 00:16:3E:13:2B:01 | 00:16:3E:13:AA:00 |
B | 192.168.0.2 | 00:16:3E:13:2B:03 | 00:16:3E:13:AA:00 |
C | 192.168.0.60 | 00:16:3E:13:2B:3C | 00:16:3E:13:AA:00 |
通过对三台虚拟机的IP地址进行如上所述取后16位的哈希运算得到相应的值分别为1、2、60,将其作为索引值,将三台虚拟机的IP地址、本地MAC地址、全局MAC地址作为数据集合与相应索引值对应,由此构成查找表如表2所示:
表2
索引值 | IP地址 | 本地MAC地址 | 全局MAC地址 |
1 | 192.168.0.1 | 00:16:3E:13:2B:01 | 00:16:3E:13:AA:00 |
2 | 192.168.0.2 | 00:16:3E:13:2B:03 | 00:16:3E:13:AA:00 |
60 | 192.168.0.60 | 00:16:3E:13:2B:3C | 00:16:3E:13:AA:00 |
在一个实施例中,所述数据集合还可以包括配置/取消/查询接口,用于配置/取消/查询虚拟机的IP地址、本地MAC地址和对应的全局MAC地址。
例如,上述A、B、C三台虚拟机的配置/取消/查询接口分别为:vlan.1、vlan.1、vlan.1,则构成的查找表可以如表3所示:
表3
索引值 | IP地址 | 本地MAC地址 | 全局MAC地址 | 配置/取消/查询接口 |
1 | 192.168.0.1 | 00:16:3E:13:2B:01 | 00:16:3E:13:AA:00 | vlan.1 |
2 | 192.168.0.2 | 00:16:3E:13:2B:03 | 00:16:3E:13:AA:00 | vlan.1 |
60 | 192.168.0.60 | 00:16:3E:13:2B:3C | 00:16:3E:13:AA:00 | vlan.1 |
上述说明性示例仅用于说明目的,并不用于限制本申请的范围。应理解到的是,查找表中的索引值只要与所计算的哈希值相对应即可,并不限于是所计算出的哈希值本身,而是可以为该哈希值的任意运算值,例如可以是所计算的哈希值的平方。另外,对虚拟机对应的地址数据集合(IP地址、MAC地址、全局MAC地址)进行分组的算法不限于上述哈希运算,可以通过本领域已知或未来开发的任意其它合适哈希运算算法或类似算法来构建通过索引值查找包括相关虚拟机的IP地址、本地MAC地址和全局MAC地址的数据集合的查找表。
在一种更具体实现中,查找表可以为哈希表,哈希表可以是一个大小为64K的数组,数组的每个元素可以是一个链表,链表的每个元素可以为一个(IP地址,本地MAC地址,全局MAC地址)元组(即数据集合)。在查找表构建过程中将一个元组存放到哈希表时,先通过对虚拟机的IP地址进行哈希运算(例如,通过取后若干位)得到一个0~64k-1的整数,也即哈希值,然后将这个值作为数组元素的下标(即索引值),得到下标所对应的链表,再将这个元组***到该链表的头部,由此类推,创建包括所有虚拟机的IP地址、本地MAC地址、全局MAC地址的对应关系的整个查找表。
本领域技术人员可以理解到,本申请并不限于上述具体实现,而是可以通过本领域已知或未来开发的任意合适方式来构建通过索引值查找包括相关虚拟机的IP地址、本地MAC地址和全局MAC地址的数据集合的查找表。
另外可以注意到,查找表中的索引值实际上是与虚拟机的IP地址对应的哈希值。由于哈希运算的原理,导致不同虚拟机的IP地址的哈希值可能相同,所以在上述预先设置的查找表中,对应于一个索引值,可以存在一个或多个数据集合,每个数据集合可以包括不同虚拟机的IP地址、本地MAC地址和对应的全局MAC地址。这样,通过将步骤S110中得到的与接收到的以太网报文的IP地址对应的哈希值与该查找表中的索引值进行比较,就可以将虚拟机IP地址的查找范围缩小到小范围的相关虚拟机IP地址,由此可以快速查找到与接收到的以太网报文对应的虚拟机的本地MAC地址或者全局MAC地址,用于后续的MAC网络地址转换处理。
通过将步骤S110中得到的与接收到的以太网报文的IP地址对应的哈希值与该查找表中的索引值进行比较,可以判定与接收到的以太网报文的IP地址对应的哈希值是否在查找表中存在对应的索引值。具体而言,如果存在对应的索引值,则可以判定需要对接收到的以太网报文进行MAC网络地址转换处理,如果不存在对应的索引值,则可以判定不需要对接收到的以太网报文进行MAC网络地址转换处理。该MAC网络地址转换处理将在稍后结合图3进行具体描述。
接下来,在步骤S130处,根据判定结果,进行对接收到的以太网报文的转发。
具体而言,当判定需要对接收到的以太网报文进行MAC网络地址转换处理时,则对接收到的以太网报文进行MAC网络地址转换处理后再转发。当判定不需要对接收到的以太网报文进行MAC网络地址转换处理时,则不对接收到的以太网报文进行MAC网络地址转换处理,而直接转发。
通过本实施例的转发以太网报文的方法,可以实现MAC地址的快速查找,提高MAC网络地址转换速度,进而能够在减少核心交换机的MAC表规模和提高虚拟比的情况下进一步提高以太网报文转发效率,优化网络收发包性能。
下面将结合图2对本申请的实施方式进行更详细的描述。
图2是根据本申请另一个实施例的转发以太网报文的方法的流程图。该方法包括步骤S210-步骤S230。为简洁起见,这里未示出与图1中的步骤S110相同的步骤,即,对接收到的以太网报文的IP地址进行哈希运算得到哈希值。关于该步骤的细节可参见上面的描述。
在步骤S210处,判定上述哈希值是否与查找表中的一个或多个索引值中的一个相同。
如果哈希值与查找表中的一个或多个索引值中的一个相同,则判定需要对接收到的以太网报文进行MAC网络地址转换处理,流程进到步骤S220。
在步骤S220处,对接收到的以太网报文进行MAC网络地址转换处理。
这里,通过对接收到的以太网报文的目的地MAC地址或源MAC地址进行相应转换处理,可以减小核心交换机的MAC地址表规模并提高虚拟比。关于该MAC网络地址转换处理的细节将在稍后结合图3进行详细描述。
随后,在步骤S230处,转发接收到的以太网报文。
具体而言,物理机可以将接收到的来自核心交换机的以太网报文(入包)根据报文中的目的地MAC地址转发给相应的虚拟机,并且可以将接收到的来自虚拟机的以太网报文(出包)转发给核心交换机,然后核心交换机根据报文中的目的地MAC地址转发到相应的目的地端口。
回到步骤S210,如果哈希值与查找表中的一个或多个索引值中的任一个都不同,则判定不需要对接收到的以太网报文进行MAC网络地址转换处理,流程进到上述步骤S230。
尽管上述实施例描述的是通过判定哈希值是否与一个或多个索引值中一个相同来判定是否对接收到的以太网报文进行MAC网络地址转换处理,但是本申请并不限于此。如上面提到的,查找表中的索引值只要与所计算的哈希值相对应即可,并不限于是所计算出的哈希值本身,而是可以为该哈希值的任意运算值,例如可以是所计算的哈希值的平方。在这样的情况下,可以通过判定哈希值的任意运算值是否与一个或多个索引值中的一个相同,换言之,可以通过判定哈希值是否与一个或多个索引值中的一个相对应,来判定是否进行MAC网络地址转换处理。
通过本实施例的转发以太网报文的方法,可以实现MAC地址的快速简单查找,更有效地提高MAC网络地址转换速度,进而能够在减少核心交换机的MAC表规模和提高虚拟比的情况下进一步提高以太网报文转发效率,优化网络收发包性能。
下面结合图3描述本申请的MAC网络地址转换处理。图3示出根据本申请一个实施例的MAC网络地址转换处理的流程图,包括步骤S310-步骤S350。
在步骤S310处,判定接收到的以太网报文是入包还是出包。
如前面提到的,在本说明书中,入包是指物理机从核心交换机接收到的以太网报文,出包是指物理机从虚拟机接收到的以太网报文。
在一个实施例中,以太网报文可以为诸如IPv4报文之类的IP报文或ARP报文,其传输格式如图4所示。
在一个实施例中,例如,可以通过判定报文中的以太网源IP地址是否为本地IP地址来进行上述判定。具体而言,当判定以太网源IP地址是物理机的本地IP地址时,可以判定所接收到的以太网报文是出包。当判定以太网源IP地址不是物理机的本地IP地址时,可以判定所接收到的以太网报文是入包。应明白的是,这里可以通过本领域已知或未来开发的任意合适方式来判定接收到的以太网报文是入包还是出包,而不限于前面所列举的方式。
当在步骤S310判定接收到的以太网报文是入包时,流程进到步骤S320。
在步骤S320处,判定接收到的以太网报文的目的地MAC地址是否为查找表中与所述索引值对应的包括以太网报文的IP地址的数据集合中的全局MAC地址。
具体而言,在上述步骤S210中判定出根据接收到的以太网报文中的IP地址(例如,图4所示IP报文和ARP报文中的以太网目的地IP地址)所计算的哈希值在查找表中存在对应的索引值之后,可以从与该索引值所对应的一个或多个数据集合中查找与该以太网报文的IP地址对应的数据集合,从而查找到对应的全局MAC地址,进而可以判定接收到的以太网报文中的目的地MAC地址(例如,图4所示IP报文和ARP报文中的以太网目的地MAC地址)是否与查找到的全局MAC地址相同。
在一个实施例中,可以通过以太网报文的IP地址与该索引值对应的每个数据集合中的IP地址进行逐个对比,来找到其对应的数据集合。应理解到,这里可以通过本领域已知或未来开发的任意其它合适方式从与该索引值所对应的一个或多个数据集合中查找与这个IP地址对应的数据集合,而不限于上面所列举的方式。
当在步骤S320中判定接收到的以太网报文的目的地MAC地址是查找表中对应的全局MAC地址时,流程进到步骤S330。
在步骤S330处,将所述目的地MAC地址替换为查找表中与对应索引值相应的包括以太网报文的IP地址的数据集合中的本地MAC地址。
也就是,将接收到的以太网报文的目的地MAC地址从全局MAC地址改为虚拟机的本地MAC地址,以便物理机将接收到的以太网报文转发到相应的虚拟机。
在一个具体实施例中,当以太网报文为IP报文(如图4所示)时,将该IP报文的报头中的以太网目的地MAC地址替换为查找表中对应的虚拟机的本地MAC地址。当以太网报文为如图4所示的ARP报文时,不仅将该ARP报文的报头中的以太网目的地MAC地址,而且将ARP报文的有效载荷中的目的端MAC地址,都替换为查找表中对应的虚拟机的本地MAC地址。
回到步骤S320,当判定接收到的以太网报文的目的地MAC地址不是查找表中对应的全局MAC地址时,流程进到步骤S350。
在步骤S350处,不对接收到的以太网报文进行MAC网络地址转换。从而MAC网络地址转换处理结束。
回到步骤S310,当判定接收到的以太网报文是出包时,流程进到步骤S340。
在步骤S340处,将接收到的以太网报文的源MAC地址替换为查找表中与对应索引值相应的包括以太网报文的IP地址的数据集合中的全局MAC地址。
也就是,将接收到的以太网报文的源MAC地址从虚拟机的本地MAC地址改为虚拟机对应的全局MAC地址,以便物理机将接收到的以太网报文转发到核心交换机,以由核心交换机将该以太网报文发送到相应目的地端口。
在一个具体实施例中,当以太网报文为IP报文(如图4所示)时,将该IP报文的报头中的以太网源MAC地址替换为查找表中对应的虚拟机的全局MAC地址。当以太网报文为如图4所示的ARP报文时,不仅将该ARP报文的报头中的以太网源MAC地址,而且将ARP报文的有效载荷中的发送端MAC地址,都替换为查找表中对应的虚拟机的全局MAC地址。
由此可以完成MAC网络地址转换处理,实现核心交换机的MAC地址表规模的减小和虚拟比的提高。
至此,已经结合本申请的实施例描述了根据本申请一个方面的转发以太网报文的方法。相应地,根据本申请的另一方面,还提供了一种转发以太网报文的装置。
图5示出根据本申请一个实施例的转发以太网报文的装置500的框图。如图5所示,该装置500可以包括运算模块510、判定模块520和转发模块530。
更具体而言,运算模块510可以用于对接收到的以太网报文的IP地址进行哈希运算得到哈希值。判定模块520可以用于基于该哈希值利用预先设置的查找表来判定是否需要对接收到的以太网报文进行MAC网络地址转换处理。其中预先设置的查找表可以包括一个或多个索引值以及与各索引值对应的一个或多个数据集合,所述索引值可以与通过对虚拟机的IP地址进行哈希运算得到的值相对应,所述数据集合可以包括虚拟机的IP地址、本地MAC地址和对应的全局MAC地址。转发模块530可以用于根据判定结果进行对接收到的以太网报文的转发。
在一个实施例中,当所述哈希值与所述一个或多个索引值中的一个相同时,判定模块520可以判定需要对接收到的以太网报文进行MAC网络地址转换处理。当所述哈希值与所述一个或多个索引值中的任一个都不同时,判定模块520可以判定不需要对接收到的以太网报文进行MAC网络地址转换处理。
在一个实施例中,当判定需要对接收到的以太网报文进行MAC网络地址转换处理时,转发模块530可以对接收到的以太网报文进行MAC网络地址转换处理后再转发经过MAC网络地址转换处理后的以太网报文。当判定不需要对接收到的以太网报文进行MAC网络地址转换处理时,转发模块530可以直接转发接收到的以太网报文。
根据本实施例的转发以太网报文的装置,同样可以实现MAC地址的快速查找,提高MAC网络地址转换速度,进而能够在减少核心交换机的MAC表规模和提高虚拟比的情况下进一步提高以太网报文转发效率,优化网络收发包性能。
以上描述的转发以太网报文的装置与之前描述的转发以太网报文的方法的处理是对应的,因此,关于其具体细节,可以参见之前描述的转发以太网报文的方法,这里不再赘述。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (14)
1.一种转发以太网报文的方法,其特征在于,包括:
对接收到的以太网报文的IP地址进行哈希运算得到哈希值;
基于所述哈希值,利用预先设置的查找表来判定是否需要对接收到的以太网报文进行MAC网络地址转换处理,其中所述预先设置的查找表包括一个或多个索引值以及与各索引值对应的一个或多个数据集合,所述索引值与通过对虚拟机的IP地址进行哈希运算得到的值相对应,所述数据集合包括虚拟机的IP地址、本地MAC地址和对应的全局MAC地址;以及
根据判定结果,进行对接收到的以太网报文的转发。
2.根据权利要求1所述的方法,其特征在于,所述基于所述哈希值从所述查找表中判定是否需要对以太网报文进行MAC网络地址转换处理的步骤包括:
如果所述哈希值与所述一个或多个索引值中的一个相同,则判定需要对接收到的以太网报文进行MAC网络地址转换处理;以及
如果所述哈希值与所述一个或多个索引值中的每一个都不同,则判定不需要对接收到的以太网报文进行MAC网络地址转换处理。
3.根据权利要求1或2所述的方法,其特征在于,所述根据判定结果进行对接收到的以太网报文的转发的步骤包括:
当判定需要对接收到的以太网报文进行MAC网络地址转换处理时,对接收到的以太网报文进行MAC网络地址转换处理后再转发经过MAC网络地址转换处理后的以太网报文;以及
当判定不需要对接收到的以太网报文进行MAC网络地址转换处理时,直接转发接收到的以太网报文。
4.根据权利要求3所述的方法,其特征在于,所述MAC网络地址转换处理的步骤包括:
判定接收到的以太网报文是入包还是出包;
如果接收到的以太网报文是入包,并且接收到的以太网报文的目的地MAC地址是查找表中与所述索引值对应的包括以太网报文的IP地址的数据集合中的全局MAC地址,则将所述目的地MAC地址替换为查找表中与所述索引值对应的包括以太网报文的IP地址的数据集合中的本地MAC地址;以及
如果接收到的以太网报文是出包,则将接收到的以太网报文的源MAC地址替换为查找表中与所述索引值对应的包括以太网报文的IP地址的数据集合中的全局MAC地址。
5.根据权利要求4所述的方法,其特征在于,所述MAC网络地址转换处理的步骤还包括:
如果接收到的以太网报文是入包,并且接收到的以太网报文的目的地MAC地址不是查找表中与所述索引值对应的包括以太网报文的IP地址的数据集合中的全局MAC地址,则不对接收到的以太网报文进行MAC网络地址转换。
6.根据权利要求1所述的方法,其特征在于,所述以太网报文包括IP报文和/或ARP报文。
7.根据权利要求1所述的方法,其特征在于,所述数据集合还包括配置/取消/查询接口,用于配置/取消/查询虚拟机的IP地址、本地MAC地址和对应的全局MAC地址。
8.一种转发以太网报文的装置,其特征在于,包括:
运算模块,用于对接收到的以太网报文的IP地址进行哈希运算得到哈希值;
判定模块,用于基于所述哈希值,利用预先设置的查找表来判定是否需要对接收到的以太网报文进行MAC网络地址转换处理,其中所述预先设置的查找表包括一个或多个索引值以及与各索引值对应的一个或多个数据集合,所述索引值与通过对虚拟机的IP地址进行哈希运算得到的值相对应,所述数据集合包括虚拟机的IP地址、本地MAC地址和对应的全局MAC地址;以及
转发模块,用于根据判定结果,进行对接收到的以太网报文的转发。
9.根据权利要求8所述的装置,其特征在于,如果所述哈希值与所述一个或多个索引值中的一个相同,则所述判定模块判定需要对接收到的以太网报文进行MAC网络地址转换处理;以及
如果所述哈希值与所述一个或多个索引值中的每一个都不同,则所述判定模块判定不需要对接收到的以太网报文进行MAC网络地址转换处理。
10.根据权利要求8或9所述的装置,其特征在于,当所述判定模块判定需要对接收到的以太网报文进行MAC网络地址转换处理时,所述转发模块对接收到的以太网报文进行MAC网络地址转换处理后再转发经过MAC网络地址转换处理后的以太网报文;以及
当所述判定模块判定不需要对接收到的以太网报文进行MAC网络地址转换处理时,所述转发模块直接转发接收到的以太网报文。
11.根据权利要求10所述的装置,其特征在于,所述转发模块的所述MAC网络地址转换处理的步骤包括:
判定接收到的以太网报文是入包还是出包;
如果接收到的以太网报文是入包,并且接收到的以太网报文的目的地MAC地址是查找表中与所述索引值对应的包括以太网报文的IP地址的数据集合中的全局MAC地址,则将所述目的地MAC地址替换为查找表中与所述索引值对应的包括以太网报文的IP地址的数据集合中的本地MAC地址;以及
如果接收到的以太网报文是出包,则将接收到的以太网报文的源MAC地址替换为查找表中与所述索引值对应的包括以太网报文的IP地址的数据集合中的全局MAC地址。
12.根据权利要求11所述的装置,其特征在于,所述转发模块的所述MAC网络地址转换处理的步骤还包括:
如果接收到的以太网报文是入包,并且接收到的以太网报文的目的地MAC地址不是查找表中与所述索引值对应的包括以太网报文的IP地址的数据集合中的全局MAC地址,则不对接收到的以太网报文进行MAC网络地址转换。
13.根据权利要求8所述的装置,其特征在于,所述以太网报文包括IP报文和/或ARP报文。
14.根据权利要求8所述的装置,其特征在于,所述数据集合还包括配置/取消/查询接口,用于配置/取消/查询虚拟机的IP地址、本地MAC地址和对应的全局MAC地址。
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310071261.8A CN104038425B (zh) | 2013-03-06 | 2013-03-06 | 转发以太网报文的方法和装置 |
TW102126654A TWI661698B (zh) | 2013-03-06 | 2013-07-25 | 轉發乙太網路封包的方法和裝置 |
US14/195,421 US9985818B2 (en) | 2013-03-06 | 2014-03-03 | Forwarding ethernet packets |
PCT/US2014/020184 WO2014138004A1 (en) | 2013-03-06 | 2014-03-04 | Forwarding ethernet packets |
EP14715473.6A EP2965476B1 (en) | 2013-03-06 | 2014-03-04 | Forwarding ethernet packets |
JP2015557239A JP6122971B2 (ja) | 2013-03-06 | 2014-03-04 | イーサネットパケットの転送 |
HK15100620.1A HK1200245A1 (zh) | 2013-03-06 | 2015-01-20 | 轉發以太網報文的方法和裝置 |
US15/961,646 US10608866B2 (en) | 2013-03-06 | 2018-04-24 | Forwarding Ethernet packets |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310071261.8A CN104038425B (zh) | 2013-03-06 | 2013-03-06 | 转发以太网报文的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104038425A true CN104038425A (zh) | 2014-09-10 |
CN104038425B CN104038425B (zh) | 2018-01-02 |
Family
ID=51469017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310071261.8A Active CN104038425B (zh) | 2013-03-06 | 2013-03-06 | 转发以太网报文的方法和装置 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9985818B2 (zh) |
EP (1) | EP2965476B1 (zh) |
JP (1) | JP6122971B2 (zh) |
CN (1) | CN104038425B (zh) |
HK (1) | HK1200245A1 (zh) |
TW (1) | TWI661698B (zh) |
WO (1) | WO2014138004A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104539545A (zh) * | 2014-12-31 | 2015-04-22 | 杭州华三通信技术有限公司 | Trill网络中的组播报文转发方法和设备 |
CN104994186A (zh) * | 2015-07-08 | 2015-10-21 | 华为技术有限公司 | 媒体访问控制地址的查询方法、处理器及装置 |
CN112193278A (zh) * | 2019-07-08 | 2021-01-08 | 中车唐山机车车辆有限公司 | 列车网络管理*** |
CN112422447A (zh) * | 2020-11-13 | 2021-02-26 | 新华三技术有限公司合肥分公司 | 一种成员端口的选择方法及装置 |
CN116232972A (zh) * | 2022-12-14 | 2023-06-06 | 四川天邑康和通信股份有限公司 | 一种基于业务或内容的代理路由器 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103179228B (zh) * | 2013-04-02 | 2015-08-19 | 杭州华三通信技术有限公司 | 因特网协议地址解析方法及边缘节点 |
EP3091715A1 (en) | 2015-05-06 | 2016-11-09 | Thomson Licensing | Method for allocating internet protocol addresses to clients of a network and corresponding apparatus |
US10237239B2 (en) * | 2015-12-03 | 2019-03-19 | International Business Machines Corporation | Policy-based load distribution between host-based packet processing units |
US10608957B2 (en) * | 2017-06-29 | 2020-03-31 | Cisco Technology, Inc. | Method and apparatus to optimize multi-destination traffic over etherchannel in stackwise virtual topology |
CN111698169B (zh) * | 2020-05-29 | 2022-04-05 | 中国航空工业集团公司西安航空计算技术研究所 | 基于帧内容的通信端口提取方法 |
CN114390120B (zh) * | 2022-01-04 | 2023-06-09 | 烽火通信科技股份有限公司 | 一种对协议帧的处理方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030043825A1 (en) * | 2001-09-05 | 2003-03-06 | Andreas Magnussen | Hash-based data frame distribution for web switches |
US20070288653A1 (en) * | 2006-06-09 | 2007-12-13 | Chandramouli Sargor | Scalable data forwarding techniques in a switched network |
CN101771732A (zh) * | 2010-01-06 | 2010-07-07 | 福建星网锐捷网络有限公司 | 报文处理方法、装置和网络设备 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5914938A (en) * | 1996-11-19 | 1999-06-22 | Bay Networks, Inc. | MAC address table search unit |
GB9810841D0 (en) | 1998-05-21 | 1998-07-22 | 3Com Technologies Ltd | Organisation of data bases in network switches for packet-based data communication networks |
JP2004187114A (ja) | 2002-12-05 | 2004-07-02 | Mitsubishi Electric Corp | アドレスフィルタリング装置 |
KR100627143B1 (ko) * | 2004-12-31 | 2006-09-25 | 박장원 | 입체형 신발 갑피용 가교발포 성형체 및 그 제조방법 |
DE102005002358A1 (de) | 2005-01-18 | 2006-08-24 | Siemens Ag | Verfahren zur Bestimmung der Weiterleitungsrichtung von Ethernet-Frames |
US20070036161A1 (en) | 2005-07-13 | 2007-02-15 | Mahamuni Atul B | System and method of routing Ethernet MAC frames using Layer-2 MAC addresses |
US8498297B2 (en) | 2005-08-26 | 2013-07-30 | Rockstar Consortium Us Lp | Forwarding table minimisation in ethernet switches |
EP1982481B1 (en) * | 2006-01-23 | 2015-05-06 | Allied Telesis Holdings K.K. | Method and system for improving traffic distribution across a communication network |
US20070177597A1 (en) | 2006-02-02 | 2007-08-02 | Yu Ju | Ethernet connection-based forwarding process |
JP4732257B2 (ja) | 2006-07-07 | 2011-07-27 | 富士通株式会社 | 中継装置、経路制御方法、及び経路制御プログラム |
US7995465B2 (en) * | 2007-05-18 | 2011-08-09 | Nvidia Corporation | Intelligent load balancing and failover of network traffic |
US8261317B2 (en) * | 2008-03-27 | 2012-09-04 | Juniper Networks, Inc. | Moving security for virtual machines |
KR100963424B1 (ko) * | 2008-07-23 | 2010-06-15 | 한국전자통신연구원 | 스케일러블 영상 복호화기 및 그 제어 방법 |
GB2462493B (en) | 2008-08-13 | 2012-05-16 | Gnodal Ltd | Data processing |
JP2010193146A (ja) * | 2009-02-18 | 2010-09-02 | Funai Electric Co Ltd | 通信装置および通信システム |
CN102035821A (zh) * | 2009-09-29 | 2011-04-27 | 凹凸电子(武汉)有限公司 | 防火墙/虚拟专用网集成***以及电路 |
US8989187B2 (en) * | 2010-06-04 | 2015-03-24 | Coraid, Inc. | Method and system of scaling a cloud computing network |
CN101909003A (zh) | 2010-07-07 | 2010-12-08 | 南京烽火星空通信发展有限公司 | 线速分流设备及方法 |
WO2013110354A1 (en) * | 2012-01-25 | 2013-08-01 | Université Catholique de Louvain | Compositions and methods for cell transplantation |
CN102143067A (zh) | 2011-02-26 | 2011-08-03 | 华为数字技术有限公司 | 减少介质访问控制mac地址表规模的方法和装置 |
JP5601601B2 (ja) * | 2011-03-23 | 2014-10-08 | 日本電気株式会社 | 通信制御システム、スイッチノード、及び通信制御方法 |
WO2012151392A1 (en) * | 2011-05-04 | 2012-11-08 | Citrix Systems, Inc. | Systems and methods for sr-iov pass-thru via an intermediary device |
US8935457B2 (en) * | 2011-07-29 | 2015-01-13 | International Business Machines Corporation | Network filtering in a virtualized environment |
US8958293B1 (en) * | 2011-12-06 | 2015-02-17 | Google Inc. | Transparent load-balancing for cloud computing services |
US20130185430A1 (en) * | 2012-01-18 | 2013-07-18 | LineRate Systems, Inc. | Multi-level hash tables for socket lookups |
DE102012211353A1 (de) * | 2012-06-29 | 2014-01-02 | Robert Bosch Gmbh | Verfahren zur Ermittlung einer in einem bestimmten Zeitabstand erreichbaren Zylinderfüllung einer Brennkraftmaschine |
US9172557B2 (en) * | 2012-08-17 | 2015-10-27 | International Business Machines Corporation | Load balancing overlay network traffic using a teamed set of network interface cards |
US9736211B2 (en) * | 2012-08-27 | 2017-08-15 | Vmware, Inc. | Method and system for enabling multi-core processing of VXLAN traffic |
-
2013
- 2013-03-06 CN CN201310071261.8A patent/CN104038425B/zh active Active
- 2013-07-25 TW TW102126654A patent/TWI661698B/zh active
-
2014
- 2014-03-03 US US14/195,421 patent/US9985818B2/en active Active
- 2014-03-04 EP EP14715473.6A patent/EP2965476B1/en active Active
- 2014-03-04 JP JP2015557239A patent/JP6122971B2/ja active Active
- 2014-03-04 WO PCT/US2014/020184 patent/WO2014138004A1/en active Application Filing
-
2015
- 2015-01-20 HK HK15100620.1A patent/HK1200245A1/zh unknown
-
2018
- 2018-04-24 US US15/961,646 patent/US10608866B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030043825A1 (en) * | 2001-09-05 | 2003-03-06 | Andreas Magnussen | Hash-based data frame distribution for web switches |
US20070288653A1 (en) * | 2006-06-09 | 2007-12-13 | Chandramouli Sargor | Scalable data forwarding techniques in a switched network |
CN101771732A (zh) * | 2010-01-06 | 2010-07-07 | 福建星网锐捷网络有限公司 | 报文处理方法、装置和网络设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104539545A (zh) * | 2014-12-31 | 2015-04-22 | 杭州华三通信技术有限公司 | Trill网络中的组播报文转发方法和设备 |
CN104539545B (zh) * | 2014-12-31 | 2018-01-12 | 新华三技术有限公司 | Trill网络中的组播报文转发方法和设备 |
CN104994186A (zh) * | 2015-07-08 | 2015-10-21 | 华为技术有限公司 | 媒体访问控制地址的查询方法、处理器及装置 |
CN112193278A (zh) * | 2019-07-08 | 2021-01-08 | 中车唐山机车车辆有限公司 | 列车网络管理*** |
CN112422447A (zh) * | 2020-11-13 | 2021-02-26 | 新华三技术有限公司合肥分公司 | 一种成员端口的选择方法及装置 |
CN112422447B (zh) * | 2020-11-13 | 2022-04-26 | 新华三技术有限公司合肥分公司 | 一种成员端口的选择方法及装置 |
CN116232972A (zh) * | 2022-12-14 | 2023-06-06 | 四川天邑康和通信股份有限公司 | 一种基于业务或内容的代理路由器 |
Also Published As
Publication number | Publication date |
---|---|
US9985818B2 (en) | 2018-05-29 |
US20180241608A1 (en) | 2018-08-23 |
TWI661698B (zh) | 2019-06-01 |
US10608866B2 (en) | 2020-03-31 |
HK1200245A1 (zh) | 2015-07-31 |
EP2965476B1 (en) | 2020-04-29 |
WO2014138004A1 (en) | 2014-09-12 |
EP2965476A1 (en) | 2016-01-13 |
TW201436508A (zh) | 2014-09-16 |
JP2016509822A (ja) | 2016-03-31 |
CN104038425B (zh) | 2018-01-02 |
US20140254597A1 (en) | 2014-09-11 |
JP6122971B2 (ja) | 2017-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104038425A (zh) | 转发以太网报文的方法和装置 | |
CN103117931B (zh) | 基于哈希表和tcam表的mac地址硬件学习方法及*** | |
JP6581277B2 (ja) | データパケット転送 | |
US9515874B2 (en) | Efficient use of dynamic host configuration protocol in low power and lossy networks | |
US9215171B2 (en) | Hashing-based routing table management | |
US10348646B2 (en) | Two-stage port-channel resolution in a multistage fabric switch | |
CN102857414A (zh) | 一种转发表写入、报文转发方法及装置 | |
CN104283806A (zh) | 业务链处理方法和设备 | |
CN102970242B (zh) | 一种实现负载均衡的方法 | |
JP6633775B2 (ja) | パケット伝送 | |
CN111147372B (zh) | 下行报文发送、转发方法和装置 | |
CN106209648A (zh) | 跨虚拟可扩展局域网的组播数据报文转发方法和设备 | |
CN104811382A (zh) | 数据包的处理方法与装置 | |
GB2578415A (en) | Methods and systems for transmitting information packets through tunnel groups at a network node | |
CN106209636A (zh) | 从vlan至vxlan的组播数据报文转发方法和设备 | |
CN105474168A (zh) | 网络装置执行的数据处理方法和相关设备 | |
CN104780232A (zh) | 一种资源分配方法、控制器及*** | |
US9762489B2 (en) | Local packet switching at a satellite device | |
CN106411553B (zh) | 一种业务链路径的优化方法及装置 | |
CN101599910B (zh) | 报文发送的方法及设备 | |
CN104780201A (zh) | 一种ipvs集群中的数据包处理方法及装置 | |
CN109120556A (zh) | 一种云主机访问对象存储服务器的方法及*** | |
US9866470B2 (en) | Multiple active link aggregators | |
CN104394081B (zh) | 一种数据处理方法及装置 | |
CN110636005B (zh) | 知识中心网络的知识路由方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1200245 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1200245 Country of ref document: HK |