Hyper-V中的虚拟网络交换机运行在第二层,另外还维护一个MAC表,该表中包含它所连接的所有的虚拟机的MAC地址。如果你是一名虚拟化管理员,你或许也会对Hyper-V虚拟网络交换机的功能感到困惑。
Hyper-V虚拟交换机可以连接到无限的虚拟机。虚拟交换机有两种操作模式:树干模式或访问模式。有三种类型的虚拟交换机可以创建在Hyper-V中:外部、私人和内部虚拟网络交换机。
外部的虚拟网络交换机允许虚拟机之间的通信运行在相同的Hyper-V服务器、Hyper-V父分区和运行在远程Hyper-V服务器上的虚拟机。Hyper-V主机上的物理网络适配器不能映射到任何其他外部虚拟网络交换机。因此,只要你有物理网络适配器没有映射到任何其他外部虚拟交换机,你就可以创建外部虚拟交换机。
内部虚拟网络交换机允许连接同一个交换机的虚拟机之间进行通信,也允许通信到Hyper-V父分区。你可以创建任意数量的内部虚拟交换机。
私人虚拟网络交换机允许连接到同一个虚拟交换机上的虚拟机之间进行通信。连接到这种类型的虚拟交换机的虚拟机不能与Hyper-V父分区通信。你可以创建任意数量的私人虚拟交换机。
如上所述,Hyper-V虚拟网络交换机可以配置成访问模式或树干模式,物理交换机通常也是这样。这两种模式都和VLAN ID标签系统相关。
只有外部和内部虚拟交换机可以配置成树干模式和访问方式。你可以为这些交换机分配VLAN ID,但是私人网络虚拟交换机的VLAN ID分配选项是不可用的。
树干模式下,虚拟交换机将监听所有的网络流量并将流量送到所有的端口。换句话说,网络数据包被发送到所有连接该虚拟交换机的虚拟机。默认情况下,Hyper-V中的虚拟交换机配置成树干模式,意思是虚拟交换机接收到所有网络数据包,并将它们转发给所有连接到它的虚拟机。树干模式下的虚拟交换机没有太多配置需求。
访问模式下,虚拟交换机接收网络数据包,首先检查网络数据包中的VLAN ID标记。如果网络数据包中的VLAN ID标记与虚拟交换机上的配置匹配,那么虚拟交换机接收该网络数据包。任何传入的网络数据包如果没有相同的VLAN ID,将被虚拟交换机丢弃。
访问模式下配置虚拟交换机
在访问模式配置虚拟交换机,首先打开虚拟交换机管理器。接下来,选择你想要配置的虚拟交换机,点击“启用VLAN鉴定管理操作系统”复选框。
最后,在文本框中指定VLAN ID,如下图中的红色圆圈所示。这个配置将迫使虚拟交换机接收都标有VLAN ID的网络数据包,这些VLAN ID也配置在虚拟交换机上。
为了更好的说明这些,让我们举个例子,假设有三个虚拟机运行在Hyper-V服务器上:VM1,VM2和VM3。VM1和VM2均配置了VLAN ID 4,VM3配置了VLAN ID 5。
这些虚拟机连接到一个称为“vSwitch1”的外部虚拟交换机,反过来,这个外部虚拟交换机配置了VLAN ID 4(访问模式下配置),见下图。
正如你所看到的,虚拟交换机(vSwitch1)是一个在访问模式下配置的外部虚拟网络交换机,。因为它是在访问模式下配置的,只能接收有VLAN ID 4标志的网络数据包。
Hyper-V网络虚拟交换机常见问答
这里有几个问题和相应的答案,可以帮助你增加理解:
Q1:VM1和VM2可以相互通信吗?
A1:是的,可以。只要它们使用相同的VLAN ID,并且Hyper-V虚拟交换机也配置了相同的VLAN ID(访问模式或者树干模式)。
Q2:VM3可以和VM1或VM2通信吗?
A2:不能。VM3配置的是VLAN ID5,但是虚拟交换机(vSwitch1)只能接收VLAN ID4的网络数据包。因此,为了让所有的虚拟机(VM1,VM2和VM3)之间进行通信,vSwitch1必须配制成树干模式。换句话说,你不能选择“启用VLAN鉴定管理操作系统”。
Q3:我们怎样才能限制VM1和VM3之间的通信,同时允许VM2与外部局域网中的服务器进行通信?
A3:限制VM1和VM3之间的通信,必须将VM1和VM3配制成相同的VLAN ID,然后vSwitch1配置成树干模式。这样就可以让vSwitch1接收其连接的所有虚拟机上的网络数据包。