我的 vSphere 設定中的一些虛擬機器面臨著非常奇怪的情況,我不太明白發生了什麼事。
最初,我正在使用一個192.168.9.0/24
網絡,其中192.168.9.254
DHCP 伺服器、192.168.9.43
網關、192.168.9.82
我的工作站(它從 DHCP 伺服器接收其 IP)以及192.168.9.15
我同事的工作站。
這工作得很好,該網路上的每台機器都可以與其他機器一起工作,它們都能夠透過網關互相 ping 通對方以及世界其他地方。
已安裝一個 VSphere 6.5 集群,包含三台主機,分別具有192.168.9.1
、192.168.9.2
和192.168.9.3
靜態位址。這些機器運行 ESXi 版本 6.0.0、3380124,每台機器都有四個網路卡連接到一對堆疊的 Dell N1524 交換機,這些交換機已連接到網路192.168.9.0/24
。在該叢集上,有一個Production
網路與每個主機 NIC 綁定,因此虛擬機器從192.168.9.254
DHCP 取得 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.254
– 192.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.43
、192.168.9.15
之外的所有人google.fr
(名稱解析正常) - Machine5_H3 可以 ping 通除
192.168.9.254
、192.168.9.82
(我自己的工作站)和之外的所有人10.10.10.254
- 我自己的計算機 (
192.168.9.82
) 可以 ping 通除了 Machine5_H3 (10.10.10.51
)之外的所有人
在進行這些測試之前,我確保所有電腦上的防火牆都已關閉,並且我還在arp -a
MDC 上運行以查看是否存在 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 廣播有時會被過濾,從而解釋了為什麼有些機器無法相互通信,但仍然沒有給我們任何可能的解決方案的線索。
在被困在這個問題上幾週後,沒有任何希望找到答案後,我們聘請了最初幫助安裝基礎設施的顧問,他們告訴我們兩件事:
- LACP 與 VLAN 不相容
- VLAN 42 在交換器連接埠之一上被禁止
因此,請確保配置根本不使用 LACP,並消除對連接埠的限制,以實現完全工作狀態。
現在,我們想知道如何在交換器的一個連接埠上禁止 VLAN 42。
至於 LACP 和 VLAN 不相容,我們從來沒有想到這可能是我們問題的根源,但現在他們告訴我們了,這似乎是堆疊 DELL 交換器時的一個眾所周知的問題,但我找不到任何明確的答案就此主題而言。但由於沒有它也能工作,所以對我來說一切都很好。