Configurer un trunk VLAN sur une VM Hyper-V
- Mise à jour le 12 mai 2026
Sur un hyperviseur Microsoft Hyper-V, j’ai eu besoin de configurer un trunk VLAN sur une machine virtuelle utilisée comme routeur Linux. L’objectif était de permettre à cette VM de router le trafic entre d’autres machines virtuelles et des postes de travail externes situés sur différents sous-réseaux.
Cette configuration n’est pas directement exposée dans l’interface graphique standard de Hyper-V. Pour activer le trunk VLAN sur une carte réseau de VM, nous devons utiliser PowerShell — rassurez-vous, il n’y a que deux lignes.
Dans cet exemple, mon hôte Hyper-V fonctionne sous Windows Server 2019, mais la même approche devrait également s’appliquer aux versions plus récentes de Windows Server. Même si la VM est utilisée ici comme routeur Linux, cette configuration peut être utile dans toute situation où une machine virtuelle Hyper-V doit accéder à plusieurs VLANs.
Schéma d’architecture réseau
Dans cet exemple, une VM routeur Linux est connectée au commutateur virtuel Hyper-V au moyen d’un trunk VLAN. Une seconde machine virtuelle est placée sur le VLAN 10 et utilise la VM routeur Linux pour communiquer avec les autres réseaux.
Configuration du routeur Linux
Sur la VM routeur Linux, nous devons d’abord activer la prise en charge des VLAN et le transfert IPv4. Dans cet exemple, l’interface trunk est eth0, et l’interface VLAN sera créée pour le VLAN 10.
- Charger le module noyau 802.1Q et activer le transfert IPv4 :
root@host:~# modprobe 8021q
root@host:~# echo 1 > /proc/sys/net/ipv4/ip_forward
- Créer une sous-interface VLAN sur
eth0pour le VLAN 10 :
root@host:~# ip link add link eth0 name eth0.vlan10 type vlan id 10
- Activer la nouvelle interface
eth0.vlan10:
root@host:~# ip link set eth0.vlan10 up
- Attribuer une adresse IP à l’interface
eth0.vlan10:
root@host:~# ip addr add 192.168.10.254/24 dev eth0.vlan10
Activer le trunk VLAN sur Hyper-V
Maintenant que la VM routeur Linux est configurée, nous devons activer le trunk VLAN sur sa carte réseau Hyper-V. Ce paramètre n’est pas disponible dans l’interface graphique standard de Hyper-V ; il doit donc être configuré depuis une console PowerShell ouverte avec des droits administrateur.
- Lister les cartes réseau rattachées à la machine virtuelle nommée router et récupérer l’adresse MAC de la carte sur laquelle vous souhaitez activer le trunk VLAN :
PS C:\ > Get-VMNetworkAdapter -VMName router
Name IsManagementOs VMName SwitchName MacAddress Status IPAddresses
---- -------------- ------ ---------- ---------- ------ -----------
Network Adapter False ROUTER vSwitch1 0015DEADBEE5 {Ok} {}
- À partir de l’adresse MAC récupérée précédemment, activer le trunk VLAN sur la carte réseau de la VM :
PS C:\ > Get-VMNetworkAdapter -VMName router | Where-Object { $_.MacAddress -eq '0015DEADBEE5' } | Set-VMNetworkAdapterVlan -Trunk -AllowedVlanIdList 1-100 -NativeVlanId 1
Configurer l’accès VLAN sur la VM Hyper-V
Maintenant que le trunk VLAN est activé sur la VM routeur Linux, nous pouvons configurer une autre machine virtuelle afin qu’elle communique avec le routeur via le VLAN 10.
- Ouvrir les paramètres de la machine virtuelle, aller dans la section Carte réseau, la connecter à vSwitch1, activer Activer l’identification LAN virtuel, puis définir l’ID VLAN sur 10 :
La machine virtuelle devrait maintenant pouvoir communiquer avec le routeur Linux via le VLAN 10.