带有中继和访问模式交换机的 Hyper V 2012 R2 私有虚拟交换机

带有中继和访问模式交换机的 Hyper V 2012 R2 私有虚拟交换机

是否可以使用 Hyper-V 2012R2 构建 Hyper-V 内部的虚拟交换机(不需要或不期望外部连接),其中一个交换机参与者(下图中的 VM 0)具有中继接口,其余虚拟机(下图中的 VM 1 ... VM n)每个都有使用特定 VLAN ID 标记的虚拟交换机的访问端口。

   _______________________________________________________
  |                   Hyper-V host                        |
  |                                                       |
  |   _____            _____      ______       ______     |
  |  | VM0 |          | VM1 |    | VM 2 | ... | VM n |    |
  |  |     |          |     |    |      |     |      |    |
  |  |_____|          |_____|    |______|     |______|    |
  |    |:| eth0          | eth0     | eth0       | eth0   |
  |    |:| trunk         | vlan 1   | vlan 2     | vlan 3 |
  |    |:|               |          |            |        |
  |   =================================================   |
  |               Virtual Switch                          |
  |_______________________________________________________|

例如,离开eth0VM2 接口的未标记数据包在传递到虚拟交换机时将被标记 VLAN 标记 2。然后,它们将通过中继端口传出到 VM0,在那里它们将通过eth0该 VM 到达 VM,并且(如果这是 Linux VM)在 上是可读的eth0.2,即 VLAN 标记对 VM0 是显而易见的。同样,带有 VLAN 标记 2 的 VM0 的出站流量eth0将带着该标记进入虚拟交换机,并且在将其发送到 VM2 之前将删除该标记,在那里它将以eth0未标记的形式出现在 VM 的接口上。

如果是这样,那么如何实现这种标记?我不是 Hyper-V 专家,我能找到的唯一文档谈到整个交换机处于中继模式或访问模式。显然,交换机需要携带 VLAN 标记,但我需要将不同的端口置于中继或访问模式。如果没有外部接口,这是否可行?我也既不想也不需要连接到 Hyper-V 父分区。

常问问题:

  • 我意识到在上述配置中每个 VLAN 可以有一个虚拟交换机,但我不想这样做,因为 VM0 必须具有大量网络接口,而这将使用许多虚拟交换机。

  • 此配置在 VMware 和 Linux 上运行良好,并不像您想象的那么奇怪。

  • 线条画得很糟糕,抱歉。

  • 如果有必要的话,我准备通过编程而不是通过 GUI 来执行此操作。

答案1

您可以创建到 VM 的中继链接。

https://technet.microsoft.com/en-us/library/hh848475.aspx

通常你的命令将是这样的:

Set-VMNetworkAdapterVlan -VMname $VMName -VMNetworkAdapterName $VMNetworkAdapterName -Trunk -AllowedVlanIdList "vlan number" -NativeVlanId "vlan ID"

据我了解,您需要让所有虚拟机都具有中继 NIC。

Hyper-V 中的本机 Vlan 用于标记所有传出流量,因此如果您拥有带有本机 Vlan 50 的 VM0 NIC 中继,并且允许所有其他 Vlan,并且 VM1 NIC 访问 Vlan 1。那么 VM1 -> VM0 成功,但 VM0 -> VM1 失败。(在 -> 下,我的意思是发送数据包,如果它们被传送到目的地,则不必保证反向流成功)

因此,您的 VM0 应该具有一些所有机器通用的 VLAN X 作为本机 VLAN,并且允许 VLAN 列表中所有其他 VM 所需的所有 VLAN。任何其他 VM 都应将其唯一的 VLAN 作为本机 VLAN,并将 VLAN X 置于允许状态。

例如:

VM Name     | Native Vlan | Allowed Vlan
VM1         | 1           | 1,50
VM2         | 2           | 2,50
VMn         | n           | n,50
VM0         | 50          | 1,2,n,50

这里 VM0 -> Any VM = 成功,Any VM -> VM0 = 成功,并且 VMn -> VMm(如果“n”和“m”不为 0)= 失败。

希望它有所帮助,对于任何语法错误深表歉意。

相关内容