CN104144130A - 虚拟机系统互联的方法、系统和接入交换机 - Google Patents
虚拟机系统互联的方法、系统和接入交换机 Download PDFInfo
- Publication number
- CN104144130A CN104144130A CN201310170248.8A CN201310170248A CN104144130A CN 104144130 A CN104144130 A CN 104144130A CN 201310170248 A CN201310170248 A CN 201310170248A CN 104144130 A CN104144130 A CN 104144130A
- Authority
- CN
- China
- Prior art keywords
- frame
- port
- address
- virtual
- machine system
- 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
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种虚拟机系统互联的方法、系统和接入交换机。该方法包括:承载虚拟机系统的服务器响应于接收到虚拟机系统发送的数据帧,通过接入交换机上的接入端口,将数据帧发送至接入交换机;接入交换机识别数据帧的目的MAC地址;响应于识别出目的MAC地址对应的端口与接入端口为同一端口,回送数据帧;服务器根据目的MAC地址和虚拟端口的对应关系,将数据帧进行发送。本发明提供的技术方案提供虚拟机系统间数据流量的硬件级数据交换性能,以及减少对服务器性能的影响,同时,能够方便地实现对虚拟机系统的流量监视。
Description
技术领域
本发明涉及计算机应用领域,特别涉及一种虚拟机系统互联的方法、系统和接入交换机。
背景技术
近年来,随着计算机及通信技术的发展,越来越多的数据中心开始使用虚拟化技术。虚拟化技术是一种对计算机系统硬件进行抽象以实现计算资源彼此隔离的技术。通过该技术可以在一个物理硬件平台上虚拟出若干个虚拟平台,并使计算单元在虚拟的平台上而不是真实的物理平台上运行。计算机虚拟化实现了操作系统与计算机物理硬件的分离,使得在一台物理计算机上可以同时安装和运行一个或多个操作系统。Hypervisor是所有虚拟化技术的核心,它是一种运行在计算机和操作系统之间的中间软件层,可以访问计算机上包括磁盘和内存在内的所有物理设备,Hypervisor负责对着这些计算机硬件资源进行协调。当服务器启动时,它会加载所有虚拟机客户端的操作系统,同时为虚拟机分配内存、磁盘和网络等。
在数据中心虚拟化环境下,通常在一台服务器上运行多个虚拟机系统,无论是运行在同一服务器还是不同服务器上的虚拟机系统之间都存在数据互访的需求。参见图1所示,图1示出现有技术中多个虚拟机系统之间进行数据通信的结构示意图。如图1所示,在现有技术中,通过在服务器上内置的虚拟交换机实现多个虚拟机VM系统之间的互联。该虚拟交换机可通过虚拟端口连接虚拟机系统的虚拟网卡vNIC和服务器的物理网卡NIC。虚拟机系统之间的数据转发及策略控制由虚拟交换机来完成。
然而,由于虚拟交换机完全是由软件来实现,这种基于软件的虚拟交换机数据转发过程实际上是通过占有服务器的资源来完成,例如,数据帧的查表、转发,增加了服务器处理负担,影响服务器性能。并且基于软件的软交换性能难以达到传统物理交换机硬交换的性能。同时,对于同一服务器上的虚拟机系统之间流量由于仅通过软交换,不经过物理网口,导致无法监视虚拟机系统之间的数据流量。
发明内容
根据本发明实施例的一个方面,所要解决的一个技术问题是:提供一种虚拟机系统互联的方法、系统和接入交换机,以提供虚拟机系统之间互访数据流量的快速交换及流量监控。
本发明实施例提供的一种接入交换机对数据帧转发处理方法,所述方法包括:
通过接入端口接收承载虚拟机系统的服务器发送的来自于虚拟机系统的数据帧;
识别所述数据帧的目的MAC地址;
根据所述目的MAC地址,获得与所述目的MAC地址所对应的端口;
响应于所述对应的端口与所述接入端口为同一端口,向所述同一端口回送所述数据帧,以使得所述服务器根据所述目的MAC地址和虚拟端口的对应关系,将所述数据帧向对应的虚拟端口进行发送。
优选地,所述方法还包括:
响应于所述对应的端口与所述接入端口为不同端口,向所述对应的端口转发所述数据帧。
优选地,所述方法还包括:
根据所述数据帧的目的MAC地址,识别出所述数据帧为广播帧或组播帧;
将所述广播帧或组播帧向所有端口进行发送。
优选地,所述方法还包括:
响应于通过接入端口接收到来自于服务器发送的非虚拟机系统的广播帧或组播帧;
将所述广播帧或组播帧向除所述接入端口之外的所有端口进行发送。
优选地,响应于识别出所述目的MAC地址对应的端口与所述接入端口为同一端口,所述方法还包括:
根据预先设定的控制访问列表ACL,当所述ACL允许或禁止虚拟机系统之间的互访流量时,相应地执行或不执行所述向所述同一端口回送所述数据帧的操作。
优选地,所述方法还包括:
对于通过端口向虚拟机系统发送的数据帧,基于所述数据帧的目的MAC地址配置流量参数,进行流量控制;或者
对于通过端口接收虚拟机系统发送的数据帧,基于所述数据帧的源MAC地址配置流量参数,进行流量控制。
本发明实施例提供的一种虚拟机系统互联的方法,所述方法包括:
承载虚拟机系统的服务器响应于接收到虚拟机系统发送的数据帧,使用所述服务器的物理网卡,通过接入交换机上的接入端口,将所述数据帧发送至所述接入交换机;
所述接入交换机识别所述数据帧的目的MAC地址;
响应于识别出所述目的MAC地址对应的端口与所述接入端口为同一端口,所述接入交换机向所述同一端口回送所述数据帧,
所述服务器通过所述同一端口接收所述数据帧;
所述服务器根据所述目的MAC地址和虚拟端口的对应关系,将所述数据帧向对应的虚拟端口进行发送,以由所述虚拟端口对应的虚拟机系统接收所述数据帧。
优选地,所述方法还包括:
响应于识别出所述目的MAC地址对应的端口与所述接入端口为不同端口,所述接入交换机根据MAC地址与端口的对应关系,向所述目标MAC地址对应的端口转发所述数据帧。
优选地,所述服务器根据所述目的MAC地址和虚拟端口的对应关系,将所述数据帧向对应的虚拟端口进行发送,具体包括:
若根据目的MAC地址,所述服务器识别出接收到的数据帧为单播帧,响应于存在与所述目的MAC地址相对应的虚拟端口,将所述数据帧向所述虚拟端口进行发送;
若根据目的MAC地址,所述服务器识别出接收到的数据帧为广播帧,响应于不存在与所述广播帧的源MAC地址相对应的虚拟端口,向所述广播帧携带的虚拟局域网标识VLAN ID关联的所有虚拟端口发送所述广播帧;响应于存在与所述广播帧的源MAC地址相对应的虚拟端口,向所述VLAN ID关联的除所述源MAC地址对应的虚拟端口之外的所有虚拟端口发送所述广播帧;
若根据目的MAC地址,所述服务器识别出接收到的数据帧为组播帧,响应于存在与所述组播帧的目的组播MAC地址相对应的虚拟端口,并且不存在与所述组播帧的源MAC地址相对应的虚拟端口,向所述组播帧携带的VLAN ID关联的所有虚拟端口发送所述组播帧;响应于存在与所述目的组播MAC地址相对应的虚拟端口,并且存在与所述组播帧的源MAC地址相对应的虚拟端口,向所述VLAN ID以及所述目的组播MAC地址关联的除所述组播帧的源MAC地址对应的虚拟端口外的所有虚拟端口发送所述组播帧。
本发明实施例提供的一种接入交换机,所述交换机包括:
接收单元,用于通过接入端口接收承载虚拟机系统的服务器发送的来自于虚拟机系统的数据帧;
识别单元,用于识别所述数据帧的目的MAC地址;
端口查找单元,用于根据所述目的MAC地址,获得与所述目的MAC地址所对应的端口;
发送单元;响应于所述对应的端口与所述接入端口为同一端口,向所述同一端口回送所述数据帧,以使得所述服务器根据所述目的MAC地址和虚拟端口的对应关系,将所述数据帧向对应的虚拟端口进行发送。
优选地,所述发送单元,还用于响应于所述对应的端口与所述接入端口为不同端口,向所述对应的端口转发所述数据帧。
优选地,所述端口查找单元,还用于根据所述数据帧的目的MAC地址,识别出所述数据帧为广播帧或组播帧;
所述发送单元,将所述广播帧或组播帧向所有端口进行发送。
优选地,所述发送单元,还用于响应于接收单元通过接入端口接收到来自于服务器发送的非虚拟机系统的广播帧或组播帧,将所述广播帧或组播帧向除所述接入端口之外的所有端口进行发送。
优选地,所述端口查找单元,还用于识别出所述目的MAC地址对应的端口与所述接入端口为同一端口;
所述发送单元,还用于根据预先设定的控制访问列表ACL,当所述ACL允许或禁止虚拟机系统之间的互访流量时,执行或不执行所述向所述同一端口回送所述数据帧的操作。
优选地,所述交换机还包括:
流量控制单元,用于对于通过端口向虚拟机系统发送的数据帧,基于所述数据帧的目的MAC地址配置流量参数,进行流量控制;或者对于通过端口接收虚拟机系统发送的数据帧,基于所述数据帧的源MAC地址配置流量参数,进行流量控制。
本发明实施例提供的一种虚拟机系统互联的系统,所述系统包括:
根据权利要求10-15任意一项所述的接入交换机,以及服务器;
所述服务器上承载有虚拟机系统,所述服务器包括:
交换端口转发单元,用于接收到虚拟机系统发送的数据帧,通过接入交换机上的接入端口,将所述数据帧发送至所述接入交换机;
虚拟端口转发单元,用于响应于接收到所述接入交换机发送的数据帧,根据接收到的数据帧的目的MAC地址和虚拟端口的对应关系,将所述数据帧向对应的虚拟端口进行发送。
优选地,所述服务器的虚拟端口转发单元,具体用于:
若根据目的MAC地址,识别出接收到的数据帧为单播帧,响应于存在与所述目的MAC地址相对应的虚拟端口,将所述数据帧向所述虚拟端口进行发送;
若根据目的MAC地址,识别出接收到的数据帧为广播帧,响应于不存在与所述广播帧的源MAC地址相对应的虚拟端口,向所述广播帧携带的虚拟局域网标识VLAN ID关联的所有虚拟端口发送所述广播帧;响应于存在与所述广播帧的源MAC地址相对应的虚拟端口,向所述VLAN ID关联的除所述源MAC地址对应的虚拟端口之外的所有虚拟端口发送所述广播帧;
若根据目的MAC地址,所述服务器识别出接收到的数据帧为组播帧,响应于存在与所述组播帧的目的组播MAC地址相对应的虚拟端口,并且不存在与所述组播帧的源MAC地址相对应的虚拟端口,向所述组播帧携带的VLAN ID关联的所有虚拟端口发送所述组播帧;响应于存在与所述目的组播MAC地址相对应的虚拟端口,并且存在与所述组播帧的源MAC地址相对应的虚拟端口,向所述VLAN ID以及所述目的组播MAC地址关联的除所述组播帧的源MAC地址对应的虚拟端口外的所有虚拟端口发送所述组播帧。
基于本发明上述实施例提供的虚拟机系统互联的方法、系统和接入交换机,承载虚拟机系统的服务器将接收到的虚拟机系统发送的数据帧,通过服务器的物理网卡发送至接入交换机,由接入交换机对数据帧进行识别和转发。将来自虚拟机系统的所有流量都转发到邻近的接入交换机,不需要通过内置的虚拟交换机实现虚拟机系统之间通信数据的转发,从而将由虚拟交换机实现的通信数据转发功能移交给接入交换机来实现,回归了交换机的职能,不仅提供虚拟机系统间数据流量的硬件级数据交换性能,而且减少对服务器性能的影响。同时,由于虚拟机系统之间的流量都会经过接入交换机的端口,因此,能够方便地通过对接入交换机端口实现对虚拟机系统的流量监视以及实现基于端口的流量策略控制。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
构成说明书的一部分的附图描述了本发明的实施例,并且连同说明书一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1示出现有技术中多个虚拟机系统之间进行数据通信的结构示意图;
图2示出本发明所提供的虚拟机系统互联的方法一种实施例的流程示意图;
图3示出本发明所提供的接入交换机对数据帧转发处理方法一种实施例的流程示意图;
图4示出本发明所提供的接入交换机对数据帧转发处理方法一种实施例的流程示意图;
图5示出本发明所提供的接入交换机对数据帧转发处理方法一种实施例的流程示意图;
图6示出本发明所提供的接入交换机一种实施例的结构示意图;
图7示出本发明所提供的虚拟机系统互连的系统一种实施例的结构示意图;
图8示出本发明所提供的虚拟机系统互连的系统一种实施例的服务器的结构示意图;
图9示出本发明所提供的虚拟机系统互联的方法又一种实施例的流程示意图;
图10示出本发明所提供的虚拟机系统互联的方法又一种实施例的流程示意图;
图11示出本发明所提供的虚拟机系统互联的方法又一种实施例的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
虚拟机系统互联的方法
参见图2所示,图2示出本发明所提供的虚拟机系统互联的方法一种实施例的流程示意图。该实施例提供的虚拟机系统互联的方法包括以下操作:
201,承载虚拟机系统的服务器响应于接收到虚拟机系统发送的数据帧,使用服务器的物理网卡,通过接入交换机上的接入端口,将数据帧发送至接入交换机;
202,接入交换机识别数据帧的目的MAC地址;
203,响应于识别出目的MAC地址对应的端口与接入端口为同一端口,接入交换机向同一端口回送数据帧,
204,服务器通过同一端口接收数据帧,根据目的MAC地址和虚拟端口的对应关系,将数据帧向对应的虚拟端口进行发送,以由虚拟端口对应的虚拟机系统接收数据帧。
本发明上述实施例提供的虚拟机系统互联的方法中,将接收到的虚拟机系统发送的数据帧通过服务器的物理网卡,将数据帧发送至接入交换机,由接入交换机对数据帧进行识别和转发。将来自虚拟机系统的所有流量都转发到邻近的接入交换机,不需要通过内置的虚拟交换机实现虚拟机系统之间通信数据的转发,从而将由虚拟交换机实现的通信数据转发功能移交给接入交换机来实现,不仅由接入交换机提供硬件级数据交换性能,而且减少对服务器性能的影响。同时,由于虚拟机系统之间的流量都会经过接入交换机的端口,因此,能够方便地通过对接入交换机端口实现对虚拟机系统的流量监视以及实现基于端口的流量策略控制。另外,针对计算机服务器管理和针对数据通信的网络管理之间的界限更清晰,降低了管理的复杂性。
继续参见图2所示,根据本发明方法实施例的一个具体示例,图2所示实施例的方法还可以包括:
205响应于识别出目的MAC地址对应的端口与接入端口为不同端口,接入交换机根据MAC地址与端口的对应关系,向目标MAC地址对应的端口转发数据帧。
其中,204操作中,服务器根据目的MAC地址和虚拟端口的对应关系,将数据帧向对应的虚拟端口进行发送,具体包括:
若根据目的MAC地址,服务器识别出接收到的数据帧为单播帧,响应于存在与目的MAC地址相对应的虚拟端口,将数据帧向虚拟端口进行发送;
若根据目的MAC地址,服务器识别出接收到的数据帧为广播帧,响应于不存在与广播帧的源MAC地址相对应的虚拟端口,向广播帧携带的虚拟局域网标识VLAN ID关联的所有虚拟端口发送广播帧;响应于存在与广播帧的源MAC地址相对应的虚拟端口,向VLAN ID关联的除源MAC地址对应的虚拟端口之外的所有虚拟端口发送广播帧;
若根据目的MAC地址,服务器识别出接收到的数据帧为组播帧,响应于存在与组播帧的目的组播MAC地址相对应的虚拟端口,并且不存在与组播帧的源MAC地址相对应的虚拟端口,向组播帧携带的VLANID关联的所有虚拟端口发送组播帧;响应于存在与目的组播MAC地址相对应的虚拟端口,并且存在与组播帧的源MAC地址相对应的虚拟端口,向VLAN ID以及目的组播MAC地址关联的除组播帧的源MAC地址对应的虚拟端口外的所有虚拟端口发送组播帧。
接入交换机对数据帧转发处理方法
参见图3所示,图3示出本发明所提供的接入交换机对数据帧转发处理方法一种实施例的流程示意图。该实施例提供的接入交换机数据帧转发处理方法包括以下操作:
301,通过接入端口接收承载虚拟机系统的服务器发送的来自于虚拟机系统的数据帧;具体地,接入端口根据学习到的MAC地址数目来判断该接入端口连接的是承载虚拟机系统的虚拟机系统服务器,还是非虚拟机系统服务器,例如,若学习到的MAC地址数目大于1,则为虚拟机系统服务器,若学习到的MAC地址数目等于1,则为非虚拟机系统服务器;
302,识别数据帧的目的MAC地址;
303,根据目的MAC地址,获得与目的MAC地址所对应的端口;
304,响应于对应的端口与接入端口为同一端口,向同一端口回送数据帧,以使得服务器根据目的MAC地址和虚拟端口的对应关系,将数据帧向对应的虚拟端口进行发送。
根据本发明提供的交换机数据帧转发处理方法实施例的一个具体示例,该实施例的方法还可以包括:
305,响应于对应的端口与接入端口为不同端口,向对应的端口转发数据帧。
参见图4所示,图4示出本发明所提供的接入交换机对数据帧转发处理方法一种实施例的流程示意图。根据该实施例,在图3的302识别数据帧的目的MAC地址的操作中,识别结果包括:数据帧为广播帧或组播帧。该方法实施例具体包括:
401,通过接入端口接收承载虚拟机系统的服务器发送的来自于虚拟机系统的数据帧;
402,识别数据帧的目的MAC地址;
403,根据数据帧的目的MAC地址,识别出数据帧为广播帧或组播帧;
404,将广播帧或组播帧向所有端口进行发送。
根据本发明提供的交换机数据帧转发处理方法实施例的一个具体示例,该方法还包括:响应于通过接入端口接收到来自于服务器发送的非虚拟机系统的广播帧或组播帧;将广播帧或组播帧向除接入端口之外的所有端口进行发送。
参见图5所示,图5示出本发明所提供的接入交换机对数据帧转发处理方法一种实施例的流程示意图。根据本发明提供的接入交换机数据帧转发处理方法实施例的一个具体示例,响应于识别出目的MAC地址对应的端口与接入端口为同一端口,该方法还可以包括:
501,根据预先设定的控制访问列表ACL,当ACL允许或禁止虚拟机系统之间的互访流量时,执行或不执行向同一端口回送数据帧的操作。
根据本发明提供的接入交换机数据帧转发处理方法实施例的一个具体示例,该方法还可以包括:
对于通过端口向虚拟机系统发送的数据帧,基于数据帧的目的MAC地址配置流量参数,进行流量控制;或者对于通过端口接收虚拟机系统发送的数据帧,基于数据帧的源MAC地址配置流量参数,进行流量控制。
接入交换机
参见图6所示,图6示出本发明所提供的接入交换机一种实施例的结构示意图。该实施例提供的接入交换机包括:
接收单元601,用于通过接入端口接收承载虚拟机系统的服务器发送的来自于虚拟机系统的数据帧;
识别单元602,用于识别数据帧的目的MAC地址;
端口查找单元603,用于根据目的MAC地址,获得与目的MAC地址所对应的端口;
发送单元604,用于响应于对应的端口与接入端口为同一端口,向同一端口回送数据帧,以使得服务器根据目的MAC地址和虚拟端口的对应关系,将数据帧向对应的虚拟端口进行发送。
根据本发明提供的接入交换机实施例的一个具体示例,发送单元604还用于响应于对应的端口与接入端口为不同端口,向对应的端口转发数据帧。
根据本发明提供的接入交换机实施例的一个具体示例,端口查找单元603,还用于根据数据帧的目的MAC地址,识别出数据帧为广播帧或组播帧;发送单元604,将广播帧或组播帧向所有端口进行发送。
根据本发明提供的接入交换机实施例的一个具体示例,发送单元604,还用于响应于接收单元通过接入端口接收到来自于服务器发送的非虚拟机系统的广播帧或组播帧,将广播帧或组播帧向除接入端口之外的所有端口进行发送。可以通过识别数据帧中包含的虚拟机系统标识识别是否为非虚拟机系统发送的广播帧或组播帧。
根据本发明提供的接入交换机实施例的一个具体示例,端口查找单元603,还用于识别出目的MAC地址对应的端口与接入端口为同一端口;发送单元604,还用于根据预先设定的控制访问列表ACL,当ACL允许或禁止虚拟机系统之间的互访流量时,执行或不执行向同一端口回送数据帧的操作。
根据本发明提供的接入交换机实施例的一个具体示例,交换机还包括:
流量控制单元605,用于对于通过端口向虚拟机系统发送的数据帧,基于数据帧的目的MAC地址配置流量参数,进行流量控制;或者对于通过端口接收虚拟机系统发送的数据帧,基于数据帧的源MAC地址配置流量参数,进行流量控制。
虚拟机系统互联的系统
参见图7所示,图7示出本发明所提供的虚拟机系统互连的系统一种实施例的结构示意图。该实施例提供的虚拟机系统互联的系统,包括上述接入交换机实施例中所提供的任意一种接入交换机701,以及一个或者多个服务器702。服务器702上承载有虚拟机系统。
参见图8所示,服务器702具体包括:
交换端口转发单元801用于接收到虚拟机系统发送的数据帧,通过接入交换机上的接入端口,将数据帧发送至接入交换机;
虚拟端口转发单元802用于响应于接收到接入交换机发送的数据帧,根据接收到的数据帧的目的MAC地址和虚拟端口的对应关系,将数据帧向对应的虚拟端口进行发送。
根据本发明提供的服务器实施例的一个具体示例,虚拟端口转发单元802,具体用于:
若根据目的MAC地址,识别出接收到的数据帧为单播帧,响应于存在与目的MAC地址相对应的虚拟端口,将数据帧向虚拟端口进行发送;
若根据目的MAC地址,识别出接收到的数据帧为广播帧,响应于不存在与广播帧的源MAC地址相对应的虚拟端口,向广播帧携带的虚拟局域网标识VLAN ID关联的所有虚拟端口发送广播帧;响应于存在与广播帧的源MAC地址相对应的虚拟端口,向VLAN ID关联的除源MAC地址对应的虚拟端口之外的所有虚拟端口发送广播帧;
若根据目的MAC地址,识别出接收到的数据帧为组播帧,响应于存在与组播帧的目的组播MAC地址相对应的虚拟端口,并且不存在与组播帧的源MAC地址相对应的虚拟端口,向组播帧携带的VLAN ID关联的所有虚拟端口发送组播帧;响应于存在与目的组播MAC地址相对应的虚拟端口,并且存在与组播帧的源MAC地址相对应的虚拟端口,向VLAN ID以及目的组播MAC地址关联的除组播帧的源MAC地址对应的虚拟端口外的所有虚拟端口发送组播帧。
为更好地说明本发明所提供的方案,以下示例性地展示根据上述本发明所提供方案的具体实现方式。
可实现虚拟化的服务器承载多个虚拟机系统,并为每个运行的虚拟机系统配置虚拟MAC地址、VLAN ID及虚拟端口,获得如表1所示的对应关系,可以将该对应关系生成虚拟端口地址表。每个虚拟机系统接收和发送数据流经由指定的虚拟端口。表1示出6个虚拟机系统对应于6个虚拟MAC地址及所对应的虚拟端口,其中,虚拟MAC地址A、C、E配置的VLAN ID为1,虚拟MAC地址B、D、F配置的VLAN ID为2,VLAN1与VLAN2分别属于2个不同的广播域,图中还给出了某个组播地址所对应的VLAN ID及虚拟端口。
MAC地址 | VLAN ID | 虚拟端口 |
A | 1 | 1 |
B | 2 | 2 |
C | 1 | 3 |
D | 2 | 4 |
E | 1 | 5 |
F | 2 | 6 |
广播1 | 1 | 1、3、5 |
广播2 | 2 | 2、4、6 |
组播地址 | 1 | 1、3 |
表1
虚拟机系统发送的数据帧统一汇集后经由服务器的物理网卡转发到接入交换机,所有来自服务器的数据帧都经过物理网卡发送到外部网络。同时,服务器对于经由服务器的物理网卡接收的数据帧,根据服务器配置的虚拟端口地址表转送到相对应的虚拟端口。
根据传统交换机的数据帧转发规则:交换机在某个端口接收到数据帧后,不管接收的数据帧是单播帧、广播帧还是组播帧,都不允许再向该接收端口回送。
在本发明中,由于接入交换机和服务器通过一条物理链路连接,同一服务器中的虚拟机系统之间的互访流量需要通过接入交换机的同一端口回送到服务器。因此,在本发明中,接入交换机连接服务器的端口需要支持反射回送模式,即允许来自于一个端口的数据再通过该端口发送回。对连接该服务器的接入交换机端口可以通过手工配置反射回送模式,也可根据前面所描述的接入端口学习的MAC地址数目来自动适配,即当通过MAC地址数目识别该接入端口连接的是承载虚拟机系统的虚拟机系统服务器,则自动适配为反射回送模式,否则,配置为不支持反射回送模式,从而改变传统交换机的数据转发规则。当该模式打开时,接收端口也可以成为潜在的发送端口。除此以外,接入交换机还遵循IEEE802.1D标准的网桥功能实现MAC地址学习和数据帧的转发。
参见图9所示,在服务器上运行了2个虚拟机系统A、B,该服务器通过一个物理网卡连接到接入交换机的端口1,端口1被配置为上述反射回送模式。接入交换机的端口2连接到另一个主机C,该主机没有运行虚拟机系统。接入交换机执行标准以太网交换机的学习功能,在端口1学习到虚拟机系统A和B的MAC地址,在端口2学习到主机C的MAC地址,生成如图9中所示的MAC地址与端口的关联关系,可以将该对应关系存储为MAC地址表。
接入交换机从端口1接收来自虚拟机系统A的数据帧,如以太网帧,根据数据帧的目的MAC地址进行转发的流程如下:
(1)当虚拟机系统A与主机C通信时,接入交换机查找MAC地址表,发现目的MAC地址C关联端口2,虚拟机系统A发送的数据帧向接入交换机的端口2转发;
(2)当虚拟机系统A与虚拟机系统B通信时,接入交换机查找MAC地址表,发现目的MAC地址B也关联到端口1,由于接入交换机在端口1打开反射回送模式,虚拟机系统A发送的数据帧向接入交换机的端口1回送。服务器接收到该回送的数据帧,解析出数据帧的目的MAC地址B,根据服务器预先配置的虚拟端口地址表转送到虚拟端口2;
(3)当接入交换机接收到虚拟机系统A发送广播帧或组播帧时,由于接入交换机在端口1打开反射回送模式,广播帧或组播帧将向包括端口1在内的所有接入交换机端口泛洪,服务器接收到该广播帧或组播帧,由于该广播帧或组播帧源自虚拟机系统A,服务器须对配置的虚拟机连接的虚拟端口地址表进行过滤,只向除与虚拟机系统A相连的虚拟端口1之外的其他属于同一VLAN的虚拟端口转送广播帧或组播帧。
参见图10所示,根据本发明前述实施例可以实现基于虚拟机系统的策略控制。根据应用需求在接入交换机配置访问控制列表(ACL),允许或禁止虚拟机系统之间的互访流量;或对进出虚拟机系统的数据流配置承诺信息速率(CIR)、峰值信息速率(PIR)、承诺突发大小(CBS)等流量参数。
在图10中,若需禁止虚拟机系统A和B进行通信,可在接入交换机配置ACL,当接入交换机从端口1接收到目的MAC地址B的数据帧,根据配置的ACL拒绝向端口1回送虚拟机系统A发送到虚拟机系统B系统的数据帧。
在图10中,若需对虚拟机系统A的进出流量进行控制,可在接入交换机配置流量控制参数。对于流入虚拟机系统A的数据帧,可基于数据帧的目的MAC地址A配置CIR、PIR、CBS等流量参数,对于流出虚拟机系统A的以太网流量,可基于数据帧的源MAC地址A配置CIR、PIR、CBS等流量参数。
本发明所提供的方案还可以方便地实现虚拟机系统迁移。参见图11所示,接入交换机的端口1连接服务器1,端口2连接主机C,端口3连接服务器2,由于服务器1和服务器2运行了多个虚拟机,需要在接入交换机的端口1和3配置反射回送模式。虚拟机迁移前的接入交换机的MAC地址表中,虚拟机系统A的MAC地址与端口1建立关联关系。若把服务器1运行的虚拟机系统A迁移到服务器2,当虚拟机系统A在服务器2上运行时,将自动向接入交换机发送ARP报文,该ARP报文包含源MAC地址A,接入交换机进行MAC地址学习后立即刷新MAC地址表,于是虚拟机系统A的MAC地址与端口3建立了关联关系。随后接入交换机将把目的MAC地址A的数据帧转发到端口3。
至此,已经详细描述了根据本发明的一种虚拟机系统互联的方法、系统和接入交换机。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于虚拟机系统互联的系统和接入交换机实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本发明的虚拟机系统互联的方法、系统和接入交换机。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的虚拟机系统互联的方法、系统和接入交换机。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。
Claims (17)
1.一种接入交换机对数据帧转发处理方法,其特征在于,所述方法包括:
通过接入端口接收承载虚拟机系统的服务器发送的来自于虚拟机系统的数据帧;
识别所述数据帧的目的MAC地址;
根据所述目的MAC地址,获得与所述目的MAC地址所对应的端口;
响应于所述对应的端口与所述接入端口为同一端口,向所述同一端口回送所述数据帧,以使得所述服务器根据所述目的MAC地址和虚拟端口的对应关系,将所述数据帧向对应的虚拟端口进行发送。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述对应的端口与所述接入端口为不同端口,向所述对应的端口转发所述数据帧。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述数据帧的目的MAC地址,识别出所述数据帧为广播帧或组播帧;
将所述广播帧或组播帧向所有端口进行发送。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于通过接入端口接收到来自于服务器发送的非虚拟机系统的广播帧或组播帧;
将所述广播帧或组播帧向除所述接入端口之外的所有端口进行发送。
5.根据权利要求1所述的方法,其特征在于,响应于识别出所述目的MAC地址对应的端口与所述接入端口为同一端口,所述方法还包括:
根据预先设定的控制访问列表ACL,当所述ACL允许或禁止虚拟机系统之间的互访流量时,相应地执行或不执行所述向所述同一端口回送所述数据帧的操作。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于通过端口向虚拟机系统发送的数据帧,基于所述数据帧的目的MAC地址配置流量参数,进行流量控制;或者
对于通过端口接收虚拟机系统发送的数据帧,基于所述数据帧的源MAC地址配置流量参数,进行流量控制。
7.一种虚拟机系统互联的方法,其特征在于,所述方法包括:
承载虚拟机系统的服务器响应于接收到虚拟机系统发送的数据帧,使用所述服务器的物理网卡,通过接入交换机上的接入端口,将所述数据帧发送至所述接入交换机;
所述接入交换机识别所述数据帧的目的MAC地址;
响应于识别出所述目的MAC地址对应的端口与所述接入端口为同一端口,所述接入交换机向所述同一端口回送所述数据帧,
所述服务器通过所述同一端口接收所述数据帧;
所述服务器根据所述目的MAC地址和虚拟端口的对应关系,将所述数据帧向对应的虚拟端口进行发送,以由所述虚拟端口对应的虚拟机系统接收所述数据帧。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
响应于识别出所述目的MAC地址对应的端口与所述接入端口为不同端口,所述接入交换机根据MAC地址与端口的对应关系,向所述目标MAC地址对应的端口转发所述数据帧。
9.根据权利要求7所述的方法,其特征在于,所述服务器根据所述目的MAC地址和虚拟端口的对应关系,将所述数据帧向对应的虚拟端口进行发送,具体包括:
若根据目的MAC地址,所述服务器识别出接收到的数据帧为单播帧,响应于存在与所述目的MAC地址相对应的虚拟端口,将所述数据帧向所述虚拟端口进行发送;
若根据目的MAC地址,所述服务器识别出接收到的数据帧为广播帧,响应于不存在与所述广播帧的源MAC地址相对应的虚拟端口,向所述广播帧携带的虚拟局域网标识VLAN ID关联的所有虚拟端口发送所述广播帧;响应于存在与所述广播帧的源MAC地址相对应的虚拟端口,向所述VLAN ID关联的除所述源MAC地址对应的虚拟端口之外的所有虚拟端口发送所述广播帧;
若根据目的MAC地址,所述服务器识别出接收到的数据帧为组播帧,响应于存在与所述组播帧的目的组播MAC地址相对应的虚拟端口,并且不存在与所述组播帧的源MAC地址相对应的虚拟端口,向所述组播帧携带的VLAN ID关联的所有虚拟端口发送所述组播帧;响应于存在与所述目的组播MAC地址相对应的虚拟端口,并且存在与所述组播帧的源MAC地址相对应的虚拟端口,向所述VLAN ID以及所述目的组播MAC地址关联的除所述组播帧的源MAC地址对应的虚拟端口外的所有虚拟端口发送所述组播帧。
10.一种接入交换机,其特征在于,所述交换机包括:
接收单元,用于通过接入端口接收承载虚拟机系统的服务器发送的来自于虚拟机系统的数据帧;
识别单元,用于识别所述数据帧的目的MAC地址;
端口查找单元,用于根据所述目的MAC地址,获得与所述目的MAC地址所对应的端口;
发送单元;响应于所述对应的端口与所述接入端口为同一端口,向所述同一端口回送所述数据帧,以使得所述服务器根据所述目的MAC地址和虚拟端口的对应关系,将所述数据帧向对应的虚拟端口进行发送。
11.根据权利要求10所述的接入交换机,其特征在于,所述发送单元,还用于响应于所述对应的端口与所述接入端口为不同端口,向所述对应的端口转发所述数据帧。
12.根据权利要求10所述的接入交换机,其特征在于,所述端口查找单元,还用于根据所述数据帧的目的MAC地址,识别出所述数据帧为广播帧或组播帧;
所述发送单元,将所述广播帧或组播帧向所有端口进行发送。
13.根据权利要求10所述的接入交换机,其特征在于,所述发送单元,还用于响应于接收单元通过接入端口接收到来自于服务器发送的非虚拟机系统的广播帧或组播帧,将所述广播帧或组播帧向除所述接入端口之外的所有端口进行发送。
14.根据权利要求10所述的接入交换机,其特征在于,所述端口查找单元,还用于识别出所述目的MAC地址对应的端口与所述接入端口为同一端口;
所述发送单元,还用于根据预先设定的控制访问列表ACL,当所述ACL允许或禁止虚拟机系统之间的互访流量时,执行或不执行所述向所述同一端口回送所述数据帧的操作。
15.根据权利要求10所述的接入交换机,其特征在于,所述交换机还包括:
流量控制单元,用于对于通过端口向虚拟机系统发送的数据帧,基于所述数据帧的目的MAC地址配置流量参数,进行流量控制;或者对于通过端口接收虚拟机系统发送的数据帧,基于所述数据帧的源MAC地址配置流量参数,进行流量控制。
16.一种虚拟机系统互联的系统,其特征在于,所述系统包括:
根据权利要求10-15任意一项所述的接入交换机,以及服务器;
所述服务器上承载有虚拟机系统,所述服务器包括:
交换端口转发单元,用于接收到虚拟机系统发送的数据帧,通过接入交换机上的接入端口,将所述数据帧发送至所述接入交换机;
虚拟端口转发单元,用于响应于接收到所述接入交换机发送的数据帧,根据接收到的数据帧的目的MAC地址和虚拟端口的对应关系,将所述数据帧向对应的虚拟端口进行发送。
17.根据权利要求16所述的系统,其特征在于,所述服务器的虚拟端口转发单元,具体用于:
若根据目的MAC地址,识别出接收到的数据帧为单播帧,响应于存在与所述目的MAC地址相对应的虚拟端口,将所述数据帧向所述虚拟端口进行发送;
若根据目的MAC地址,识别出接收到的数据帧为广播帧,响应于不存在与所述广播帧的源MAC地址相对应的虚拟端口,向所述广播帧携带的虚拟局域网标识VLAN ID关联的所有虚拟端口发送所述广播帧;响应于存在与所述广播帧的源MAC地址相对应的虚拟端口,向所述VLAN ID关联的除所述源MAC地址对应的虚拟端口之外的所有虚拟端口发送所述广播帧;
若根据目的MAC地址,所述服务器识别出接收到的数据帧为组播帧,响应于存在与所述组播帧的目的组播MAC地址相对应的虚拟端口,并且不存在与所述组播帧的源MAC地址相对应的虚拟端口,向所述组播帧携带的VLAN ID关联的所有虚拟端口发送所述组播帧;响应于存在与所述目的组播MAC地址相对应的虚拟端口,并且存在与所述组播帧的源MAC地址相对应的虚拟端口,向所述VLAN ID以及所述目的组播MAC地址关联的除所述组播帧的源MAC地址对应的虚拟端口外的所有虚拟端口发送所述组播帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310170248.8A CN104144130B (zh) | 2013-05-10 | 2013-05-10 | 虚拟机系统互联的方法、系统和接入交换机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310170248.8A CN104144130B (zh) | 2013-05-10 | 2013-05-10 | 虚拟机系统互联的方法、系统和接入交换机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104144130A true CN104144130A (zh) | 2014-11-12 |
CN104144130B CN104144130B (zh) | 2019-04-12 |
Family
ID=51853198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310170248.8A Active CN104144130B (zh) | 2013-05-10 | 2013-05-10 | 虚拟机系统互联的方法、系统和接入交换机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104144130B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106020985A (zh) * | 2016-05-23 | 2016-10-12 | 北京北信源软件股份有限公司 | 数据处理方法、装置及服务器 |
WO2016184283A1 (zh) * | 2015-05-19 | 2016-11-24 | 腾讯科技(深圳)有限公司 | 一种虚拟机数据流管理方法和系统 |
WO2017000745A1 (zh) * | 2015-06-29 | 2017-01-05 | 中兴通讯股份有限公司 | 流量监控方法、装置及系统 |
CN106817607A (zh) * | 2015-12-02 | 2017-06-09 | 中兴通讯股份有限公司 | 基于虚拟桌面的音视频组播播放方法、装置及系统 |
CN111130863A (zh) * | 2019-12-12 | 2020-05-08 | 北京浪潮数据技术有限公司 | 一种虚拟网卡管理方法、系统、设备及计算机存储介质 |
CN114726715A (zh) * | 2021-01-05 | 2022-07-08 | 中国移动通信有限公司研究院 | 一种数据帧传输方法、虚拟化平台及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004047384A1 (en) * | 2002-11-15 | 2004-06-03 | Infineon Technologies Ag | Processing data packets within a data switch |
CN101809943A (zh) * | 2007-09-24 | 2010-08-18 | 英特尔公司 | 用于虚拟端口通信的方法和系统 |
CN102136931A (zh) * | 2010-09-20 | 2011-07-27 | 华为技术有限公司 | 虚端口网络策略配置方法、一种网络管理中心和相关设备 |
CN102143068A (zh) * | 2011-03-01 | 2011-08-03 | 华为技术有限公司 | 一种mac地址学习的方法,装置和系统 |
CN102316043A (zh) * | 2011-09-29 | 2012-01-11 | 中国联合网络通信集团有限公司 | 端口虚拟化方法、交换机及通信系统 |
-
2013
- 2013-05-10 CN CN201310170248.8A patent/CN104144130B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004047384A1 (en) * | 2002-11-15 | 2004-06-03 | Infineon Technologies Ag | Processing data packets within a data switch |
CN101809943A (zh) * | 2007-09-24 | 2010-08-18 | 英特尔公司 | 用于虚拟端口通信的方法和系统 |
CN102136931A (zh) * | 2010-09-20 | 2011-07-27 | 华为技术有限公司 | 虚端口网络策略配置方法、一种网络管理中心和相关设备 |
CN102143068A (zh) * | 2011-03-01 | 2011-08-03 | 华为技术有限公司 | 一种mac地址学习的方法,装置和系统 |
CN102316043A (zh) * | 2011-09-29 | 2012-01-11 | 中国联合网络通信集团有限公司 | 端口虚拟化方法、交换机及通信系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016184283A1 (zh) * | 2015-05-19 | 2016-11-24 | 腾讯科技(深圳)有限公司 | 一种虚拟机数据流管理方法和系统 |
CN106302322A (zh) * | 2015-05-19 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 一种虚拟机数据流管理方法和系统 |
US10348624B2 (en) | 2015-05-19 | 2019-07-09 | Tencent Technology (Shenzhen) Company Limited | Virtual machine data flow management method and system |
CN106302322B (zh) * | 2015-05-19 | 2020-05-26 | 腾讯科技(深圳)有限公司 | 一种虚拟机数据流管理方法和系统 |
WO2017000745A1 (zh) * | 2015-06-29 | 2017-01-05 | 中兴通讯股份有限公司 | 流量监控方法、装置及系统 |
CN106817607A (zh) * | 2015-12-02 | 2017-06-09 | 中兴通讯股份有限公司 | 基于虚拟桌面的音视频组播播放方法、装置及系统 |
CN106817607B (zh) * | 2015-12-02 | 2020-09-08 | 南京中兴新软件有限责任公司 | 基于虚拟桌面的音视频组播播放方法、装置及系统 |
CN106020985A (zh) * | 2016-05-23 | 2016-10-12 | 北京北信源软件股份有限公司 | 数据处理方法、装置及服务器 |
CN106020985B (zh) * | 2016-05-23 | 2019-08-30 | 北京北信源软件股份有限公司 | 数据处理方法、装置及服务器 |
CN111130863A (zh) * | 2019-12-12 | 2020-05-08 | 北京浪潮数据技术有限公司 | 一种虚拟网卡管理方法、系统、设备及计算机存储介质 |
CN114726715A (zh) * | 2021-01-05 | 2022-07-08 | 中国移动通信有限公司研究院 | 一种数据帧传输方法、虚拟化平台及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104144130B (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10986171B2 (en) | Method for unified communication of server, baseboard management controller, and server | |
CN107113219B (zh) | 支持虚拟环境中的vlan标记的系统和方法 | |
US10171319B2 (en) | Technologies for annotating process and user information for network flows | |
US9294351B2 (en) | Dynamic policy based interface configuration for virtualized environments | |
EP2430802B1 (en) | Port grouping for association with virtual interfaces | |
JP5792894B2 (ja) | ポート拡張トポロジ情報の取得用方法、システム及び制御ブリッジ並びにアップリンクポートの処理方法及びシステム | |
US9311196B2 (en) | Method and apparatus for managing connection path failure between data centers for cloud computing | |
US20170126559A1 (en) | Performing logical network functionality within data compute nodes | |
CN104144130A (zh) | 虚拟机系统互联的方法、系统和接入交换机 | |
CN102299846B (zh) | 一种bfd报文传输方法和设备 | |
EP3544237B1 (en) | Sdn-based remote stream mirroring control method, implementation method, and related device | |
US20200007472A1 (en) | Service insertion in basic virtual network environment | |
US20140098822A1 (en) | Port Mirroring at a Network Interface Device | |
CN103944828A (zh) | 一种协议报文的传输方法和设备 | |
US9590855B2 (en) | Configuration of transparent interconnection of lots of links (TRILL) protocol enabled device ports in edge virtual bridging (EVB) networks | |
US10708198B1 (en) | Methods and apparatus to reduce packet flooding and duplicate packets in a multi-fabric virtual network | |
WO2015127643A1 (en) | Method and communication node for learning mac address in a layer-2 communication network | |
US20160205033A1 (en) | Pool element status information synchronization method, pool register, and pool element | |
US9654421B2 (en) | Providing real-time interrupts over ethernet | |
CN111711536A (zh) | 一种云架构下防火墙测试环境构建方法 | |
CN114615109A (zh) | 容器网络创建方法、装置、电子设备及存储介质 | |
CN110391961B (zh) | 一种隧道绑定方法、设备及系统 | |
CN109150724B (zh) | 一种通信方法和网卡 | |
CN107547341B (zh) | 虚拟扩展局域网vxlan的接入方法及装置 | |
US20150334115A1 (en) | Dynamic provisioning of virtual systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |