Lorsqu’on souhaite tester une solution de Firewall dans un environnement virtuel sous Hyper-V, il peut être nécessaire de configurer plusieurs VLAN sur une même interface réseau. Dans ce cas, l’interface doit être paramétrée en mode trunk.
Cependant, bien que l’Hyper-V Manager permette d’associer l'interface réseau d'une machine virtuelle à un VLAN, il n’offre aucune option pour définir le mode trunk. On pourrait créer autant d’interfaces réseau qu’il y a de VLAN. Mais cette approche pourrait complexifier la gestion des interfaces du Firewall et ne reflète pas la réalité d’une configuration sur un Firewall physique.
Du coup, il existe une solution pour activer le mode trunk sur une interface réseau en utilisant des commandes PowerShell. Toutefois, lorsqu’on crée plusieurs interfaces dans une machine virtuelle, elles apparaissent avec le même nom, ce qui pose problème lorsqu'on utilise la commande powershell pour activer le mode trunk d'une interface spécifique.
Il faut donc utiliser dans un premier temps le script ci-dessous qui permet de renommer une interface réseau en utilisant son adresse MAC.
# Replace with your VM name - MAC address - New adapter Name
$vmName = "PFsens"
$macAddress = "00155DF21509"
$NewAdapterName = "InternalTrunk"
# Get the network adapter
$vmnetadapt = Get-VMNetworkAdapter -VMName $vmName | Where-Object {$_.MacAddress -eq $macAddress}
# Rename the adapter
Rename-VMNetworkAdapter -VMNetworkAdapter $vmnetadapt -NewName $NewAdapterName
# Verify the change
Get-VMNetworkAdapter -VMName $vmName
Il ne reste plus qu'à utiliser la commande ci-dessous pour activer le mode trunk et définir les Vlans autorisées à utiliser ce trunk
Set-VMNetworkAdapterVlan -VMName "PFsens" -VMNetworkAdapterName "InternalTrunk" -Trunk -AllowedVlanIdList "10,20" -NativeVlanId 1