当你使用以太通道进行网卡绑定时,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网络配置的例图:


网卡绑定导致 ESXi 中的虚机网络连接时断时续的解析和处理_第1张图片

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 中的虚机网络连接时断时续的解析和处理_第2张图片

网卡绑定导致 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"