一种虚拟化数据中心的数据转发方法及其实现设备的制作方法

文档序号:7866537阅读:256来源:国知局
专利名称:一种虚拟化数据中心的数据转发方法及其实现设备的制作方法
技术领域
本发明涉及通信技术领域,特别是涉及一种虚拟化数据中心的数据转发的技术方案。
背景技术
随着企业网络规模的不断增长和基于云计算网络环境的大量部署,数据中心网络也显著地变得更加复杂。在数据中心网络中,由于所需的网桥的数量急剧增长,虚拟化技术更增加了数据中心网络的复杂性,并改变了数据中心的网络部署方式。在数据中心网络的一台终端站中,存在着软件实体,基于该软件实体,在一台物理服务器上,可以允许多虚拟机(VM,Virtual Machine)共享同一套硬件系统。每个虚拟机通过该软件实体与该台物理服务器的物理网卡相连。虚拟机能够提高数据中心网络的资源利用率。现有的虚拟机通过虚拟交换机(VSwitch, Virtual Switch)进行数据交互,通常的VSwitch具有多个虚拟端口(vPort),以分别连接虚拟机及物理服务器内部的物理网卡。目前,VSwitch在物理服务器内部实现了一个二层交换功能,具体而言,其在内部维护了 VLAN(虚拟局域网,Virtual Local Area Network)+MAC地址+vPort的转发表,其中,每个VM对应一个vPort,每个VM具有各自的介质访问控制(MAC,Medium Access Control)地址。通过VSwitch可以实现物理服务器内部的各VM之间互相访问。例如,VMl访问VM2的实现过程可以包括VM1发送源MAC地址为MAC地址1,目的MAC地址为MAC地址2的报文,该报文在VSwitch上经二层转发即可到达VM2。但是,VM与外部网络的通信需要借助于三层交换机,三层交换机的转发具有以下特点首包通过CPU转发,同时建立交换芯片硬件三层表项;后续包由交换芯片利用硬件三层表项进行硬件转发。所述硬件三层表项用于保存报文的目的IP地址对应的网段地址前缀(Prefix)、下一条(NextHop)、地址解析协议(ARP, Address Resolution Protocol)三种表项的对应关系。参照图1,示出了现有技术一种主机路由的硬件三层表项的组织示意图,其中的一个主机路由需要各对应一个Prefix、Nexthop和ARP表项,Prefix表项用于存放路由最长匹配信息,指明路由对应的IP地址和掩码;Nexthop表项用于存放路由对应下一跳信息,Nexthop表项在硬件上主要表现为出端口和ARP指针;ARP表项主要用于封装三层转发报文的目的MAC地址(DMAC地址,destination MAC地址)的封装信息,一般由Nexthop表指向。 为了说明VM与外部网络的通信过程,参照图2,示出了现有技术一种VM与外部网络的通信链路示意图,该通信链路具体可以包括VM、VSwitch、物理网卡、三层交换机和外部网络;相应的VM与外部网络的通信过程具体可以包括当VM需要访问外部网络时,需要依据报文的VLAN和目的MAC地址查找VSwitch上通往三层交换机的vPort,报文通过查找得到的vPort经物理网卡达到三层交换机,由三层交换机将相应的报文三层转发到外部网络。当外部网络需要访问某个VM时,需要查找三层交换机上的硬件三层表项,找到对应的ARP表项,查找过程的一个示例为首先按照最长匹配原则查找到与报文的目的IP地址最为匹配的网络地址前缀,再通过该网络地址前缀查找到下一条表项,再通过该下一条表项查找到对应的ARP表项;然后将报文转发到ARP表项对应的VM,例如若要访问VM3,则可以查找三层交换机的硬件三层表项得到相应的ARP表项,该ARP表项中封装的目的MAC地址就是VM3的MAC地址3。可以看出,为了实现VM与外部网络的通信,现有技术中需要将各VM的三层转发信息添加至硬件三层表项(Prefix、Nexthop和ARP表项);在数据中心使用大量VM的情况下,更是需要向交换芯片中集成的表项存储空间添加大量的硬件表项,这无疑增加了表项存储空间的占用,从而增加了交换芯片的成本
发明内容

本发明所要解决的技术问题是提供一种用于三层交换机的数据处理方法、一种用于虚拟交换机的数据处理方法、一种三层交换机、一种虚拟交换机及一种虚拟机与外部网络的通信方法,以降低硬件表项存储空间的占用。为了解决上述问题,本发明公开了一种用于虚拟交换机的数据处理方法,包括虚拟交换机预置虚拟机群组;每个虚拟机群组包括多个虚拟机,且每个虚拟机群组对应一个介质访问控制MAC地址;虚拟交换机接收来自虚拟机的上行报文,并依据所述上行报文的虚拟局域网VLAN和目的MAC地址查找通往三层交换机的虚拟端口 ;虚拟交换机将所述上行报文的源MAC地址替换为该虚拟机所在虚拟机群组的MAC地址;虚拟交换机通过所述查找得到的虚拟端口将所述上行报文发送至三层交换机;虚拟交换机接收来自三层交换机的下行报文;虚拟交换机依据所述下行报文的VLAN、目的MAC地址和目的IP,查找得到所述下行报文的目的虚拟机所对应的虚拟端口 ;所述目的IP为所述下行报文的目的虚拟机对应的IP ;虚拟交换机将所述下行报文的目的MAC地址替换为该目的虚拟机的MAC地址,并通过查找得到的虚拟端口将所述下行报文发送至对应的目的虚拟机。优选的,通过如下步骤得到所述虚拟机群组对应的MAC地址虚拟交换机在为物理服务器上虚拟机配置MAC地址时,预留若干个MAC地址;虚拟交换机从所述预留的若干个MAC地址中,选择所述虚拟机群组对应的MAC地址。另一方面,本发明实施例还公开了一种虚拟交换机,包括组预置模块,用于预置虚拟机群组;每个虚拟机群组包括多个虚拟机,且每个虚拟机群组对应一个介质访问控制MAC地址;第一查找模块,用于接收来自虚拟机的上行报文,并依据所述上行报文的虚拟局域网VLAN和目的MAC地址查找通往三层交换机的虚拟端口 ;
替换模块,用于将所述上行报文的源MAC地址替换为该虚拟机所在虚拟机群组的MAC地址;第一发送模块,用于通过所述查找得到的虚拟端口将所述上行报文发送至三层交换机;第二查找模块,用于在接收到来自三层交换机的下行报文时,依据所述下行报文的VLAN、目的MAC地址和目的IP,查找得到所述下行报文的目的虚拟机所对应的虚拟端口 ;所述目的IP为所述下行报文的目的虚拟机对应的IP ;第二发送模块,用于将所述下行报文的目的MAC地址替换为该目的虚拟机的MAC地址,并通过查找得到的虚拟端口将所述下行报文发送至对应的目的虚拟机。优选的,所述虚拟交换机还包括用于获取所述虚拟机群组对应的MAC地址的获 取丰吴块;所述获取模块包括预留子模块,用于在为物理服务器上虚拟机配置MAC地址时,预留若干个MAC地址;选择子模块,用于从所述预留的若干个MAC地址中,选择所述虚拟机群组对应的MAC地址。另一方面,本发明实施例还公开了一种用于三层交换机的数据处理方法,包括在接收到虚拟交换机发送的报文时,通过地址解析协议ARP表项信息学习过程学习得到ARP表项信息;所述ARP表项信息中包括有虚拟机所在虚拟机群组的MAC地址;在依据所述ARP表项信息生成硬件表项的过程中,将所述ARP表项信息中虚拟机所在虚拟机群组的MAC地址与已生成硬件表项中ARP表项进行匹配,若匹配失败,则在生成的硬件表项中,依据所述ARP表项信息中虚拟机所在虚拟机群组的MAC地址封装得到ARP表项,若匹配成功,则在生成的硬件表项中共用与所述匹配成功的硬件表项相同的ARP表项;在接收来自外部网络的下行报文时,依据所述下行报文的目的IP查找本地的硬件表项,找到所述下行报文对应的ARP表项,并将所述ARP表项中封装的虚拟机所在虚拟群组的MAC地址作为所述下行报文的目的MAC地址,将所述下行报文发送至虚拟交换机。优选的,所述ARP表项信息中还包括有出端口 ;则所述方法还包括在匹配成功时,将所述ARP表项信息中出端口与已生成硬件表项中NextHop表项进行匹配,若匹配失败,则在生成的硬件表项中,依据所述ARP表项信息中出端口封装得到NextHop表项,若匹配成功,贝U在生成的硬件表项中使用与所述匹配成功的硬件表项相同的NextHop 表项。另一方面,本发明实施例还公开了一种三层交换机,包括学习模块,用于在接收到虚拟交换机发送的报文时,通过地址解析协议ARP表项信息学校过程学习得到ARP表项信息;所述ARP表项信息中包括有虚拟机所在虚拟机群组的MAC地址;硬件表项生成模块,用于在依据所述ARP表项信息生成硬件表项的过程中,将所述ARP表项信息中虚拟机所在虚拟机群组的MAC地址与已生成硬件表项中ARP表项进行匹配,若匹配失败,则在生成的硬件表项中,依据所述ARP表项信息中虚拟机所在虚拟机群组的MAC地址封装得到ARP表项,若匹配成功,则在生成的硬件表项中共用与所述匹配成功的硬件表项相同的ARP表项;下行报文处理模块,用于在接收来自外部网络的下行报文时,依据所述下行报文的目的IP查找本地的硬件表项,找到所述下行报文对应的ARP表项,并将所述ARP表项中封装的虚拟机所在虚拟群组的MAC地址作为所述下行报文的目的MAC地址,将所述下行报文发送至虚拟交换机。优选的,所述ARP表项信息中还包括有出端口 ;则所述硬件生成模块还用于,在匹配成功时,将所述ARP表项信息中出端口与已生成硬件表项中NextHop表项进行匹配,若匹配失败,则在生成的硬件表项中,依据所述ARP表项信息中出端口封装得到NextHop表项,若匹配成功,则在生成的硬件表项中使用与所述匹配成功的硬件表项相同的NextHop表项。
另一方面,本发明实施例还公开了一种虚拟机与外部网络的通信方法,包括虚拟交换机接收来自虚拟机的上行报文,并依据所述上行报文的虚拟局域网VLAN和目的介质访问控制MAC地址查找通往三层交换机的虚拟端口 ;虚拟交换机将所述上行报文的源MAC地址替换为该虚拟机所在虚拟机群组的MAC地址;虚拟交换机通过所述查找得到的虚拟端口将所述上行报文发送至三层交换机;三层交换机将所述上行报文三层转发到外部网络。另一方面,本发明实施例还公开了一种虚拟机与外部网络的通信方法,包括三层交换机接收来自外部网络的下行报文;三层交换机依据所述下行报文的目的IP查找本地的硬件表项,找到所述下行报文对应的ARP表项,并将所述ARP表项中封装的虚拟机所在虚拟群组的MAC地址作为所述下行报文的目的MAC地址;三层交换机将所述下行报文发送至虚拟交换机;虚拟交换机依据所述下行报文的VLAN、目的MAC地址和目的IP,查找得到所述下行报文的目的虚拟机所对应的虚拟端口 ;所述目的IP为所述下行报文的目的虚拟机对应的IP ;虚拟交换机将所述下行报文的目的MAC地址替换为该目的虚拟机的MAC地址,并通过查找得到的虚拟端口将所述下行报文发送至对应的目的虚拟机。与现有技术相比,本发明具有以下优点首先,本发明通过预置虚拟机群组,得到虚拟机群组的MAC地址和虚拟机群组内虚拟机的MAC地址之间的一对多关系,并且,通过改进转发流程减少对三层交换机侧ARP资源的占用;同时,通过改进硬件表项的生成流程,在三层交换机侧的硬件表项中实现同一虚拟机群组内的多个虚拟机共用ARP表项;因此,相对于现有技术中一个虚拟机占用一份ARP表项的存储空间,多个虚拟机占用多份ARP表项的存储空间的情形,本发明能够实现多个虚拟机共用一份ARP表项的存储空间,因此能够降低交换芯片中ARP表项所占用的表项存储空间;从而能够降低交换芯片的成本。其次,由于Nexthop表项在硬件上主要表现为出端口和ARP指针或ARP索引,而同一虚拟机群组内的多个虚拟机在物理上对应于三层交换机的同一个出端口,且在同一虚拟机群组内的多个虚拟机共用ARP表项的情况下相应的ARP指针也是相同的;这样,在硬件表项中,本发明的同一虚拟机群组内的多个虚拟机还可以共用Nexthop表项;由于现有技术中多个虚拟机是占用多份Nexthop表项的存储空间的,因此,本发明多个虚拟机共用一份Nexthop表项的存储空间,能够降低交换芯片中Nexthop表项所占用的表项存储空间,进一步降低表项存储空间的占用,从而能够进一步降低交换芯片的成本。


图1是现有技术一种主机路由的硬件三层表项的组织示意图2是现有技术一种VM与外部网络的通信链路示意图3是本发明一种用于虚拟交换机的数据处理方法实施例的流程图4是本发明一种虚拟机与外部网络的通信方法实施例1的流程图5是本发明一种虚拟机与外部网络的通信方法实施例2的流程图6是本发明一种硬件表项的生成方法实施例1的流程图7是本发明一种硬件表项的生成方法实施例2的流程图;
图8是本发明一种用于三层交换机的数据处理方法实施例的流程图9是本发明一种虚拟交换机实施例的结构图10是本发明一种三层交换机实施例的结构图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。
现有技术中,硬件表项中ARP表项与虚拟机之间存在对应的关系,也即,一个
虚拟机占用一份ARP表项的存储空间,多个虚拟机占用多份ARP表项的存储空间,ARP表项中主要包括三层转发报文的目的MAC地址的封装信息。本发明在虚拟交换机侧通过预置虚拟机群组得到虚拟机群组的MAC地址和虚拟机群组内虚拟机的MAC地址之间的一对多关系,并且,通过改进转发流程减少对三层交换机侧ARP资源的占用;同时,通过改进硬件表项的生成流程,在三层交换机侧的硬件表项中实现同一虚拟机群组内的多个虚拟机共用ARP表项;因此,相对于现有技术中一个虚拟机占用一份ARP表项的存储空间的情形,本发明能够实现多个虚拟机共用一份ARP表项的存储空间,因此能够降低交换芯片中ARP表项所占用的表项存储空间;从而能够降低交换芯片的成本。参照图3,示出了本发明一种用于虚拟交换机的数据处理方法实施例的流程图,具体可以包括步骤301、虚拟交换机预置虚拟机群组;每个虚拟机群组具体可以包括多个虚拟机,且每个虚拟机群组对应一个MAC地址;在具体实现中,一个虚拟机群组内虚拟机的数目可以大于等于2。可以理解,本领域技术人员可以根据实际需要设置一个虚拟机群组内虚拟机的数目;另外,可以根据实际需要对一台物理服务器上的所有虚拟机划分为I个或I个以上的虚拟机群组;并且,在存在I个以上的虚拟机群组时,每个虚拟机群组内虚拟机的数目可相同或不同;本发明对物理服务器上虚拟机群组的具体数目以及一个虚拟机群组内虚拟机的具体数目不加以限制。在实际应用中,所述虚拟机群组对应的MAC地址可由本领域技术人员通过配置得到。例如,在本发明的一种优选实施例中,可由通过如下步骤得到所述虚拟机群组对应的MAC地址步骤SlOl、在为物理服务器上虚拟机配置MAC地址时,预留若干个MAC地址;
步骤S102、从所述预留的若干个MAC地址中,选择所述虚拟机群组对应的MAC地址。可以理解,只要能够满足已有虚拟机的MAC地址和虚拟机群组对应的MAC地址不冲突的条件即可,本发明对具体的配置所述虚拟机群组对应的MAC地址的具体方法不加以限制。步骤302、虚拟交换机接收来自虚拟机的上行报文,并依据所述上行报文的VLAN和目的MAC地址查找通往三层交换机的虚拟端口 ;步骤303、虚拟交换机将所述上行报文的源MAC地址替换为该虚拟机所在虚拟机群组的MAC地址;步骤304、虚拟交换机通过所述查找得到的虚拟端口将所述上行报文发送至三层交换机;步骤305、虚拟交换机接收来自三层交换机的下行报文;步骤306、虚拟交换机依据所述下行报文的VLAN、目的MAC地址和目的IP,查找得到所述下行报文的目的虚拟机所对应的虚拟端口 ;所述目的IP为所述下行报文的目的虚拟机对应的IP ;步骤307、虚拟交换机将所述下行报文的目的MAC地址替换为该目的虚拟机的MAC地址,并通过查找得到的虚拟端口将所述下行报文发送至对应的目的虚拟机。本发明实施例中,上行报文、下行报文用于表示虚拟机与外部网络之间的通信报文,其中,上行报文用于表示虚拟机向外部网络发送的报文,下行报文用于表示外部网络向虚拟机发送的报文。步骤302-步骤304主要用于说明VM访问外部网络时上行报文的处理流程。本发明相对于现有技术的区别之一为步骤303,步骤303的具体实现过程可以为VSwitch在向外部发送报文前,把来自VM的报文的源MAC地址替换为VM所在虚拟机群组的MAC地址即可。可以理解,图3所示通信方法实施例1的通信过程可作为学习得到ARP表项信息的依据。步骤305-步骤307主要用于说明外部网络访问VM时下行报文的处理流程。本发明相对于现有技术的区别之一为步骤306和步骤307。步骤306具体表现为报文的目的虚拟机所对应的虚拟端口的查找过程不同。现对步骤306进行详细说明现有技术中是依据报文的VLAN和目的MAC地址查找报文的目的VM所对应的vPort的,但是,本发明中报文的目的MAC地址为报文的目的VM所在虚拟群组的MAC地址,而非报文的目的VM本身的MAC地址,故现有技术依据报文的VLAN和目的MAC地址无法查找得到报文的目的VM所对应的vPort ;
本发明中,一个虚拟群组内各VM具体不同的IP地址,即IP地址能够将一个虚拟群组内各VM区别开来;于是,依据所述报文的VLAN、目的MAC地址和目的IP,查找所述报文的目的虚拟机所对应的虚拟端口。步骤307具体表现为在发送下行报文前,将所述下行报文的目的MAC地址替换为该目的虚拟机的MAC地址,以便该目的虚拟机能够依据所述下行报文的目的IP、目的MAC等信息确认所述下行报文是发给自己的。需要说明的是,本发明实施例中VLAN可以在报文中携带,也可以端口的属性上配置;另外,源MAC地址、目的MAC地址、目的IP可以在报文中携带,本发明实施例对具体的VLAN、源MAC地址、目的MAC地址、目的IP的获取方式不加以限制。现有技术中一个虚拟机占用一份ARP表项,本发明中多个虚拟机共用一份ARP表项,所述ARP表项资源占用的不同导致虚拟机与外部网络的通信方案也是不同的,下面进行详细的说明。参照图4,示出了本发明一种虚拟机与外部网络的通信方法实施例1的流程图,具 体可以包括步骤401、虚拟交换机接收来自虚拟机的上行报文,并依据所述上行报文的VLAN和目的MAC地址查找通往物理网卡的虚拟端口 ;步骤402、虚拟交换机将所述上行报文的源MAC地址替换为该虚拟机所在虚拟机群组的MAC地址;步骤403、虚拟交换机通过所述查找得到的虚拟端口将所述上行报文发送至三层交换机;步骤404、三层交换机将所述上行报文三层转发到外部网络。通信方法实施例1描述的是VM访问外部网络的情形,可以理解,图4所示通信方法实施例1的通信过程可作为学习得到ARP表项的依据。参照图5,示出了本发明一种虚拟机与外部网络的通信方法实施例2的流程图,具体可以包括步骤501、三层交换机接收来自外部网络的下行报文;步骤502、三层交换机所述下行报文的目的IP查找本地的硬件表项,找到所述下行报文对应的ARP表项,并将所述ARP表项中封装的虚拟机所在虚拟群组的MAC地址作为所述报文的目的MAC地址;步骤503、三层交换机将所述下行报文发送至虚拟交换机;步骤504、虚拟交换机依据所述下行报文的VLAN、目的MAC地址和目的IP,查找得到所述下行报文的目的虚拟机所对应的虚拟端口 ;所述目的IP为所述下行报文的目的虚拟机对应的IP ;步骤505、虚拟交换机将所述下行报文的目的MAC地址替换为该目的虚拟机的MAC地址,并通过查找得到的虚拟端口将所述下行报文发送至对应的目的虚拟机。通信方法实施例2描述的是外部网络访问VM的情形,本发明相对于现有技术的区别之一为步骤502和步骤504,其中,步骤502的不同具体表现为ARP表项中封装的内容不同;步骤504的不同具体表现为报文的目的虚拟机所对应的虚拟端口的查找过程不同。以硬件三层表项为例,步骤502中查找过程的一个示例为首先按照最长匹配原则查找到与报文的目的IP地址最为匹配的网络地址前缀,再通过该网络地址前缀查找到下一条表项,再通过该下一条表项查找到对应的ARP表项。例如若要访问VM3,则可以查找三层交换机的硬件三层表项得到相应的ARP表项,该ARP表项中封装的目的MAC地址就是VM3的MAC地址3。可以理解,图5所示通信方法实施例2的通信过程可作为学习得到ARP表项的依据。参照图6,示出了本发明一种硬件表项的生成方法实施例1的流程图,具体可以包括步骤601、在接收到虚拟交换机发送的报文时,通过ARP表项信息学习过程学习得到ARP表项信息;所述ARP表项信息中具体可以包括有虚拟机所在虚拟机群组的MAC地址;
步骤602、在依据所述ARP表项信息生成硬件表项的过程中,将所述ARP表项信息中虚拟机所在虚拟机群组的MAC地址与已生成硬件表项中ARP表项进行匹配,若匹配失败,则在生成的硬件表项中,依据所述ARP表项信息中虚拟机所在虚拟机群组的MAC地址封装得到ARP表项,若匹配成功,则在生成的硬件表项中共用与所述匹配成功的硬件表项相同的ARP表项。本发明可用于三层交换机侧硬件表项的生成,其中,本发明的硬件表项可以表现为硬件三层表项的形式(Prefix、Nexthop和ARP表项),也可以表现为硬件二层表项的形式(Prefix和Nexthop表项,Nexthop表项用于保存Nexthop表项和ARP表项)。需要说明的是,依据三层交换机的转发的如下特点首包通过CPU转发,同时建立交换芯片硬件三层表项,可以得知,本发明的ARP表项信息可依据VM与外部网络的首次通信过程学习得到。需要说明的是,由于步骤402虚拟交换机将所述上行报文的源MAC地址替换为该虚拟机所在虚拟机群组的MAC地址,故本发明学习得到的ARP表项信息中可以包括有虚拟机所在虚拟机群组的MAC地址。由于依据VM与外部网络的首次通信过程学习得到ARP表项信息属于现有技术的范畴,故在此不作赘述。本发明在依据所述ARP表项信息生成硬件表项的过程中,通过ARP表项信息中虚拟机所在虚拟机群组的MAC地址与已生成硬件表项中ARP表项的匹配,以在三层交换机侧的硬件表项中实现同一虚拟机群组内的多个虚拟机共用ARP表项。由于通常硬件表项需要被添加至交换芯片中集成的表项存储空间中,故本发明能够降低交换芯片中ARP表项所占用的表项存储空间;从而能够降低交换芯片的成本。在此提供一种依据所述ARP表项信息生成硬件表项的示例假设三层交换机接收到来自VMl和VM2的上行报文,由于VMl和VM2属于同一个虚拟机群组,且虚拟交换机在转发过程中将上行报文的源MAC地址替换为虚拟机所在虚拟机群组的MAC地址,三层交换机接收的来自VMl和VM2的上行报文的MAC地址是相同的(假设为 00e0-fc01-0003);参照表I,不出了本发明一种生成的VMl和VM2的ARP表项信息的不例。表I
IP地址MAC地址VLAN ID出端口
权利要求
1.一种用于虚拟交换机的数据处理方法,其特征在于,包括 虚拟交换机预置虚拟机群组;每个虚拟机群组包括多个虚拟机,且每个虚拟机群组对应一个介质访问控制MAC地址; 虚拟交换机接收来自虚拟机的上行报文,并依据所述上行报文的虚拟局域网VLAN和目的MAC地址查找通往三层交换机的虚拟端口 ; 虚拟交换机将所述上行报文的源MAC地址替换为该虚拟机所在虚拟机群组的MAC地址; 虚拟交换机通过所述查找得到的虚拟端口将所述上行报文发送至三层交换机; 虚拟交换机接收来自三层交换机的下行报文; 虚拟交换机依据所述下行报文的VLAN、目的MAC地址和目的IP,查找得到所述下行报文的目的虚拟机所对应的虚拟端口 ;所述目的IP为所述下行报文的目的虚拟机对应的IP ; 虚拟交换机将所述下行报文的目的MAC地址替换为该目的虚拟机的MAC地址,并通过查找得到的虚拟端口将所述下行报文发送至对应的目的虚拟机。
2.如权利要求1所述的方法,其特征在于,通过如下步骤得到所述虚拟机群组对应的MAC地址 虚拟交换机在为物理服务器上虚拟机配置MAC地址时,预留若干个MAC地址; 虚拟交换机从所述预留的若干个MAC地址中,选择所述虚拟机群组对应的MAC地址。
3.—种虚拟交换机,其特征在于,包括 组预置模块,用于预置虚拟机群组;每个虚拟机群组包括多个虚拟机,且每个虚拟机群组对应一个介质访问控制MAC地址; 第一查找模块,用于接收来自虚拟机的上行报文,并依据所述上行报文的虚拟局域网VLAN和目的MAC地址查找通往三层交换机的虚拟端口 ; 替换模块,用于将所述上行报文的源MAC地址替换为该虚拟机所在虚拟机群组的MAC地址; 第一发送模块,用于通过所述查找得到的虚拟端口将所述上行报文发送至三层交换机; 第二查找模块,用于在接收到来自三层交换机的下行报文时,依据所述下行报文的VLAN、目的MAC地址和目的IP,查找得到所述下行报文的目的虚拟机所对应的虚拟端口 ;所述目的IP为所述下行报文的目的虚拟机对应的IP ; 第二发送模块,用于将所述下行报文的目的MAC地址替换为该目的虚拟机的MAC地址,并通过查找得到的虚拟端口将所述下行报文发送至对应的目的虚拟机。
4.如权利要求3所述的虚拟交换机,其特征在于,还包括用于获取所述虚拟机群组对应的MAC地址的获取模块; 所述获取模块包括 预留子模块,用于在为物理服务器上虚拟机配置MAC地址时,预留若干个MAC地址; 选择子模块,用于从所述预留的若干个MAC地址中,选择所述虚拟机群组对应的MAC地址。
5.一种用于三层交换机的数据处理方法,其特征在于,包括在接收到虚拟交换机发送的报文时,通过地址解析协议ARP表项信息学习过程学习得到ARP表项信息;所述ARP表项信息中包括有虚拟机所在虚拟机群组的MAC地址; 在依据所述ARP表项信息生成硬件表项的过程中,将所述ARP表项信息中虚拟机所在虚拟机群组的MAC地址与已生成硬件表项中ARP表项进行匹配,若匹配失败,则在生成的硬件表项中,依据所述ARP表项信息中虚拟机所在虚拟机群组的MAC地址封装得到ARP表项,若匹配成功,则在生成的硬件表项中共用与所述匹配成功的硬件表项相同的ARP表项; 在接收来自外部网络的下行报文时,依据所述下行报文的目的IP查找本地的硬件表项,找到所述下行报文对应的ARP表项,并将所述ARP表项中封装的虚拟机所在虚拟群组的MAC地址作为所述下行报文的目的MAC地址,将所述下行报文发送至虚拟交换机。
6.如权利要求5所述的方法,其特征在于,所述ARP表项信息中还包括有出端口; 则所述方法还包括 在匹配成功时,将所述ARP表项信息中出端口与已生成硬件表项中NextHop表项进行匹配,若匹配失败,则在生成的硬件表项中,依据所述ARP表项信息中出端口封装得到NextHop表项,若匹配成功,贝U在生成的硬件表项中使用与所述匹配成功的硬件表项相同的NextHop 表项。
7.—种三层交换机,其特征在于,包括 学习模块,用于在接收到虚拟交换机发送的报文时,通过地址解析协议ARP表项信息学校过程学习得到ARP表项信息;所述ARP表项信息中包括有虚拟机所在虚拟机群组的MAC地址; 硬件表项生成模块,用于在依据所述ARP表项信息生成硬件表项的过程中,将所述ARP表项信息中虚拟机所在虚拟机群组的MAC地址与已生成硬件表项中ARP表项进行匹配,若匹配失败,则在生成的硬件表项中,依据所述ARP表项信息中虚拟机所在虚拟机群组的MAC地址封装得到ARP表项,若匹配成功,则在生成的硬件表项中共用与所述匹配成功的硬件表项相同的ARP表项; 下行报文处理模块,用于在接收来自外部网络的下行报文时,依据所述下行报文的目的IP查找本地的硬件表项,找到所述下行报文对应的ARP表项,并将所述ARP表项中封装的虚拟机所在虚拟群组的MAC地址作为所述下行报文的目的MAC地址,将所述下行报文发送至虚拟交换机。
8.如权利要求7所述的三层交换机,其特征在于,所述ARP表项信息中还包括有出端Π ; 则所述硬件生成模块还用于,在匹配成功时,将所述ARP表项信息中出端口与已生成硬件表项中NextHop表项进行匹配,若匹配失败,则在生成的硬件表项中,依据所述ARP表项信息中出端口封装得到NextHop表项,若匹配成功,则在生成的硬件表项中使用与所述匹配成功的硬件表项相同的NextHop表项。
9.一种虚拟机与外部网络的通信方法,其特征在于,包括 虚拟交换机接收来自虚拟机的上行报文,并依据所述上行报文的虚拟局域网VLAN和目的介质访问控制MAC地址查找通往三层交换机的虚拟端口 ; 虚拟交换机将所述上行报文的源MAC地址替换为该虚拟机所在虚拟机群组的MAC地址;虚拟交换机通过所述查找得到的虚拟端口将所述上行报文发送至三层交换机; 三层交换机将所述上行报文三层转发到外部网络。
10.一种虚拟机与外部网络的通信方法,其特征在于,包括 三层交换机接收来自外部网络的下行报文; 三层交换机依据所述下行报文的目的IP查找本地的硬件表项,找到所述下行报文对应的ARP表项,并将所述ARP表项中封装的虚拟机所在虚拟群组的MAC地址作为所述下行报文的目的MAC地址; 三层交换机将所述下行报文发送至虚拟交换机; 虚拟交换机依据所述下行报文的VLAN、目的MAC地址和目的IP,查找得到所述下行报文的目的虚拟机所对应的虚拟端口 ;所述目的IP为所述下行报文的目的虚拟机对应的IP ; 虚拟交换机将所述下行报文的目的MAC地址替换为该目的虚拟机的MAC地址,并通过查找得到的虚拟端口将所述下行报文发送至对应的目的虚拟机。
全文摘要
本发明提供了一种虚拟化数据中心的数据转发方法及其实现设备,其中的方法具体包括预置虚拟机群组;每个虚拟机群组包括多个虚拟机,且每个虚拟机群组对应一个介质访问控制MAC地址;接收来自虚拟机的上行报文,并依据所述上行报文的虚拟局域网VLAN和目的MAC地址查找通往三层交换机的虚拟端口;将所述上行报文的源MAC地址替换为该虚拟机所在虚拟机群组的MAC地址;通过所述查找得到的虚拟端口将所述上行报文发送至三层交换机。本发明用以降低硬件表项存储空间的占用。
文档编号H04L12/947GK103023827SQ201210487408
公开日2013年4月3日 申请日期2012年11月23日 优先权日2012年11月23日
发明者游君平, 郑国良, 赵海峰, 翟颖颖 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1