Retour : VMware ESXi

Principe

                          Hôte ESXi
 ┌─────────────────────────────────────────────────────┐
 │  VM1 ─┐                                             │
 │  VM2 ─┼─ Groupe de ports "VM-VLAN20" ─┐             │
 │       │                               ├─ vSwitch0 ──┼── vmnic0 ── Switch
 │  vmk0 ── Groupe "Management Network" ─┘             │   vmnic1 ── physique
 └─────────────────────────────────────────────────────┘
Élément Rôle
vmnic Carte réseau physique de l'hôte (vmnic0, vmnic1…)
vSwitch standard Commutateur virtuel propre à l'hôte, relié à une ou plusieurs vmnic (uplinks)
Groupe de ports (port group) Point de branchement des VM, porte le VLAN et les stratégies
Interface VMkernel (vmk0…) Interface IP de l'hôte lui-même : administration, vMotion, stockage iSCSI / NFS
vSwitch distribué (vDS) Commutateur commun à plusieurs hôtes, géré par vCenter (licence)

Après l'installation, vSwitch0 contient le groupe Management Network (avec vmk0, l'adresse d'administration) et le groupe VM Network pour les VM.


VLAN

Le VLAN est porté par le groupe de ports : un groupe par VLAN, et chaque VM se connecte au groupe voulu.

VLAN ID du groupe Comportement
0 Pas de VLAN (trafic non étiqueté)
1 à 4094 L'hôte étiquette le trafic de ce groupe avec ce VLAN (cas général)
4095 Trunk : tous les VLAN arrivent étiquetés dans la VM (pare-feu virtuel, routeur)

Le port du switch physique relié aux vmnic doit être en trunk. Exemple Cisco :

Switch(config)# interface range GigabitEthernet0/1 - 2
Switch(config-if-range)# description Uplinks esx1
Switch(config-if-range)# switchport mode trunk
Switch(config-if-range)# switchport trunk allowed vlan 10,20,30
Créer un groupe de ports (interface graphique)
  1. Mise en réseau → Groupes de ports → Ajouter un groupe de ports.
  2. Nom VM-VLAN20, ID VLAN 20, commutateur virtuel vSwitch0.
  3. Sur la VM : Modifier les paramètres → Adaptateur réseau → VM-VLAN20.
Créer un groupe de ports (esxcli)
esxcli network vswitch standard list
esxcli network vswitch standard portgroup list

esxcli network vswitch standard portgroup add --portgroup-name="VM-VLAN20" --vswitch-name=vSwitch0
esxcli network vswitch standard portgroup set --portgroup-name="VM-VLAN20" --vlan-id=20

⚠️ Modifier le VLAN du groupe Management Network coupe l'accès si le switch n'est pas prêt : préparer le trunk d'abord et garder un accès à la console (DCUI, iDRAC / iLO).


Exemple : un second vSwitch sur vmnic2 pour le trafic de stockage.

Via interface graphique

Mise en réseau → Commutateurs virtuels → Ajouter un commutateur virtuel standard : nom vSwitch1, liaison montante vmnic2, MTU.

Pour ajouter une carte à un vSwitch existant : sélectionner le vSwitch → Ajouter une liaison montante.

En ligne de commande
esxcli network nic list

esxcli network vswitch standard add --vswitch-name=vSwitch1
esxcli network vswitch standard uplink add --uplink-name=vmnic2 --vswitch-name=vSwitch1

Interfaces VMkernel

Une interface VMkernel donne une adresse IP à l'hôte sur un réseau, pour un usage précis :

Service (case à cocher) Usage
Gestion Administration (Host Client, vCenter)
vMotion Migration à chaud des VM entre hôtes
Stockage (aucune case) Trafic iSCSI / NFS : il suffit d'une VMkernel sur le bon réseau
vSAN, Provisionnement, Fault Tolerance… Fonctions vCenter
Créer une interface VMkernel pour le stockage
  1. Créer un groupe de ports Storage (VLAN 30) sur vSwitch1.
  2. Mise en réseau → Cartes réseau VMkernel → Ajouter une carte réseau VMkernel : groupe Storage, adresse statique 192.168.30.11/24, aucun service coché.
esxcli network vswitch standard portgroup add --portgroup-name=Storage --vswitch-name=vSwitch1
esxcli network vswitch standard portgroup set --portgroup-name=Storage --vlan-id=30
esxcli network ip interface add --interface-name=vmk1 --portgroup-name=Storage
esxcli network ip interface ipv4 set --interface-name=vmk1 --type=static \
  --ipv4=192.168.30.11 --netmask=255.255.255.0
esxcli network ip interface ipv4 get

Teaming et basculement

Avec plusieurs uplinks sur un vSwitch : vSwitch (ou groupe de ports) → Modifier les paramètres → Association de cartes réseau :

Stratégie d'équilibrage Switch physique Remarque
Basée sur le port virtuel d'origine (défaut) Aucune configuration Chaque VM utilise une carte ; recommandé
Basée sur le hachage IP EtherChannel statique obligatoire Pas de LACP sur un vSwitch standard
Basée sur le hachage MAC source Aucune configuration Rarement utilisée
Ordre de basculement explicite Aucune configuration Carte active / carte de secours

💡 Le LACP n'est disponible que sur un vSwitch distribué (vCenter).


Stratégies de sécurité

Groupe de ports → Modifier les paramètres → Sécurité :

Stratégie Défaut À passer sur Accepter pour…
Mode promiscuité Rejeter Sonde réseau (IDS), capture de trafic
Modifications d'adresse MAC Rejeter VM qui changent leur MAC (cluster, certains pare-feu)
Transmissions forgées Rejeter Pare-feu virtuels, ESXi imbriqué (nested)

Ne les assouplir que sur le groupe de ports qui en a besoin.


Cartes réseau des VM

Adaptateur Usage
VMXNET3 Le plus performant, pilote fourni par les VMware Tools (inclus dans les noyaux Linux récents)
E1000E Compatibilité à l'installation d'un système sans pilote VMXNET3

Jumbo frames

Pour le stockage (iSCSI, NFS), une MTU de 9000 peut améliorer les débits, à condition qu'elle soit identique de bout en bout : vSwitch, interface VMkernel, switch physique, NAS.

esxcli network vswitch standard set --vswitch-name=vSwitch1 --mtu=9000
esxcli network ip interface set --interface-name=vmk1 --mtu=9000

# Test sans fragmentation (8972 = 9000 - en-têtes)
vmkping -I vmk1 -d -s 8972 192.168.30.20

Dépannage

Symptôme Pistes
VM sans réseau Groupe de ports correct ? Case Connecter de l'adaptateur cochée ? Pilote VMXNET3 présent ?
VM sans réseau dans un VLAN VLAN ID du groupe ? VLAN autorisé sur le trunk ?
Hôte injoignable DCUI → Test Management Network, VLAN de vmk0, Restore Network Settings en dernier recours
Stockage lent ou instable MTU incohérente, VMkernel sur le mauvais réseau
esxcli network nic list
esxcli network ip interface ipv4 get
esxcli network vswitch standard list

# Ping depuis une interface VMkernel précise
vmkping -I vmk0 192.168.4.1

# Capture du trafic d'une vmnic
pktcap-uw --uplink vmnic0 -o /tmp/capture.pcap

Étape suivante