VMware Nested ESXi: Petite chose à ne pas oublier pour avoir du réseau dans votre cluster nested

VMware Nested ESXi: Petite chose à ne pas oublier pour avoir du réseau dans votre cluster nested

Après avoir installé vos ESXi en tant que VM dans votre Cluster VMware, il se peut que vous ne puissiez pas joindre les ESXi depuis le réseau interne nested ou une VM quelconque qui tournerais dessus. Au hasard un vCenter...

Alors pour faire sale et vite, vous pouvez tout simplement activer le mode "promiscuous" et "Forged transmits". Voilà pour la version courte et moche.

Pour la faire propre, et en savoir un peu plus tout le problème se situe au niveau de la gestion des MAC adresses. Les VMs et tout ce qui tourne à l'intérieur de vos ESXi nested n'ont tout simplement pas accès à l'extérieur et vice-versa car leur MAC adresse est différente de celle de l'ESXi et les paquets se font droppés. En activant, le mode "promiscuous" et "Forged transmits" vous forcez un peu la main au réseau en autorisant tout. Alors qu'il existe depuis vSphere 6.7 la possibilité au dvSwitch d'apprendre les MAC adresses et les associés aux NIC qui vont bien. Tout est expliqué ici:

https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.networking.doc/GUID-E0246B3D-9FB1-4976-8217-5C085863EA9A.html

Pour l'activer, cela se passe par l'API vSphere au travers de PowerCLI. Pour faire court, je vais vous mettre les commandes pour l'installer si pas déjà fait chez vous et récupérer le script ajoutant les fonctions Get-MacLearn et Set-MacLearn.

Depuis votre console PowerShell :

Install-Module -Name VMware.PowerCLI -Scope CurrentUser

# Récupération de Get-MacLearn et Set-MacLearn

wget -UseBasicParsing https://github.com/lamw/vmware-scripts/raw/master/powershell/MacLearn.ps1 -OutFile MacLearn.ps1

# Activation des functions

. MacLearn.ps1

# Récup de la configuration de votre dvSwitch

Get-MacLearn -DVPortgroupName @("Nested-01-DVPG")

# Activation de la fonctionnalité MacLearn

Set-MacLearn -DVPortgroupName @("Nested-01-DVPG") -EnableMacLearn $true -EnablePromiscuous $false -EnableForgedTransmit $true -EnableMacChange $false

Plus de détails, sur le post du créateur de ces fonctions :

Native MAC Learning in vSphere 6.7 removes the need for Promiscuous mode for Nested ESXi
Over the years, several solutions have been developed here and here to help reduce the impact of promiscuous mode, which is a requirement for running Nested ESXi as a workload. Although these solut…

Voilà, voilà.