與 VLan 和 VSphere 電腦的連線遺失

與 VLan 和 VSphere 電腦的連線遺失

我的 vSphere 設定中的一些虛擬機器面臨著非常奇怪的情況,我不太明白發生了什麼事。

最初,我正在使用一個192.168.9.0/24網絡,其中192.168.9.254DHCP 伺服器、192.168.9.43網關、192.168.9.82我的工作站(它從 DHCP 伺服器接收其 IP)以及192.168.9.15我同事的工作站。
這工作得很好,該網路上的每台機器都可以與其他機器一起工作,它們都能夠透過網關互相 ping 通對方以及世界其他地方。

已安裝一個 VSphere 6.5 集群,包含三台主機,分別具有192.168.9.1192.168.9.2192.168.9.3靜態位址。這些機器運行 ESXi 版本 6.0.0、3380124,每台機器都有四個網路卡連接到一對堆疊的 Dell N1524 交換機,這些交換機已連接到網路192.168.9.0/24。在該叢集上,有一個Production網路與每個主機 NIC 綁定,因此虛擬機器從192.168.9.254DHCP 取得 IP。這也可以正常工作,但是由於虛擬機器使用量的增加,DHCP 伺服器提供的 IP 範圍現在非常擁擠,以至於一些普通用戶如果到達該位址就無法取得 IP 位址。

為了避免這種情況,我在 vSwitch 上為每個主機新增了一個連接埠群組,並為這些連接埠群組指定了相同的名稱 ( VLAN) 和相同的 VLAN 值,即 42
。此VLAN 以及預設值一個位於連接主機 NIC 的連接埠(中繼模式)。我決定將此 VLAN 作為一個10.10.10.0/24網絡,以便可以輕鬆地從常規網絡中識別它,因此為交換器提供了10.10.10.252該 VLAN 上的靜態 IP。

然後,我創建了一台 Windows 2012 虛擬機,它有兩個接口,一個位於Production(192.168.9.110),一個位於VLAN( 10.10.10.254),並激活了 RRAS 角色,以便該計算機現在充當10.10.10.0/24與世界其他地方之間的網關。
我創建了第二台 Windows 2012 虛擬機,它只有一個接口,具有VLAN靜態10.10.10.253地址並將其命名為MDC.我啟動了網域控制器、DHCP 和 DNS 角色。 DHCP 提供範圍內的租約,而 DNS 只是從網路10.10.10.50 - 10.10.10.200轉送到 DNS192.168.9.0/24

然後,我建立了兩台虛擬機,一個位於第一台主機上,與 MDC 和網關一起,另一個位於第三台主機上,兩者都連接到網路VLAN。由於連線似乎運作正常,我決定使用以下 PowerCLI 命令將現有虛擬機器從資料夾Temporary移至VLAN網路:

Get-Folder Temporary | Get-VMs | Get-networkadapater | set-networkadapter -NetworkName VLAN

我還藉此機會確保所有網路適配器都vmxnet3使用此命令

Get-Folder Temporary | Get-VMs | Get-networkadapater | set-networkadapter -Type vmxnet3

由於連接仍然正常,我創建了另一組虛擬機,也連接到網絡VLAN,放置在所有三台主機上,這給出了以下拓撲:

主機1
MDC ( 10.10.10.253)
閘道 ( 10.10.10.254192.168.9.110)
Machine1_H1 ( 10.10.10.64)
Machine2_H1 ( 10.10.10.57)

主機2
機器3_H2 ( 10.10.10.65)

主機3
機器4_H3 ( 10.10.10.50)
機器5_H3 ( 10.10.10.51)

這就是在網路連結方面(無論是內部VLAN還是連接到外部世界時)我得到非常奇怪的結果的地方:

  • MDC 可以 ping 通除交換器以外的所有人 ( 10.10.10.252)
  • 網關可以 ping 通除 Machine5_H3 之外的所有人
  • Machine1_H1 可以 ping 通除 Machine3_H2 之外的所有人
  • Machine2_H1 可以 ping 通除交換器以外的所有人 ( 10.10.10.252)
  • Machine3_H2 可以 ping 通除主機 1 和 Machine1_H1 之外的所有人
  • Machine4_H3 可以 ping 通除192.168.9.43192.168.9.15之外的所有人google.fr(名稱解析正常)
  • Machine5_H3 可以 ping 通除192.168.9.254192.168.9.82(我自己的工作站)和之外的所有人10.10.10.254
  • 我自己的計算機 ( 192.168.9.82) 可以 ping 通除了 Machine5_H3 ( 10.10.10.51)之外的所有人

在進行這些測試之前,我確保所有電腦上的防火牆都已關閉,並且我還在arp -aMDC 上運行以查看是否存在 MAC 位址衝突並且沒有重複。文件夾裡的機器Temporary也全部關閉以防萬一,但這並沒有改變上面的結果。為了安全起見,我使用此程式碼片段強制為這些機器產生新的 MAC 位址:

foreach ($VM in (Get-Folder Temporary | Get-VM))
{
  $NetworkAdapter = $VM | Get-NetworkAdapter
  $NetworkAdapter | Set-NetworkAdapter -MacAddress 00:50:56:1a:ff:ff -Confirm:$false
  $spec = New-Object VMware.Vim.VirtualMachineConfigSpec
  $spec.deviceChange = New-Object VMware.Vim.VirtualDeviceConfigSpec[] (1)
  $spec.deviceChange[0] = New-Object VMware.Vim.VirtualDeviceConfigSpec
  $spec.deviceChange[0].operation = "edit"
  $spec.deviceChange[0].device = $NetworkAdapter.ExtensionData
  $spec.deviceChange[0].device.addressType = "generated"
  $spec.deviceChange[0].device.macAddress = $null
  $VM.ExtensionData.ReconfigVM_Task($spec)
}

但這並沒有改變情況。

然後,我在網關上安裝了 Wireshark,開始監控流量10.10.10.254,我可以看到涉及該電腦的每個流量。例如,如果我的工作站 ( 192.168.9.82) 由 Machine5_H3 ( 10.10.10.51) 執行 ping 操作,我可以看到 PING 請求,然後看到 PING 回复,但 Machine5_H3 抱怨它沒有收到任何回复。如果我反過來做,我可以看到來自的請求,192.168.9.82但網關看不到回覆。

因此,我相信一些資料包被丟棄在某個地方,我的主要懷疑是交換器(10.10.10.252),但我不確定我可以做什麼來證實這個理論。

鏈路聚合最初是在 DELL 交換器堆疊上啟動的,但它在從我們的工作站連接到具有網路 IP 的虛擬機器時出現問題192.168.9.0/24,因此我們將其關閉。
不過,更改交換器堆疊上的此設定並沒有改變上述情況。

我一定做錯了什麼,或者錯過了一些配置細節,但我不知道它是什麼,並且希望有任何建議來幫助解決對我來說是個謎。

答案1

根據 Zac67 的評論,我們驗證了所有三台主機上的 NIC 分組配置,我們發現前兩台主機使用「基於 IP 雜湊的路由」參數,而第三台主機使用「基於原始虛擬連接埠的路由」。

然後,我們將第三個主機設定為與其他主機相同的值,並閱讀與第一個選項相關的警告,其中顯示「應在實體交換器上設定鏈路聚合」。

因此,我們回到交換器並重新啟動適當連接埠的鏈路聚合,但這使整個連接不穩定,192.168.9.0/24網路中的機器部分無法訪問,而網路中的機器沒有任何改變10.10.10.0/24

因此,我們決定採取相反的方式,停用交換器上的連結聚合,並在所有三台主機上使用「基於原始虛擬連接埠的路由」選項。

這允許恢復192.168.9.0/24網路的正常行為和更好的網路連線10.10.10.0/24。我說的更好是因為有些機器仍然無法訪問,即那些Host3甚至無​​法訪問 DHCP 伺服器來檢索 IP 的機器。
使用 Wireshark 觀察流量,我們發現 ARP 廣播有時會被過濾,從而解釋了為什麼有些機器無法相互通信,但仍然沒有給我們任何可能的解決方案的線索。

在被困在這個問題上幾週後,沒有任何希望找到答案後,我們聘請了最初幫助安裝基礎設施的顧問,他們告訴我們兩件事:

  1. LACP 與 VLAN 不相容
  2. VLAN 42 在交換器連接埠之一上被禁止

因此,請確保配置根本不使用 LACP,並消除對連接埠的限制,以實現完全工作狀態。

現在,我們想知道如何在交換器的一個連接埠上禁止 VLAN 42。

至於 LACP 和 VLAN 不相容,我們從來沒有想到這可能是我們問題的根源,但現在他們告訴我們了,這似乎是堆疊 DELL 交換器時的一個眾所周知的問題,但我找不到任何明確的答案就此主題而言。但由於沒有它也能工作,所以對我來說一切都很好。

相關內容