转发以太网报文的方法和装置.pdf

上传人:1** 文档编号:472214 上传时间:2018-02-18 格式:PDF 页数:15 大小:3.91MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310071261.8

申请日:

2013.03.06

公开号:

CN104038425A

公开日:

2014.09.10

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 12/743申请日:20130306|||公开

IPC分类号:

H04L12/743(2013.01)I; H04L29/12

主分类号:

H04L12/743

申请人:

阿里巴巴集团控股有限公司

发明人:

田世坤; 王颖斌; 陈伟才; 陈波

地址:

英属开曼群岛大开曼资本大厦一座四层847号邮箱

优先权:

专利代理机构:

北京国昊天诚知识产权代理有限公司 11315

代理人:

许志勇

PDF下载: PDF下载
内容摘要

本申请提供转发以太网报文的方法和装置。该方法包括对接收到的以太网报文的IP地址进行哈希运算得到哈希值;基于所述哈希值,利用预先设置的查找表来判定是否需要对接收到的以太网报文进行MAC网络地址转换处理,其中所述预先设置的查找表包括一个或多个索引值以及与各索引值对应的一个或多个数据集合,所述索引值与通过对虚拟机的IP地址进行哈希运算得到的值相对应,所述数据集合包括虚拟机的IP地址、本地MAC地址和对应的全局MAC地址;以及根据判定结果,进行对接收到的以太网报文的转发。由此可以提高MAC网络地址转换速度,能够在减少核心交换机的MAC表规模和提高虚拟比的情况下进一步提高以太网报文转发效率,优化网络收发包性能。

权利要求书

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地址。

说明书

转发以太网报文的方法和装置
技术领域
本申请涉及计算机通信领域,具体地涉及一种转发以太网报文的方法和装置。
背景技术
这里的内容尽管是在背景技术标题下阐述的,但是其中也包含了本发明人的发现和构思,所以不应被完全视为现有技术。
在以太网络中,核心交换机的每个端口都级联很多主机(物理机),并且一般都工作在全双工方式。也就是,核心交换机能同时连通许多对端口,使每一对相互通信的物理机都能像独占通信媒体那样无冲突地传输数据。而在每台物理机上都可以实现若干虚拟机,每台虚拟机都有为其预先配置的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,Internet Protocol)传输的诸如IPv4(Internet Protocol version4,IPv4,因特网协议第四版)报文之类的IP报文和/或根据地址解析协议(ARP,Address Resolution Protocol)传输的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地址A192.168.0.100:16:3E:13:2B:0100:16:3E:13:AA:00B192.168.0.200:16:3E:13:2B:0300:16:3E:13:AA:00C192.168.0.6000:16:3E:13:2B:3C00:16:3E:13:AA:00

通过对三台虚拟机的IP地址进行如上所述取后16位的哈希运算得到相应的值分别为1、2、60,将其作为索引值,将三台虚拟机的IP地址、本地MAC地址、全局MAC地址作为数据集合与相应索引值对应,由此构成查找表如表2所示:
表2
索引值IP地址本地MAC地址全局MAC地址1192.168.0.100:16:3E:13:2B:0100:16:3E:13:AA:002192.168.0.200:16:3E:13:2B:0300:16:3E:13:AA:0060192.168.0.6000:16:3E:13:2B:3C00:16:3E:13:AA:00

在一个实施例中,所述数据集合还可以包括配置/取消/查询接口,用于配置/取消/查询虚拟机的IP地址、本地MAC地址和对应的全局MAC地址。
例如,上述A、B、C三台虚拟机的配置/取消/查询接口分别为:vlan.1、vlan.1、vlan.1,则构成的查找表可以如表3所示:
表3
索引值IP地址本地MAC地址全局MAC地址配置/取消/查询接口1192.168.0.100:16:3E:13:2B:0100:16:3E:13:AA:00vlan.12192.168.0.200:16:3E:13:2B:0300:16:3E:13:AA:00vlan.160192.168.0.6000:16:3E:13:2B:3C00:16:3E:13:AA:00vlan.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、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

转发以太网报文的方法和装置.pdf_第1页
第1页 / 共15页
转发以太网报文的方法和装置.pdf_第2页
第2页 / 共15页
转发以太网报文的方法和装置.pdf_第3页
第3页 / 共15页
点击查看更多>>
资源描述

《转发以太网报文的方法和装置.pdf》由会员分享,可在线阅读,更多相关《转发以太网报文的方法和装置.pdf(15页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104038425A43申请公布日20140910CN104038425A21申请号201310071261822申请日20130306H04L12/743201301H04L29/1220060171申请人阿里巴巴集团控股有限公司地址英属开曼群岛大开曼资本大厦一座四层847号邮箱72发明人田世坤王颖斌陈伟才陈波74专利代理机构北京国昊天诚知识产权代理有限公司11315代理人许志勇54发明名称转发以太网报文的方法和装置57摘要本申请提供转发以太网报文的方法和装置。该方法包括对接收到的以太网报文的IP地址进行哈希运算得到哈希值;基于所述哈希值,利用预先设置的查找表来判定是否需要。

2、对接收到的以太网报文进行MAC网络地址转换处理,其中所述预先设置的查找表包括一个或多个索引值以及与各索引值对应的一个或多个数据集合,所述索引值与通过对虚拟机的IP地址进行哈希运算得到的值相对应,所述数据集合包括虚拟机的IP地址、本地MAC地址和对应的全局MAC地址;以及根据判定结果,进行对接收到的以太网报文的转发。由此可以提高MAC网络地址转换速度,能够在减少核心交换机的MAC表规模和提高虚拟比的情况下进一步提高以太网报文转发效率,优化网络收发包性能。51INTCL权利要求书2页说明书8页附图4页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书8页附图4页10申请公布号CN。

3、104038425ACN104038425A1/2页21一种转发以太网报文的方法,其特征在于,包括对接收到的以太网报文的IP地址进行哈希运算得到哈希值;基于所述哈希值,利用预先设置的查找表来判定是否需要对接收到的以太网报文进行MAC网络地址转换处理,其中所述预先设置的查找表包括一个或多个索引值以及与各索引值对应的一个或多个数据集合,所述索引值与通过对虚拟机的IP地址进行哈希运算得到的值相对应,所述数据集合包括虚拟机的IP地址、本地MAC地址和对应的全局MAC地址;以及根据判定结果,进行对接收到的以太网报文的转发。2根据权利要求1所述的方法,其特征在于,所述基于所述哈希值从所述查找表中判定是否需。

4、要对以太网报文进行MAC网络地址转换处理的步骤包括如果所述哈希值与所述一个或多个索引值中的一个相同,则判定需要对接收到的以太网报文进行MAC网络地址转换处理;以及如果所述哈希值与所述一个或多个索引值中的每一个都不同,则判定不需要对接收到的以太网报文进行MAC网络地址转换处理。3根据权利要求1或2所述的方法,其特征在于,所述根据判定结果进行对接收到的以太网报文的转发的步骤包括当判定需要对接收到的以太网报文进行MAC网络地址转换处理时,对接收到的以太网报文进行MAC网络地址转换处理后再转发经过MAC网络地址转换处理后的以太网报文;以及当判定不需要对接收到的以太网报文进行MAC网络地址转换处理时,直。

5、接转发接收到的以太网报文。4根据权利要求3所述的方法,其特征在于,所述MAC网络地址转换处理的步骤包括判定接收到的以太网报文是入包还是出包;如果接收到的以太网报文是入包,并且接收到的以太网报文的目的地MAC地址是查找表中与所述索引值对应的包括以太网报文的IP地址的数据集合中的全局MAC地址,则将所述目的地MAC地址替换为查找表中与所述索引值对应的包括以太网报文的IP地址的数据集合中的本地MAC地址;以及如果接收到的以太网报文是出包,则将接收到的以太网报文的源MAC地址替换为查找表中与所述索引值对应的包括以太网报文的IP地址的数据集合中的全局MAC地址。5根据权利要求4所述的方法,其特征在于,所。

6、述MAC网络地址转换处理的步骤还包括如果接收到的以太网报文是入包,并且接收到的以太网报文的目的地MAC地址不是查找表中与所述索引值对应的包括以太网报文的IP地址的数据集合中的全局MAC地址,则不对接收到的以太网报文进行MAC网络地址转换。6根据权利要求1所述的方法,其特征在于,所述以太网报文包括IP报文和/或ARP报文。7根据权利要求1所述的方法,其特征在于,所述数据集合还包括配置/取消/查询接口,用于配置/取消/查询虚拟机的IP地址、本地MAC地址和对应的全局MAC地址。8一种转发以太网报文的装置,其特征在于,包括权利要求书CN104038425A2/2页3运算模块,用于对接收到的以太网报文。

7、的IP地址进行哈希运算得到哈希值;判定模块,用于基于所述哈希值,利用预先设置的查找表来判定是否需要对接收到的以太网报文进行MAC网络地址转换处理,其中所述预先设置的查找表包括一个或多个索引值以及与各索引值对应的一个或多个数据集合,所述索引值与通过对虚拟机的IP地址进行哈希运算得到的值相对应,所述数据集合包括虚拟机的IP地址、本地MAC地址和对应的全局MAC地址;以及转发模块,用于根据判定结果,进行对接收到的以太网报文的转发。9根据权利要求8所述的装置,其特征在于,如果所述哈希值与所述一个或多个索引值中的一个相同,则所述判定模块判定需要对接收到的以太网报文进行MAC网络地址转换处理;以及如果所述。

8、哈希值与所述一个或多个索引值中的每一个都不同,则所述判定模块判定不需要对接收到的以太网报文进行MAC网络地址转换处理。10根据权利要求8或9所述的装置,其特征在于,当所述判定模块判定需要对接收到的以太网报文进行MAC网络地址转换处理时,所述转发模块对接收到的以太网报文进行MAC网络地址转换处理后再转发经过MAC网络地址转换处理后的以太网报文;以及当所述判定模块判定不需要对接收到的以太网报文进行MAC网络地址转换处理时,所述转发模块直接转发接收到的以太网报文。11根据权利要求10所述的装置,其特征在于,所述转发模块的所述MAC网络地址转换处理的步骤包括判定接收到的以太网报文是入包还是出包;如果接。

9、收到的以太网报文是入包,并且接收到的以太网报文的目的地MAC地址是查找表中与所述索引值对应的包括以太网报文的IP地址的数据集合中的全局MAC地址,则将所述目的地MAC地址替换为查找表中与所述索引值对应的包括以太网报文的IP地址的数据集合中的本地MAC地址;以及如果接收到的以太网报文是出包,则将接收到的以太网报文的源MAC地址替换为查找表中与所述索引值对应的包括以太网报文的IP地址的数据集合中的全局MAC地址。12根据权利要求11所述的装置,其特征在于,所述转发模块的所述MAC网络地址转换处理的步骤还包括如果接收到的以太网报文是入包,并且接收到的以太网报文的目的地MAC地址不是查找表中与所述索引。

10、值对应的包括以太网报文的IP地址的数据集合中的全局MAC地址,则不对接收到的以太网报文进行MAC网络地址转换。13根据权利要求8所述的装置,其特征在于,所述以太网报文包括IP报文和/或ARP报文。14根据权利要求8所述的装置,其特征在于,所述数据集合还包括配置/取消/查询接口,用于配置/取消/查询虚拟机的IP地址、本地MAC地址和对应的全局MAC地址。权利要求书CN104038425A1/8页4转发以太网报文的方法和装置技术领域0001本申请涉及计算机通信领域,具体地涉及一种转发以太网报文的方法和装置。背景技术0002这里的内容尽管是在背景技术标题下阐述的,但是其中也包含了本发明人的发现和构思。

11、,所以不应被完全视为现有技术。0003在以太网络中,核心交换机的每个端口都级联很多主机(物理机),并且一般都工作在全双工方式。也就是,核心交换机能同时连通许多对端口,使每一对相互通信的物理机都能像独占通信媒体那样无冲突地传输数据。而在每台物理机上都可以实现若干虚拟机,每台虚拟机都有为其预先配置的IP地址和MAC地址。核心交换机凭借其上存储的MAC地址表,与所述在物理机上实现的虚拟机进行数据传输,该MAC地址表包括各MAC地址和交换机端口的对应关系。0004当从发送方(物理机)接收到报文时,核心交换机根据其上存储的MAC地址表,找到与报文中的目的地MAC地址相对应的端口,并将报文发送到与该端口连。

12、接的物理机(接收方)。当在物理机上接收到来自核心交换机的报文(入包)时,物理机根据该入包报文中的目的地MAC地址将该入包报文转发到具有相应MAC地址的虚拟机。相应地,当在物理机上接收到来自虚拟机的报文(出包)时,物理机将该出包报文直接转发给核心交换机,然后由核心交换机如上所述那样根据其上存储的MAC地址表再发送给相应的目的地物理机。0005然而,上述以太网络中的核心交换机的MAC地址表的容量是有限的,随着云计算环境下虚拟机数量的不断增加,核心交换机的MAC地址表的容量将达到极限,从而不能容纳更多虚拟机。0006为了提高虚拟比,而不必更换核心交换机相关硬件,目前一般通过在物理机上通过基于MAC网。

13、络地址转换(NAT)转发以太网报文来解决上述问题。在这种方法中,为若干不同的虚拟机(拥有不同的本地MAC地址和IP地址)分配一个共有的MAC地址,称为全局MAC地址,并在物理机上维护一个查找表,以记录虚拟机的IP地址、本地MAC地址和全局MAC地址的对应关系。当接收到来自虚拟机的报文(出包)时,物理机依据报文中的源IP地址在查找表中查找该IP地址对应的全局MAC地址,并将报文中的源MAC地址替换为全局MAC地址,再将报文转发给核心交换机。当接收到来自核心交换机的报文(入包)时,在报文中的目的地MAC地址为全局MAC地址的情况下,物理机依据报文中的目的地IP地址在查找表中查找该IP地址对应的本地。

14、MAC地址,并将报文中的目的地MAC地址替换为本地MAC地址,然后再转发给具有该本地MAC地址的虚拟机。由于在核心交换机的MAC表中只需要记录全局MAC地址,而一个全局MAC地址可以对应多个虚拟机的本地MAC地址,此方法减少了核心交换机的MAC表占用量,可支持更多的虚拟机。0007然而,在基于这样的MAC网络地址转换的转发以太网报文的方法中,尽管通过MAC网络地址转换可以减小核心交换机MAC表规模,但是MAC网络地址转换速度较为缓慢,以太网报文转发效率较低,使得网络收发包性能受到很大影响。说明书CN104038425A2/8页5发明内容0008因此,本申请的主要目的在于提供一种能够更有效地转发。

15、以太网报文并且同时减少核心交换机的MAC表规模和提高虚拟比的技术,从而克服上述缺陷。0009根据本申请的一个方面,提供一种转发以太网报文的方法,其特征在于,包括对接收到的以太网报文的IP地址进行哈希运算得到哈希值;基于所述哈希值,利用预先设置的查找表来判定是否需要对接收到的以太网报文进行MAC网络地址转换处理,其中所述预先设置的查找表包括一个或多个索引值以及与各索引值对应的一个或多个数据集合,所述索引值与通过对虚拟机的IP地址进行哈希运算得到的值相对应,所述数据集合包括虚拟机的IP地址、本地MAC地址和对应的全局MAC地址;以及根据判定结果,进行对接收到的以太网报文的转发。0010根据本申请的。

16、另一方面,提供一种转发以太网报文的装置,其特征在于,包括运算模块,用于对接收到的以太网报文的IP地址进行哈希运算得到哈希值;判定模块,用于基于所述哈希值,利用预先设置的查找表来判定是否需要对接收到的以太网报文进行MAC网络地址转换处理,其中所述预先设置的查找表包括一个或多个索引值以及与各索引值对应的一个或多个数据集合,所述索引值与通过对虚拟机的IP地址进行哈希运算得到的值相对应,所述数据集合包括虚拟机的IP地址、本地MAC地址和对应的全局MAC地址;以及转发模块,用于根据判定结果,进行对接收到的以太网报文的转发。0011与现有技术相比,根据本申请的技术方案,能够提高MAC网络地址转换速度,进而。

17、能够在减少核心交换机的MAC表规模和提高虚拟比的情况下进一步提高以太网报文转发效率,优化网络收发包性能。附图说明0012此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中0013图1示出根据本申请一个实施例的转发以太网报文的方法的流程图;0014图2示出根据本申请另一个实施例的转发以太网报文的方法的流程图;0015图3示出根据本申请一个实施例的MAC网络地址转换处理的流程图;0016图4示意性地示出了IP报文和ARP报文的传输格式;0017图5示出根据本申请一个实施例的转发以太网报文的装置的框图。具。

18、体实施方式0018如上所述,本申请发明人注意到,在现有的物理机上转发以太网报文的方法中,需要依据实际的IP地址在查找表中进行遍历查找,即在查找过程中,须将接收到的报文中的IP地址与查找表中的每一个IP地址逐个对比直至IP地址吻合,进而查找到虚拟机的IP地址、本地MAC地址和全局MAC地址的对应关系来进行MAC网络地址转换处理。这样的查找导致MAC网络地址转换速度较为缓慢,以太网报文转发效率降低,从而成为网络收发包性能瓶颈。0019为此,本申请的主要思想在于,通过实现更快速的查找方式来提高MAC网络地址说明书CN104038425A3/8页6转换速度,从而提高以太网报文转发效率,进而优化网络收发。

19、包性能。具体而言,本发明人想到,如果通过将所有虚拟机的IP地址、本地MAC地址和全局MAC地址的对应关系按照某种规则预先进行分组,对每个分组建立一个索引值,然后在转发以太网报文时的MAC网络地址转换过程中,通过索引值查找所需虚拟机的MAC地址对应关系。由此可以将查找范围从所有虚拟机缩小至小部分有关的虚拟机,从而可以提高查找效率,进而提高MAC网络地址转换速度和以太网报文的转发效率,优化网络收发包性能。0020为使本申请的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本申请作进一步地详细说明。0021参考图1,图1示出根据本申请一个实施例的转发以太网报文的方法的流程图。该方法包括步骤。

20、S110步骤S130,这些步骤可以在作为以太网络中的网络节点的物理机上实现。0022在步骤S110处,对接收到的以太网报文的IP地址进行哈希运算得到哈希值。0023具体而言,物理机(接收方)可以从核心交换机接收由其它物理机(发送方)发送来的以太网报文。0024在一个实施例中,以太网报文可以包括根据因特网协议(IP,INTERNETPROTOCOL)传输的诸如IPV4(INTERNETPROTOCOLVERSION4,IPV4,因特网协议第四版)报文之类的IP报文和/或根据地址解析协议(ARP,ADDRESSRESOLUTIONPROTOCOL)传输的ARP报文。图4示意性地示出了IP报文和AR。

21、P报文的传输格式。0025哈希(HASH)运算是本领域技术人员熟知的一种算法,用于将任意长度的二进制值映射为固定长度的较小二进制值,这个较小二进制值称为哈希值。这里通过对接收到的以太网报文的IP地址进行哈希运算得到IP地址的相应哈希值。在一个实施例中,可以通过取IP地址的后若干位作为哈希值。例如IP地址值为19216801,则取其后16位的值“01”得到哈希值为1。在此需要指出的是,可以采用本领域已知或未来开发的任意哈希运算算法或类似算法来得到与IP地址对应的哈希值,而并不限于上述实施例中的方式,只要该算法与稍后描述的查找表的构建中使用的算法一致即可。0026在步骤S120处,基于所述哈希值,。

22、利用预先设置的查找表来判定是否需要对接收到的以太网报文进行MAC网络地址转换处理。0027其中所述预先设置的查找表可以包括一个或多个索引值以及与各索引值对应的一个或多个数据集合,所述索引值可以与通过对虚拟机的IP地址进行哈希运算得到的值相对应,所述数据集合可以包括虚拟机的IP地址、本地MAC地址和对应的全局MAC地址。0028下面结合说明性示例描述查找表的预先设置。例如,存在A、B、C三台虚拟机的IP地址、本地MAC地址、全局MAC地址分别如表1所示0029表10030IP地址本地MAC地址全局MAC地址A1921680100163E132B0100163E13AA00B19216802001。

23、63E132B0300163E13AA00说明书CN104038425A4/8页7C19216806000163E132B3C00163E13AA000031通过对三台虚拟机的IP地址进行如上所述取后16位的哈希运算得到相应的值分别为1、2、60,将其作为索引值,将三台虚拟机的IP地址、本地MAC地址、全局MAC地址作为数据集合与相应索引值对应,由此构成查找表如表2所示0032表20033索引值IP地址本地MAC地址全局MAC地址11921680100163E132B0100163E13AA0021921680200163E132B0300163E13AA006019216806000163E。

24、132B3C00163E13AA000034在一个实施例中,所述数据集合还可以包括配置/取消/查询接口,用于配置/取消/查询虚拟机的IP地址、本地MAC地址和对应的全局MAC地址。0035例如,上述A、B、C三台虚拟机的配置/取消/查询接口分别为VLAN1、VLAN1、VLAN1,则构成的查找表可以如表3所示0036表30037索引值IP地址本地MAC地址全局MAC地址配置/取消/查询接口11921680100163E132B0100163E13AA00VLAN121921680200163E132B0300163E13AA00VLAN16019216806000163E132B3C00163。

25、E13AA00VLAN10038上述说明性示例仅用于说明目的,并不用于限制本申请的范围。应理解到的是,查找表中的索引值只要与所计算的哈希值相对应即可,并不限于是所计算出的哈希值本身,而是可以为该哈希值的任意运算值,例如可以是所计算的哈希值的平方。另外,对虚拟机对应的地址数据集合(IP地址、MAC地址、全局MAC地址)进行分组的算法不限于上述哈希运算,可以通过本领域已知或未来开发的任意其它合适哈希运算算法或类似算法来构建通过索引值查找包括相关虚拟机的IP地址、本地MAC地址和全局MAC地址的数据集合的查找表。0039在一种更具体实现中,查找表可以为哈希表,哈希表可以是一个大小为64K的数组,数组。

26、的每个元素可以是一个链表,链表的每个元素可以为一个(IP地址,本地MAC地址,全局MAC地址)元组(即数据集合)。在查找表构建过程中将一个元组存放到哈希表时,先通过对虚拟机的IP地址进行哈希运算(例如,通过取后若干位)得到一个064K1的整数,也即哈希值,然后将这个值作为数组元素的下标(即索引值),得到下标所对应的链表,再将这个元组插入到该链表的头部,由此类推,创建包括所有虚拟机的IP地址、本地MAC地址、说明书CN104038425A5/8页8全局MAC地址的对应关系的整个查找表。0040本领域技术人员可以理解到,本申请并不限于上述具体实现,而是可以通过本领域已知或未来开发的任意合适方式来构。

27、建通过索引值查找包括相关虚拟机的IP地址、本地MAC地址和全局MAC地址的数据集合的查找表。0041另外可以注意到,查找表中的索引值实际上是与虚拟机的IP地址对应的哈希值。由于哈希运算的原理,导致不同虚拟机的IP地址的哈希值可能相同,所以在上述预先设置的查找表中,对应于一个索引值,可以存在一个或多个数据集合,每个数据集合可以包括不同虚拟机的IP地址、本地MAC地址和对应的全局MAC地址。这样,通过将步骤S110中得到的与接收到的以太网报文的IP地址对应的哈希值与该查找表中的索引值进行比较,就可以将虚拟机IP地址的查找范围缩小到小范围的相关虚拟机IP地址,由此可以快速查找到与接收到的以太网报文对。

28、应的虚拟机的本地MAC地址或者全局MAC地址,用于后续的MAC网络地址转换处理。0042通过将步骤S110中得到的与接收到的以太网报文的IP地址对应的哈希值与该查找表中的索引值进行比较,可以判定与接收到的以太网报文的IP地址对应的哈希值是否在查找表中存在对应的索引值。具体而言,如果存在对应的索引值,则可以判定需要对接收到的以太网报文进行MAC网络地址转换处理,如果不存在对应的索引值,则可以判定不需要对接收到的以太网报文进行MAC网络地址转换处理。该MAC网络地址转换处理将在稍后结合图3进行具体描述。0043接下来,在步骤S130处,根据判定结果,进行对接收到的以太网报文的转发。0044具体而言。

29、,当判定需要对接收到的以太网报文进行MAC网络地址转换处理时,则对接收到的以太网报文进行MAC网络地址转换处理后再转发。当判定不需要对接收到的以太网报文进行MAC网络地址转换处理时,则不对接收到的以太网报文进行MAC网络地址转换处理,而直接转发。0045通过本实施例的转发以太网报文的方法,可以实现MAC地址的快速查找,提高MAC网络地址转换速度,进而能够在减少核心交换机的MAC表规模和提高虚拟比的情况下进一步提高以太网报文转发效率,优化网络收发包性能。0046下面将结合图2对本申请的实施方式进行更详细的描述。0047图2是根据本申请另一个实施例的转发以太网报文的方法的流程图。该方法包括步骤S2。

30、10步骤S230。为简洁起见,这里未示出与图1中的步骤S110相同的步骤,即,对接收到的以太网报文的IP地址进行哈希运算得到哈希值。关于该步骤的细节可参见上面的描述。0048在步骤S210处,判定上述哈希值是否与查找表中的一个或多个索引值中的一个相同。0049如果哈希值与查找表中的一个或多个索引值中的一个相同,则判定需要对接收到的以太网报文进行MAC网络地址转换处理,流程进到步骤S220。0050在步骤S220处,对接收到的以太网报文进行MAC网络地址转换处理。0051这里,通过对接收到的以太网报文的目的地MAC地址或源MAC地址进行相应转换处理,可以减小核心交换机的MAC地址表规模并提高虚拟。

31、比。关于该MAC网络地址转换处理的细节将在稍后结合图3进行详细描述。说明书CN104038425A6/8页90052随后,在步骤S230处,转发接收到的以太网报文。0053具体而言,物理机可以将接收到的来自核心交换机的以太网报文(入包)根据报文中的目的地MAC地址转发给相应的虚拟机,并且可以将接收到的来自虚拟机的以太网报文(出包)转发给核心交换机,然后核心交换机根据报文中的目的地MAC地址转发到相应的目的地端口。0054回到步骤S210,如果哈希值与查找表中的一个或多个索引值中的任一个都不同,则判定不需要对接收到的以太网报文进行MAC网络地址转换处理,流程进到上述步骤S230。0055尽管上述。

32、实施例描述的是通过判定哈希值是否与一个或多个索引值中一个相同来判定是否对接收到的以太网报文进行MAC网络地址转换处理,但是本申请并不限于此。如上面提到的,查找表中的索引值只要与所计算的哈希值相对应即可,并不限于是所计算出的哈希值本身,而是可以为该哈希值的任意运算值,例如可以是所计算的哈希值的平方。在这样的情况下,可以通过判定哈希值的任意运算值是否与一个或多个索引值中的一个相同,换言之,可以通过判定哈希值是否与一个或多个索引值中的一个相对应,来判定是否进行MAC网络地址转换处理。0056通过本实施例的转发以太网报文的方法,可以实现MAC地址的快速简单查找,更有效地提高MAC网络地址转换速度,进而。

33、能够在减少核心交换机的MAC表规模和提高虚拟比的情况下进一步提高以太网报文转发效率,优化网络收发包性能。0057下面结合图3描述本申请的MAC网络地址转换处理。图3示出根据本申请一个实施例的MAC网络地址转换处理的流程图,包括步骤S310步骤S350。0058在步骤S310处,判定接收到的以太网报文是入包还是出包。0059如前面提到的,在本说明书中,入包是指物理机从核心交换机接收到的以太网报文,出包是指物理机从虚拟机接收到的以太网报文。0060在一个实施例中,以太网报文可以为诸如IPV4报文之类的IP报文或ARP报文,其传输格式如图4所示。0061在一个实施例中,例如,可以通过判定报文中的以太。

34、网源IP地址是否为本地IP地址来进行上述判定。具体而言,当判定以太网源IP地址是物理机的本地IP地址时,可以判定所接收到的以太网报文是出包。当判定以太网源IP地址不是物理机的本地IP地址时,可以判定所接收到的以太网报文是入包。应明白的是,这里可以通过本领域已知或未来开发的任意合适方式来判定接收到的以太网报文是入包还是出包,而不限于前面所列举的方式。0062当在步骤S310判定接收到的以太网报文是入包时,流程进到步骤S320。0063在步骤S320处,判定接收到的以太网报文的目的地MAC地址是否为查找表中与所述索引值对应的包括以太网报文的IP地址的数据集合中的全局MAC地址。0064具体而言,在。

35、上述步骤S210中判定出根据接收到的以太网报文中的IP地址(例如,图4所示IP报文和ARP报文中的以太网目的地IP地址)所计算的哈希值在查找表中存在对应的索引值之后,可以从与该索引值所对应的一个或多个数据集合中查找与该以太网报文的IP地址对应的数据集合,从而查找到对应的全局MAC地址,进而可以判定接收到的以太网报文中的目的地MAC地址(例如,图4所示IP报文和ARP报文中的以太网目的地MAC说明书CN104038425A7/8页10地址)是否与查找到的全局MAC地址相同。0065在一个实施例中,可以通过以太网报文的IP地址与该索引值对应的每个数据集合中的IP地址进行逐个对比,来找到其对应的数据。

36、集合。应理解到,这里可以通过本领域已知或未来开发的任意其它合适方式从与该索引值所对应的一个或多个数据集合中查找与这个IP地址对应的数据集合,而不限于上面所列举的方式。0066当在步骤S320中判定接收到的以太网报文的目的地MAC地址是查找表中对应的全局MAC地址时,流程进到步骤S330。0067在步骤S330处,将所述目的地MAC地址替换为查找表中与对应索引值相应的包括以太网报文的IP地址的数据集合中的本地MAC地址。0068也就是,将接收到的以太网报文的目的地MAC地址从全局MAC地址改为虚拟机的本地MAC地址,以便物理机将接收到的以太网报文转发到相应的虚拟机。0069在一个具体实施例中,当。

37、以太网报文为IP报文(如图4所示)时,将该IP报文的报头中的以太网目的地MAC地址替换为查找表中对应的虚拟机的本地MAC地址。当以太网报文为如图4所示的ARP报文时,不仅将该ARP报文的报头中的以太网目的地MAC地址,而且将ARP报文的有效载荷中的目的端MAC地址,都替换为查找表中对应的虚拟机的本地MAC地址。0070回到步骤S320,当判定接收到的以太网报文的目的地MAC地址不是查找表中对应的全局MAC地址时,流程进到步骤S350。0071在步骤S350处,不对接收到的以太网报文进行MAC网络地址转换。从而MAC网络地址转换处理结束。0072回到步骤S310,当判定接收到的以太网报文是出包时。

38、,流程进到步骤S340。0073在步骤S340处,将接收到的以太网报文的源MAC地址替换为查找表中与对应索引值相应的包括以太网报文的IP地址的数据集合中的全局MAC地址。0074也就是,将接收到的以太网报文的源MAC地址从虚拟机的本地MAC地址改为虚拟机对应的全局MAC地址,以便物理机将接收到的以太网报文转发到核心交换机,以由核心交换机将该以太网报文发送到相应目的地端口。0075在一个具体实施例中,当以太网报文为IP报文(如图4所示)时,将该IP报文的报头中的以太网源MAC地址替换为查找表中对应的虚拟机的全局MAC地址。当以太网报文为如图4所示的ARP报文时,不仅将该ARP报文的报头中的以太网。

39、源MAC地址,而且将ARP报文的有效载荷中的发送端MAC地址,都替换为查找表中对应的虚拟机的全局MAC地址。0076由此可以完成MAC网络地址转换处理,实现核心交换机的MAC地址表规模的减小和虚拟比的提高。0077至此,已经结合本申请的实施例描述了根据本申请一个方面的转发以太网报文的方法。相应地,根据本申请的另一方面,还提供了一种转发以太网报文的装置。0078图5示出根据本申请一个实施例的转发以太网报文的装置500的框图。如图5所示,该装置500可以包括运算模块510、判定模块520和转发模块530。0079更具体而言,运算模块510可以用于对接收到的以太网报文的IP地址进行哈希运算得到哈希值。

40、。判定模块520可以用于基于该哈希值利用预先设置的查找表来判定是否需要对接收到的以太网报文进行MAC网络地址转换处理。其中预先设置的查找表可以包括一说明书CN104038425A108/8页11个或多个索引值以及与各索引值对应的一个或多个数据集合,所述索引值可以与通过对虚拟机的IP地址进行哈希运算得到的值相对应,所述数据集合可以包括虚拟机的IP地址、本地MAC地址和对应的全局MAC地址。转发模块530可以用于根据判定结果进行对接收到的以太网报文的转发。0080在一个实施例中,当所述哈希值与所述一个或多个索引值中的一个相同时,判定模块520可以判定需要对接收到的以太网报文进行MAC网络地址转换处。

41、理。当所述哈希值与所述一个或多个索引值中的任一个都不同时,判定模块520可以判定不需要对接收到的以太网报文进行MAC网络地址转换处理。0081在一个实施例中,当判定需要对接收到的以太网报文进行MAC网络地址转换处理时,转发模块530可以对接收到的以太网报文进行MAC网络地址转换处理后再转发经过MAC网络地址转换处理后的以太网报文。当判定不需要对接收到的以太网报文进行MAC网络地址转换处理时,转发模块530可以直接转发接收到的以太网报文。0082根据本实施例的转发以太网报文的装置,同样可以实现MAC地址的快速查找,提高MAC网络地址转换速度,进而能够在减少核心交换机的MAC表规模和提高虚拟比的情。

42、况下进一步提高以太网报文转发效率,优化网络收发包性能。0083以上描述的转发以太网报文的装置与之前描述的转发以太网报文的方法的处理是对应的,因此,关于其具体细节,可以参见之前描述的转发以太网报文的方法,这里不再赘述。0084本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CDROM、光学存储器等)上实施的计算机程序产品的形式。0085以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。说明书CN104038425A111/4页12图1说明书附图CN104038425A122/4页13图2说明书附图CN104038425A133/4页14图3图4说明书附图CN104038425A144/4页15图5说明书附图CN104038425A15。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1