Powershell

當虛擬交換機埠處於中繼模式時,Hyper-V 來賓失去網路訪問權限

  • June 24, 2015

我在執行 Hyper-V 的 Windows Server 2012 R2 機器上有來賓 VM。目前,來賓正在使用本機 vlan(vlan ID 1)。我可以從主機和網路與來賓通信。但是,來賓是 Zebra/Motorola VX9000 wlan 控制器,它還需要處理 vlan ID 10 和 15 上的流量。主機使用的交換機埠在 vlan 1 上沒有標記,我更新了埠以在 vlan 上也有標記10 和 15. 我還通過 powershell 發出以下命令:

Set-VMNetworkAdapterVlan -VMName MyGuest -Trunk -AllowedVlanIdList "10,15" -NativeVlanId 1

不幸的是,執行此命令後,我失去了與客人交流的能力。如果我為來賓打開 Hyper-V 控制台,它沒有任何網路訪問權限。嘗試從主機或網路上的其他位置 ping 訪客會導致一條Destination host unreachable消息。

我可以通過將適配器返回到未標記模式來“修復”它:

Set-VMNetworkAdapterVlan -VMName MyGuest -Untagged

現在我可以再次與客人交流,但這並不能真正解決任何問題。我仍然需要這個客人能夠處理 vlan 10 和 15 上的流量。

我不明白為什麼會這樣。在切換到中繼模式之前,未標記的數據包是 vlan ID 1。現在不應該還是這樣嗎?我怎樣才能讓這個客人在我需要的所有 vlan 上進行通信?

我從 ping 時看到的錯誤消息中得到的最好的結果與沒有路由時看到的類似。在將埠設置為中繼(可能在主機上)後,是否需要發出單獨的命令來為這些網路創建路由?

我找到了解決辦法!

alejanp 在此連結上的文章讓我嘗試使用 vlan 0,以下命令似乎正在工作:

Set-VMNetworkAdapterVlan -VMName MyGuest -Trunk -AllowedVlanList "1,10,15" -NativeVlanId 0

簡而言之,我將本地 vlan 設置為 0,並將我真正的本地 vlan 包含在允許列表中。

當然,這只能在訪客所需的未標記 vlan 與主機/交換機埠的未標記 vlan 匹配時才有效。值得慶幸的是,今天就是這種情況。

我只有幾個以這種方式設置的虛擬機,它們也沒有在本機 VLAN 上交談。我們為解決這個問題所做的是將本地 VLAN 設置為網路上未使用的 VLAN,將您要使用的 VLAN 放入允許的範圍內,然後切換 VM 內的所有 NIC 以標記它們的流量。

引用自:https://serverfault.com/questions/700383