Eu tenho a configuração abaixo, simplificada:
Essencialmente, tenho um host ESXi com dois adaptadores de rede físicos. Cada adaptador se conecta a um switch diferente. Cada switch é conectado através de uma porta de tronco. Um PC está conectado a um dos switches. Um vSwitch com uma porta VMKernel e portas VM é configurado para usar ambas as NICs físicas em uma configuração ativa/ativa:
Eu esxtop
executei e posso ver que o host ESXi escolheu a NIC física conectada ao Switch 2 para a porta VMKernel. No PC, se eu fizer ping no endereço IP de gerenciamento do host ESXi, os pings serão intermitentes. Eles sobem e descem.
Se eu mostrar a tabela de endereços mac em cada switch, vejo que o Switch 2 sempre tem o endereço MAC do VMKernel atribuído à porta do switch conectada ao host ESXi. Mas, o Switch 1 adiciona e remove continuamente o endereço MAC do VMKernel em sua respectiva porta física. Sempre que o Switch 1 tem o MAC do VMKernel atribuído à sua porta física, os pings falham.
A razão do fracasso é óbvia. A razão pela qual o Switch 1 está coletando rotineiramente o endereço MAC da porta ESXi VMKernel é a questão. O host ESXi escolheu a interface conectada ao Switch 2 para ser a porta ativa. A interface conectada ao Switch 1 deve estar inativa. Mas, parece que possivelmente está respondendo a solicitações ARP?
Vale a pena notar que nenhuma das VMs neste host tem esse problema. Eles são todos alcançáveis e estão presentes em apenas uma tabela MAC por vez. Esse problema afeta especificamente a porta VMKernel.
O que esta configuração está errada? Estou procurando algum tipo de documentação ou explicação em cima de uma solução para esse problema. Eu sei que configurar a porta VMKernel para o modo Ativo/Standby provavelmente resolverá o problema. Mas não consigo encontrar nada documentado por que essa configuração atual é um problema.
ATUALIZAÇÕES:
- Desativei o CDP no vSwitch pensando que poderia estar causando comunicação pela NIC inativa.
- Eu substituí as configurações do vSwitch para a porta VMKernel e a configurei para usar failover explícito e Ativo/Standby. Também coloquei a NIC em espera no pool não utilizado. Nada disso ajudou. O que resolveu o problema foi alterar a ordem das portas. Portanto, quando a porta conectada ao Switch 1 fica ativa, não vejo o problema. O endereço MAC não se torna ativo no Switch 2. Estas são duas placas NIC significativamente diferentes, e eu estou querendo saber se isso não é algum tipo de problema de driver.
Algo deve estar fazendo com que o endereço MAC do VMKernel seja visto na porta do Switch 1, mas ele vem e vai a cada vários segundos.
Configurações de switch para STP e portas: Switch 1
!
spanning-tree mode rapid-pvst
spanning-tree portfast edge default
spanning-tree extend system-id
!
interface Port-channel1
switchport access vlan 11
switchport trunk encapsulation dot1q
switchport mode trunk
!
interface GigabitEthernet1/0/7
switchport access vlan 11
switchport mode access
!
interface GigabitEthernet1/0/23
switchport access vlan 11
switchport trunk encapsulation dot1q
switchport mode trunk
channel-group 1 mode desirable
!
interface GigabitEthernet1/0/24
switchport access vlan 11
switchport trunk encapsulation dot1q
switchport mode trunk
channel-group 1 mode desirable
Interruptor 2
!
spanning-tree mode rapid-pvst
spanning-tree portfast edge default
spanning-tree extend system-id
!
interface Port-channel1
switchport access vlan 11
switchport trunk encapsulation dot1q
switchport mode trunk
!
interface GigabitEthernet1/0/3
switchport access vlan 11
switchport mode access
!
interface GigabitEthernet1/0/23
switchport access vlan 11
switchport trunk encapsulation dot1q
switchport mode trunk
channel-group 1 mode desirable
!
interface GigabitEthernet1/0/24
switchport access vlan 11
switchport trunk encapsulation dot1q
switchport mode trunk
channel-group 1 mode desirable
O vmk de gerenciamento no ESXI assume o endereço MAC do Nic no primeiro slot PCI durante a configuração inicial. É assim que tem funcionado para sempre. Isso pode quebrar as coisas apenas quando o dispositivo físico também começa a enviar pacotes. Isso normalmente não acontece, Nics físicos não enviam tráfego, eles passam o tráfego adiante. Este comportamento também precisa ser observado se você decidir mover Nics físicos de um host para outro, isso desativa 2 conexões de host quando o switch físico enlouquece. Meu palpite é que este Nic começou a relatar o tráfego CDP/LLDP e é quando seu switch vê a duplicação de MAC. A solução mais fácil é reconstruir o vmk por meio da linha de comando. Isso precisará ser feito a partir de um acesso direto ao console (DCUI) (KVM, ILO, IDRAC, etc...).
Aqui estão os comandos; (Ajuste o IP/máscara de sub-rede/nome do grupo de portas etc... para atender às suas necessidades.)
interface ip de rede esxcli remove --interface-name=vmk0
esxcli network vswitch padrão portgroup add -p Management_Network -v vSwitch0
interface ip de rede esxcli add --interface-name=vmk0 --portgroup-name=Management_Network
esxcli network vswitch padrão portgroup set -p Management_Network --vlan-id 50
esxcli network ip interface ipv4 set --interface-name=vmk0 --ipv4=192.168.50.116 --netmask=255.255.255.0 --gateway=192.168.50.1 --type=static
tag de interface ip de rede esxcli add -i vmk0 -t Management
Isso reconstruirá o vmk de gerenciamento com um endereço MAC do VMware para eliminar esse problema. No entanto, recomendo que você entre em contato com o fornecedor/fabricante de hardware para o processo de encerramento do CDP/LLDP proveniente da placa física. Isso resolverá esse problema do host ESXi, mas você acabará acontecendo com outras pessoas se permitir que a(s) placa(s) continue(m) executando essa função. Se isso fosse um problema tão grande quanto você pensava inicialmente, a VMware não seria uma empresa gigante, isso não é muito comum...
Eu executei uma configuração extremamente semelhante por muitos anos sem problemas.
Como você configurou as portas do switch? Você não deve fazer nada de especial ( não (M)LAG/LACP), já que o ESXi cuida de tudo. Não há problema em empilhar os switches, apenas não agregue as portas, configure qualquer espelhamento de estado de link ou similar.
O switch2 deve ter o MAC da porta VMkernel na porta voltada para o ESXi e o switch1 na porta voltada para o switch2, permanentemente.
A oscilação do MAC para frente e para trás pode ser causada por outro problema, como alterações frequentes na topologia STP (que geralmente não são visíveis pelo ESXi, mas ainda podem). Verifique os logs dos switches para quaisquer anomalias.
Sem qualquer LAG, isso só poderia acontecer se o host realmente enviasse quadros com o MAC da porta VMK para o switch1. Normalmente não fará isso, a menos que o link para switch2 falhe.
Para a porta VMK, sim. Pode haver tráfego de VM anexado ao mesmo grupo de portas.
ARP ou não, os quadros com o MAC da porta VMK não se originam da outra porta sem motivo.
A configuração de porta do switch que você postou mostra que você está usando um canal de porta nos switches do catalisador.
Só não faça isso! Com hosts ESXi autônomos, isso não é suportado. O ESXi cuida do balanceamento de carga e do failover por conta própria apenas no software. Se você realmente deseja usar canais de porta baseados em switch externo, isso requer que você use o vCenter e um switch distribuído.
Consulte https://kb.vmware.com/s/article/82609 e https://kb.vmware.com/s/article/1001938 para obter mais detalhes.