網卡綁定導致 ESXi 中的虛機網路連接時斷時續的解析和處理

  • 2019 年 10 月 29 日
  • 筆記

當你使用以太通道進行網卡綁定時,ESXi 主機中的虛機網路連接有時會出現時斷時續現象。之所以出現此問題,是因為網卡綁定屬性沒有傳播到 ESXi 中的管理網路埠組。

我們從埠組的負載平衡策略下拉菜單中,可以指定虛擬交換機如何對組內物理網卡之間的出站通訊進行負載平衡。它一般有以下幾種方式: 1、基於源虛擬埠的路由:

根據交換機上的虛擬埠 ID 選擇上行鏈路。虛擬交換機為虛擬機或VMkernel 適配器選擇上行鏈路後,便始終會通過此虛擬機或 VMkernel 適配器的同一上行鏈路轉發流量。 註:

交換機的EtherChannel沒綁的話,默認是基於源埠的

2、基於 IP 哈希的路由: 

根據每個數據包的源和目標 IP 地址哈希選擇上行鏈路。對於非 IP 數據包,交換機在相應欄位中使用這些數據來計算哈希值。基於 IP 的成組要求為物理交換機配置以太通道。 註:

交換機綁了EtherChannel,就設定了負載平衡策略是基於ip哈希的,那麼虛擬交換機的也需要與之匹配,所以也要設置為基於IP哈希。交換機的EtherChannel數是有限的,比如有的是512個,調整上限後改為1024個,但內部的埠數會從32個減為16個

3、基於源 MAC 哈希的路由:  

根據源乙太網的哈希選擇上行鏈路。

4、基於物理網卡負載的路由 : 

可用於分散式埠組或分散式埠。根據連接到埠組或埠的物理網路適配器的當前負載選擇上行鏈路。如果上行鏈路 75% 或更高持續 30 秒保持忙碌狀態,主機代理交換機會將一部分虛擬機流量移至具有可用容量的物理適配器。

我們看一下Ether Channel網路配置的例圖:

Run this command to verify EtherChannel load balancing mode configuration: Switch# show etherchannel load-balance EtherChannel Load-Balancing Configuration: src-dst-ip mpls label-ip EtherChannel Load-Balancing Addresses Used Per-Protocol: Non-IP: Source XOR Destination MAC address IPv4: Source XOR Destination IP address IPv6: Source XOR Destination IP address MPLS: Label or IP Switch# show etherchannel summary Flags: D - down P - bundled in port-channel I - stand-alone s - suspended H - Hot-standby (LACP only) R - Layer3 S - Layer2 U - in use f - failed to allocate aggregator M - not in use, minimum links not met u - unsuitable for bundling w - waiting to be aggregated Number of channel-groups in use: 2 Number of aggregators: 2 Group Port-channel Protocol Ports ------+-------------+-----------+-------------------------- 1 Po1(SU) - Gi1/15(P) Gi1/16(P) 2 Po2(SU) - Gi1/1(P) Gi1/2(P) Switch# show etherchannel protocol Channel-group listing: ----------------------- Group: 1 ---------- Protocol: - (Mode ON) Group: 2 ---------- Protocol: - (Mode ON)

回顧下鏈接聚合概念:

以太通道:這是一種鏈路聚合(埠中繼)方法,用於通過分組兩個到八個物理乙太網鏈路來創建具有故障轉移鏈路的邏輯乙太網鏈路,從而在交換機,路由器和伺服器之間提供容錯和高速鏈路。有關Cisco EtherChannel的其他資訊,請參閱Cisco的EtherChannel簡介。

LACP或IEEE 802.3ad:鏈路聚合控制協議(LACP)被包括在IEEE規範中,作為一種控制多個物理埠捆綁在一起形成單個邏輯信道的方法。 LACP允許網路設備通過向對等體(也直接連接的設備實現LACP)發送LACP數據包來協商自動捆綁鏈路。有關LACP的更多資訊,請參閱Cisco的「鏈路聚合控制協議白皮書」。

注意:僅在使用vSphere Distributed Switches(VDS)或Cisco Nexus 1000v的vSphere 5.1,5.5和6.0中支援LACP。一些華為的CE交換機也支援。

EtherChannel與802.3ad:EtherChannel和IEEE 802.3ad標準非常相似,並達到同樣的目的。兩者之間有一些區別,除EtherChannel以外,Cisco專有和802.3ad是一個開放標準。

有關EtherChannel實現的更多資訊,請參閱「了解EtherChannel負載均衡和Catalyst交換機冗餘」系列文章。

EtherChannel支援的場景:

一個IP到許多IP連接。 (主機A與主機B和C進行兩個連接會話)

許多IP到很多IP連接。 (主機A和B與主機C,D等的多連接會話)

注意:不支援通過多個NIC進行一個IP到一個IP連接。 (主機A與主機B的一個連接會話僅使用一個NIC)。

與所有ESXi / ESX VLAN配置模式兼容:VST,EST和VGT。有關這些模式的更多資訊,請參見虛擬交換機,物理交換機和虛擬機上的VLAN配置(1003806)。

支援的思科配置:EtherChannel模式ON – (僅啟用EtherChannel)

支援的HP配置:中繼模式

支援的交換機聚合演算法:IP-SRC-DST(IP-Source-Destination的簡稱)

支援的虛擬交換機網卡組合模式:IP HASH。

但是,請注意:vSphere Distributed Switch 5.1中的LACP支援僅支援IP哈希負載平衡。在vSphere Distributed Switch 5.5及更高版本中,才支援LACP的所有負載均衡演算法:

不要使用IP HASH負載平衡的信標探測。

不要配置具有IP HASH負載均衡的待機或未使用的上行鏈路。

vSphere Distributed Switch 5.1僅支援每個vNetwork分散式交換機(vDS)的一個EtherChannel。但是,vSphere Distributed Switch 5.5及更高版本支援多個LAG。

網卡綁定導致 ESXi 中的虛機網路連接時斷時續的處理:

請檢查虛機所在portgroup的負載平衡策略,如果交換機做了EtherChannel,則需要選擇基於IP哈希的負載平衡,如果沒做,則默認選擇基於源虛擬埠的路由。相應的如果更改策略後沒有生效,依然出現時斷時續,則可以重建埠組並選擇正確的負載平衡策略。

如果在虛擬交換機負載平衡策略更改後,主機已不再連接到 vCenter Server,請使用下面的命令:

# vim-cmd hostsvc/net/vswitch_setpolicy –nicteaming-policy=loadbalance_ip vSwitch0 # vim-cmd hostsvc/net/portgroup_set –nicteaming-policy=loadbalance_ip vSwitch0 "Management Network"