Retour : Microsoft Hyper-V

Principe

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.


Créer les commutateurs

Via interface graphique
  1. Gestionnaire Hyper-V → Gestionnaire de commutateur virtuel → Nouveau commutateur réseau virtuel.
  2. Choisir le type → Créer le commutateur virtuel.
  3. Pour un commutateur externe : sélectionner la carte physique, cocher ou non le partage avec le système de gestion.
Via PowerShell
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.

Brancher une VM

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

VLAN

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
Via interface graphique

Paramètres de la VM → Carte réseau → cocher Activer l'identification de réseau local virtuel → ID VLAN : 20.

Via PowerShell
# 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).


Agrégation de cartes (Switch Embedded Teaming)

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.

Plusieurs réseaux pour l'hôte

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

Options des cartes réseau des VM

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.


Dépannage

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

Étape suivante