Retour : Microsoft Hyper-V
Les cartes réseau des VM se branchent sur un commutateur virtuel (virtual switch) de l'hôte.
Hôte Hyper-V
┌──────────────────────────────────────────────┐
│ VM1 ─┐ │
│ VM2 ─┼── Commutateur "vSwitch-LAN" ─────────┼── Carte physique ── Switch
│ Hôte ┘ (carte virtuelle vEthernet) │
└──────────────────────────────────────────────┘
| Type de commutateur | Accès | Usage |
|---|---|---|
| Externe | Réseau physique, via une carte de l'hôte | Cas général |
| Interne | VM et hôte, sans réseau physique | Laboratoire, réseau d'administration isolé |
| Privé | VM entre elles uniquement | Réseau de test totalement isolé |
| Default Switch (Windows 10/11) | NAT vers le réseau de l'hôte | Poste de travail, créé automatiquement |
Avec Autoriser le système d'exploitation de gestion à partager cette carte réseau (-AllowManagementOS), l'hôte reçoit une carte virtuelle vEthernet sur le commutateur externe : son adresse IP passe de la carte physique à cette carte virtuelle.
Get-NetAdapter
# Commutateur externe partagé avec l'hôte
New-VMSwitch -Name "vSwitch-LAN" -NetAdapterName "Ethernet" -AllowManagementOS $true
# Commutateur externe réservé aux VM (l'hôte garde une autre carte pour son administration)
New-VMSwitch -Name "vSwitch-VM" -NetAdapterName "Ethernet 2" -AllowManagementOS $false
# Commutateurs interne et privé
New-VMSwitch -Name "vSwitch-Lab" -SwitchType Internal
New-VMSwitch -Name "vSwitch-Isole" -SwitchType Private
Get-VMSwitch
⚠️ Créer un commutateur externe sur la carte qui porte l'adresse d'administration provoque une courte coupure réseau. Le faire depuis la console de l'hôte, pas depuis une session RDP sur cette même carte.
Connect-VMNetworkAdapter -VMName SRV01 -SwitchName "vSwitch-LAN"
# Ajouter une seconde carte réseau
Add-VMNetworkAdapter -VMName FW01 -SwitchName "vSwitch-Lab" -Name "LAN-Lab"
Get-VMNetworkAdapter -VMName SRV01
Le VLAN se règle sur la carte réseau de la VM (ou sur la carte vEthernet de l'hôte). Le port du switch physique relié à la carte de l'hôte doit être en trunk. Exemple Cisco :
Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# description Uplink HV01
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan 10,20,30
Paramètres de la VM → Carte réseau → cocher Activer l'identification de réseau local virtuel → ID VLAN : 20.
# VM dans le VLAN 20 (mode accès : la VM ne voit pas d'étiquette)
Set-VMNetworkAdapterVlan -VMName SRV01 -Access -VlanId 20
# VM recevant plusieurs VLAN étiquetés (pare-feu ou routeur virtuel)
Set-VMNetworkAdapterVlan -VMName FW01 -Trunk -AllowedVlanIdList "10,20,30" -NativeVlanId 0
# Carte d'administration de l'hôte dans le VLAN 10
Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName "vSwitch-LAN" -Access -VlanId 10
# Retirer le VLAN
Set-VMNetworkAdapterVlan -VMName SRV01 -Untagged
# Vérifier
Get-VMNetworkAdapterVlan -VMName SRV01
Get-VMNetworkAdapterVlan -ManagementOS
⚠️ Passer la carte d'administration de l'hôte dans un VLAN étiqueté coupe l'accès si le trunk n'est pas prêt : préparer le switch d'abord et garder un accès console (écran / clavier, iDRAC / iLO).
SET réunit plusieurs cartes physiques directement dans le commutateur virtuel (redondance et répartition de charge). Les cartes doivent être identiques (même modèle, même vitesse).
New-VMSwitch -Name "vSwitch-SET" -NetAdapterName "Ethernet 1","Ethernet 2" `
-EnableEmbeddedTeaming $true -AllowManagementOS $true
Get-VMSwitchTeam -Name "vSwitch-SET"
# Mode de répartition (Dynamic par défaut, ou HyperVPort)
Set-VMSwitchTeam -Name "vSwitch-SET" -LoadBalancingAlgorithm HyperVPort
💡 SET fonctionne sans configuration côté switch (indépendant du switch, pas de LACP) : chaque port du switch est configuré normalement en trunk.
Sur un commutateur SET, l'hôte peut recevoir plusieurs cartes virtuelles, une par usage :
Add-VMNetworkAdapter -ManagementOS -Name "Migration" -SwitchName "vSwitch-SET"
Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName "Migration" -Access -VlanId 40
New-NetIPAddress -InterfaceAlias "vEthernet (Migration)" -IPAddress 192.168.40.12 -PrefixLength 24
Paramètres de la VM → Carte réseau → Fonctionnalités avancées, ou Set-VMNetworkAdapter :
| Option | Rôle | Commande |
|---|---|---|
| Adresse MAC statique | Garder la même MAC (bail DHCP réservé, licences) | -StaticMacAddress "00155D040A01" |
| Usurpation d'adresse MAC | Nécessaire aux pare-feu virtuels, VM imbriquées, équilibreurs | -MacAddressSpoofing On |
| Protection DHCP | Ignore les réponses DHCP émises par la VM | -DhcpGuard On |
| Protection du routeur | Ignore les annonces de routeur émises par la VM | -RouterGuard On |
| Bande passante maximale | Limite le débit de la VM (bits/s) | -MaximumBandwidth 100000000 |
Set-VMNetworkAdapter -VMName SRV01 -StaticMacAddress "00155D040A01"
Set-VMNetworkAdapter -VMName FW01 -MacAddressSpoofing On
Set-VMNetworkAdapter -VMName LAB01 -DhcpGuard On -RouterGuard On
💡 Hyper-V utilise des cartes réseau synthétiques (paravirtualisées) par défaut : ne recourir à la carte réseau héritée qu'en génération 1, pour un système très ancien ou un démarrage PXE ancien.
| Symptôme | Pistes |
|---|---|
| VM sans réseau | Carte connectée au bon commutateur ? Commutateur externe lié à la bonne carte physique ? |
| VM sans réseau dans un VLAN | ID VLAN de la carte ? VLAN autorisé sur le trunk ? |
| Hôte injoignable après création du commutateur | L'adresse IP est passée sur la carte vEthernet (...) : la vérifier avec ipconfig |
| Pare-feu virtuel ne transmettant pas le trafic | Usurpation d'adresse MAC à activer sur ses cartes |
Get-VMSwitch | Format-Table Name, SwitchType, NetAdapterInterfaceDescription
Get-VMNetworkAdapter -VMName * | Format-Table VMName, SwitchName, MacAddress, IPAddresses
Get-VMNetworkAdapterVlan -VMName *
Get-NetIPConfiguration