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:
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 :
Voilà, voilà.