Créer et gérer une machine virtuelle Windows équipée de plusieurs cartes d’interface réseauCreate and manage a Windows virtual machine that has multiple NICs

Les machines virtuelles (VM) dans Azure peuvent être équipées de plusieurs cartes d’interface réseau (NIC) virtuelles.Virtual machines (VMs) in Azure can have multiple virtual network interface cards (NICs) attached to them. Un scénario courant consiste à disposer de sous-réseaux différents pour les connectivités frontale et principale.A common scenario is to have different subnets for front-end and back-end connectivity. Vous pouvez associer plusieurs cartes d’interface réseau d’une machine virtuelle à différents sous-réseaux, mais ces sous-réseaux doivent tous résider dans le même réseau virtuel.You can associate multiple NICs on a VM to multiple subnets, but those subnets must all reside in the same virtual network (vNet). Cet article explique comment créer une machine virtuelle équipée de plusieurs cartes d’interface réseau.This article details how to create a VM that has multiple NICs attached to it. Il explique également comment ajouter ou supprimer des cartes d’interface réseau d’une machine virtuelle existante.You also learn how to add or remove NICs from an existing VM. Comme le nombre de cartes réseau prises en charge varie suivant la taille des machines virtuelles , pensez à dimensionner la vôtre en conséquence.Different VM sizes support a varying number of NICs, so size your VM accordingly.

PrérequisPrerequisites

Dans les exemples suivants, remplacez les exemples de noms de paramètre par vos propres valeurs.In the following examples, replace example parameter names with your own values. Les noms de paramètre sont par exemple myResourceGroup, myVnet et myVM.Example parameter names include myResourceGroup, myVnet, and myVM.

Créer une machine virtuelle avec plusieurs cartes d’interface réseauCreate a VM with multiple NICs

Créez d’abord un groupe de ressources.First, create a resource group. L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement EastUs:The following example creates a resource group named myResourceGroup in the EastUs location:

New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"

Créer un réseau virtuel et des sous-réseauxCreate virtual network and subnets

Un scénario courant pour un réseau virtuel consiste à avoir deux sous-réseaux ou plus.A common scenario is for a virtual network to have two or more subnets. Un sous-réseau peut être dédié au trafic frontal, et l’autre au trafic principal.One subnet may be for front-end traffic, the other for back-end traffic. Pour connecter les deux sous-réseaux, vous utilisez ensuite plusieurs cartes d’interface réseau sur votre machine virtuelle.To connect to both subnets, you then use multiple NICs on your VM.

  1. Définissez deux sous-réseaux de réseau virtuel avec la commande New-AzVirtualNetworkSubnetConfig.Define two virtual network subnets with New-AzVirtualNetworkSubnetConfig. L’exemple suivant définit les sous-réseaux pour mySubnetFrontEnd et mySubnetBackEnd :The following example defines the subnets for mySubnetFrontEnd and mySubnetBackEnd:

    $mySubnetFrontEnd = New-AzVirtualNetworkSubnetConfig -Name "mySubnetFrontEnd" `
        -AddressPrefix "192.168.1.0/24"
    $mySubnetBackEnd = New-AzVirtualNetworkSubnetConfig -Name "mySubnetBackEnd" `
        -AddressPrefix "192.168.2.0/24"
    
  2. Créez votre réseau virtuel et vos sous-réseaux avec la commande New-AzVirtualNetwork.Create your virtual network and subnets with New-AzVirtualNetwork. L’exemple suivant crée un réseau virtuel nommé myVnet :The following example creates a virtual network named myVnet:

    $myVnet = New-AzVirtualNetwork -ResourceGroupName "myResourceGroup" `
        -Location "EastUs" `
        -Name "myVnet" `
        -AddressPrefix "192.168.0.0/16" `
        -Subnet $mySubnetFrontEnd,$mySubnetBackEnd
    

Créer plusieurs cartes réseauCreate multiple NICs

Créez deux cartes d’interface réseau avec la commande New-AzNetworkInterface.Create two NICs with New-AzNetworkInterface. Associez une carte d’interface réseau au sous-réseau frontal et l’autre au sous-réseau principal.Attach one NIC to the front-end subnet and one NIC to the back-end subnet. L’exemple suivant crée des cartes d’interface réseau nommées myNic1 et myNic2 :The following example creates NICs named myNic1 and myNic2:

$frontEnd = $myVnet.Subnets|?{$_.Name -eq 'mySubnetFrontEnd'}
$myNic1 = New-AzNetworkInterface -ResourceGroupName "myResourceGroup" `
    -Name "myNic1" `
    -Location "EastUs" `
    -SubnetId $frontEnd.Id

$backEnd = $myVnet.Subnets|?{$_.Name -eq 'mySubnetBackEnd'}
$myNic2 = New-AzNetworkInterface -ResourceGroupName "myResourceGroup" `
    -Name "myNic2" `
    -Location "EastUs" `
    -SubnetId $backEnd.Id

En général, vous créez également un groupe de sécurité réseau pour filtrer le trafic vers la machine virtuelle, ainsi qu’un équilibreur de charge pour répartir le trafic entre plusieurs machines virtuelles.Typically you also create a network security group to filter network traffic to the VM and a load balancer to distribute traffic across multiple VMs.

Créer la machine virtuelleCreate the virtual machine

Maintenant, commencez à élaborer la configuration de votre machine virtuelle.Now start to build your VM configuration. La taille d’une machine virtuelle détermine le nombre maximal de cartes réseau qu’elle peut accueillir.Each VM size has a limit for the total number of NICs that you can add to a VM. Pour plus d’informations, voir Tailles des machines virtuelles Windows.For more information, see Windows VM sizes.

  1. Tout d’abord, définissez les informations d’identification de votre machine virtuelle sur la variable $cred comme suit :Set your VM credentials to the $cred variable as follows:

    $cred = Get-Credential
    
  2. Définissez votre machine virtuelle avec la commande New-AzVMConfig.Define your VM with New-AzVMConfig. L’exemple suivant définit une machine virtuelle nommée myVM et utilise une taille de machine virtuelle qui prend en charge plus de deux cartes d’interface réseau (Standard_DS3_v2) :The following example defines a VM named myVM and uses a VM size that supports more than two NICs (Standard_DS3_v2):

    $vmConfig = New-AzVMConfig -VMName "myVM" -VMSize "Standard_DS3_v2"
    
  3. Créez le reste de la configuration de votre machine virtuelle avec les commandes Set-AzVMOperatingSystem et Set-AzVMSourceImage.Create the rest of your VM configuration with Set-AzVMOperatingSystem and Set-AzVMSourceImage. L’exemple suivant crée une machine virtuelle Windows Server 2016 R2 :The following example creates a Windows Server 2016 VM:

    $vmConfig = Set-AzVMOperatingSystem -VM $vmConfig `
        -Windows `
        -ComputerName "myVM" `
        -Credential $cred `
        -ProvisionVMAgent `
        -EnableAutoUpdate
    $vmConfig = Set-AzVMSourceImage -VM $vmConfig `
        -PublisherName "MicrosoftWindowsServer" `
        -Offer "WindowsServer" `
        -Skus "2016-Datacenter" `
        -Version "latest"
    
  4. Associez les deux cartes d’interface réseau que vous avez créées précédemment à l’aide de la commande Add-AzVMNetworkInterface :Attach the two NICs that you previously created with Add-AzVMNetworkInterface:

    $vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $myNic1.Id -Primary
    $vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $myNic2.Id
    
  5. Créez votre machine virtuelle avec New-AzVM :Create your VM with New-AzVM:

    New-AzVM -VM $vmConfig -ResourceGroupName "myResourceGroup" -Location "EastUs"
    
  6. Ajoutez des itinéraires pour les cartes réseau secondaires au système d’exploitation en suivant les étapes décrites dans Configurer le système d’exploitation pour plusieurs cartes réseau.Add routes for secondary NICs to the OS by completing the steps in Configure the operating system for multiple NICs.

Ajouter une carte réseau à une machine virtuelle existanteAdd a NIC to an existing VM

Pour ajouter une carte d’interface réseau virtuelle à une machine virtuelle existante, désallouez la machine virtuelle, ajoutez la carte d’interface réseau virtuelle, puis démarrez la machine virtuelle.To add a virtual NIC to an existing VM, you deallocate the VM, add the virtual NIC, then start the VM. Comme le nombre de cartes réseau prises en charge varie suivant la taille des machines virtuelles , pensez à dimensionner la vôtre en conséquence.Different VM sizes support a varying number of NICs, so size your VM accordingly. Si nécessaire, vous pouvez redimensionner une machine virtuelle.If needed, you can resize a VM.

  1. Libérez la machine virtuelle avec la commande Stop-AzVM.Deallocate the VM with Stop-AzVM. L’exemple suivant désalloue la machine virtuelle nommée myVM dans myResourceGroup:The following example deallocates the VM named myVM in myResourceGroup:

    Stop-AzVM -Name "myVM" -ResourceGroupName "myResourceGroup"
    
  2. Obtenez la configuration existante de la machine virtuelle avec commande Get-AzVm.Get the existing configuration of the VM with Get-AzVm. L’exemple suivant récupère des informations sur la machine virtuelle nommée myVM dans myResourceGroup :The following example gets information for the VM named myVM in myResourceGroup:

    $vm = Get-AzVm -Name "myVM" -ResourceGroupName "myResourceGroup"
    
  3. L’exemple suivant crée une carte d’interface réseau virtuelle avec la commande New-AzNetworkInterface, nommée myNic3, et associée à mySubnetBackEnd.The following example creates a virtual NIC with New-AzNetworkInterface named myNic3 that is attached to mySubnetBackEnd. La carte d’interface réseau virtuelle est ensuite associée à la machine virtuelle nommée myVM dans myResourceGroup avec la commande Add-AzVMNetworkInterface :The virtual NIC is then attached to the VM named myVM in myResourceGroup with Add-AzVMNetworkInterface:

    # Get info for the back end subnet
    $myVnet = Get-AzVirtualNetwork -Name "myVnet" -ResourceGroupName "myResourceGroup"
    $backEnd = $myVnet.Subnets|?{$_.Name -eq 'mySubnetBackEnd'}
    
    # Create a virtual NIC
    $myNic3 = New-AzNetworkInterface -ResourceGroupName "myResourceGroup" `
        -Name "myNic3" `
        -Location "EastUs" `
        -SubnetId $backEnd.Id
    
    # Get the ID of the new virtual NIC and add to VM
    $nicId = (Get-AzNetworkInterface -ResourceGroupName "myResourceGroup" -Name "MyNic3").Id
    Add-AzVMNetworkInterface -VM $vm -Id $nicId | Update-AzVm -ResourceGroupName "myResourceGroup"
    

    Cartes d’interface réseau virtuelles principalesPrimary virtual NICs

    L’une des cartes d’interface réseau sur une machine virtuelle dotées de plusieurs cartes doit être la carte principale.One of the NICs on a multi-NIC VM needs to be primary. Si l’une des cartes d’interface réseau virtuelles existantes sur la machine virtuelle est déjà définie comme principale, vous pouvez ignorer cette étape.If one of the existing virtual NICs on the VM is already set as primary, you can skip this step. L’exemple suivant suppose que deux cartes d’interface réseau virtuelles sont désormais présentes sur une machine virtuelle, et que vous souhaitez ajouter la première carte d’interface réseau ([0]) en tant que carte principale :The following example assumes that two virtual NICs are now present on a VM and you wish to add the first NIC ([0]) as the primary:

    # List existing NICs on the VM and find which one is primary
    $vm.NetworkProfile.NetworkInterfaces
    
    # Set NIC 0 to be primary
    $vm.NetworkProfile.NetworkInterfaces[0].Primary = $true
    $vm.NetworkProfile.NetworkInterfaces[1].Primary = $false
    
    # Update the VM state in Azure
    Update-AzVM -VM $vm -ResourceGroupName "myResourceGroup"
    
  4. Démarrez la machine virtuelle avec la commande Start-AzVm :Start the VM with Start-AzVm:

    Start-AzVM -ResourceGroupName "myResourceGroup" -Name "myVM"
    
  5. Ajoutez des itinéraires pour les cartes réseau secondaires au système d’exploitation en suivant les étapes décrites dans Configurer le système d’exploitation pour plusieurs cartes réseau.Add routes for secondary NICs to the OS by completing the steps in Configure the operating system for multiple NICs.

Supprimer une carte réseau d’une machine virtuelle existanteRemove a NIC from an existing VM

Pour supprimer une carte d’interface réseau virtuelle à partir d’une machine virtuelle existante, désallouez la machine virtuelle, supprimez la carte d’interface réseau virtuelle, puis démarrez la machine virtuelle.To remove a virtual NIC from an existing VM, you deallocate the VM, remove the virtual NIC, then start the VM.

  1. Libérez la machine virtuelle avec la commande Stop-AzVM.Deallocate the VM with Stop-AzVM. L’exemple suivant désalloue la machine virtuelle nommée myVM dans myResourceGroup:The following example deallocates the VM named myVM in myResourceGroup:

    Stop-AzVM -Name "myVM" -ResourceGroupName "myResourceGroup"
    
  2. Obtenez la configuration existante de la machine virtuelle avec commande Get-AzVm.Get the existing configuration of the VM with Get-AzVm. L’exemple suivant récupère des informations sur la machine virtuelle nommée myVM dans myResourceGroup :The following example gets information for the VM named myVM in myResourceGroup:

    $vm = Get-AzVm -Name "myVM" -ResourceGroupName "myResourceGroup"
    
  3. Obtenez des informations sur la suppression de la carte d’interface réseau avec la commande Get-AzNetworkInterface.Get information about the NIC remove with Get-AzNetworkInterface. L’exemple suivant obtient des informations sur la carte myNic3 :The following example gets information about myNic3:

    # List existing NICs on the VM if you need to determine NIC name
    $vm.NetworkProfile.NetworkInterfaces
    
    $nicId = (Get-AzNetworkInterface -ResourceGroupName "myResourceGroup" -Name "myNic3").Id   
    
  4. Supprimez la carte d’interface réseau avec la commande Remove-AzVMNetworkInterface, puis mettez à jour la machine virtuelle avec la commande Update-AzVm.Remove the NIC with Remove-AzVMNetworkInterface and then update the VM with Update-AzVm. L’exemple suivant supprime la carte myNic3 obtenue par $nicId à l’étape précédente :The following example removes myNic3 as obtained by $nicId in the preceding step:

    Remove-AzVMNetworkInterface -VM $vm -NetworkInterfaceIDs $nicId | `
        Update-AzVm -ResourceGroupName "myResourceGroup"
    
  5. Démarrez la machine virtuelle avec la commande Start-AzVm :Start the VM with Start-AzVm:

    Start-AzVM -Name "myVM" -ResourceGroupName "myResourceGroup"
    

Créer plusieurs cartes d’interface réseau avec des modèlesCreate multiple NICs with templates

Grâce aux modèles Azure Resource Manager, vous pouvez créer plusieurs instances d’une ressource pendant le déploiement, à l’image de la création de plusieurs cartes d’interface réseau.Azure Resource Manager templates provide a way to create multiple instances of a resource during deployment, such as creating multiple NICs. Les modèles Resource Manager utilisent des fichiers JSON déclaratifs pour définir votre environnement.Resource Manager templates use declarative JSON files to define your environment. Pour plus d’informations, voir Présentation d’Azure Resource Manager.For more information, see overview of Azure Resource Manager. Vous pouvez utiliser la commande copy pour spécifier le nombre d’instances à  :You can use copy to specify the number of instances to create:

"copy": {
    "name": "multiplenics",
    "count": "[parameters('count')]"
}

Pour plus d’informations, voir Création de plusieurs instances à l’aide de la commande copie.For more information, see creating multiple instances by using copy.

Vous pouvez également utiliser la commande copyIndex() pour ajouter un numéro à un nom de ressource.You can also use copyIndex() to append a number to a resource name. Vous pouvez ensuite créer les cartes myNic1, MyNic2 et ainsi de suite.You can then create myNic1, MyNic2 and so on. Voici un exemple de code pour l’ajout de la valeur d’index :The following code shows an example of appending the index value:

"name": "[concat('myNic', copyIndex())]", 

Vous pouvez consulter un exemple complet de la création de plusieurs cartes d’interface réseau à l’aide de modèles Resource Manager.You can read a complete example of creating multiple NICs by using Resource Manager templates.

Ajoutez des itinéraires pour les cartes réseau secondaires au système d’exploitation en suivant les étapes décrites dans Configurer le système d’exploitation pour plusieurs cartes réseau.Add routes for secondary NICs to the OS by completing the steps in Configure the operating system for multiple NICs.

Configurer plusieurs cartes réseau dans un système d’exploitation invitéConfigure guest OS for multiple NICs

Azure affecte une passerelle par défaut aux premières (principales) interfaces réseau associées à la machine virtuelle.Azure assigns a default gateway to the first (primary) network interface attached to the virtual machine. Azure n’affecte pas de passerelle par défaut aux interfaces réseau additionnelles (secondaires) associées à la machine virtuelle.Azure does not assign a default gateway to additional (secondary) network interfaces attached to a virtual machine. Par conséquent, vous ne pouvez pas communiquer avec les ressources hors du sous-réseau dans lequel se trouve, par défaut, une interface réseau secondaire.Therefore, you are unable to communicate with resources outside the subnet that a secondary network interface is in, by default. Toutefois, les interfaces réseau secondaires peuvent communiquer avec les ressources hors de leur sous-réseau. Ceci dit, les étapes à suivre pour permettre cette communication sont différentes d’un système d’exploitation à un autre.Secondary network interfaces can, however, communicate with resources outside their subnet, though the steps to enable communication are different for different operating systems.

  1. Dans une invite de commande Windows, exécutez la commande route print, qui retourne une sortie similaire à la sortie suivante d’une machine virtuelle à deux interfaces réseau :From a Windows command prompt, run the route print command, which returns output similar to the following output for a virtual machine with two attached network interfaces:

    ===========================================================================
    Interface List
    3...00 0d 3a 10 92 ce ......Microsoft Hyper-V Network Adapter #3
    7...00 0d 3a 10 9b 2a ......Microsoft Hyper-V Network Adapter #4
    ===========================================================================
    

    Dans cet exemple, Microsoft Hyper-V Network Adapter #4 (interface 7) est l’interface réseau secondaire à laquelle aucune passerelle par défaut n’est assignée.In this example, Microsoft Hyper-V Network Adapter #4 (interface 7) is the secondary network interface that doesn't have a default gateway assigned to it.

  2. Depuis une invite de commande, exécutez la commande ipconfig pour voir quelle adresse IP est assignée à l’interface réseau secondaire.From a command prompt, run the ipconfig command to see which IP address is assigned to the secondary network interface. Dans cet exemple, l’adresse 192.168.2.4 est assignée à l’interface 7.In this example, 192.168.2.4 is assigned to interface 7. Aucune adresse de passerelle par défaut n’est retournée pour l’interface réseau secondaire.No default gateway address is returned for the secondary network interface.

  3. Pour acheminer le trafic destiné aux adresses hors du sous-réseau de l’interface réseau secondaire vers la passerelle du sous-réseau, exécutez la commande suivante :To route all traffic destined for addresses outside the subnet of the secondary network interface to the gateway for the subnet, run the following command:

    route add -p 0.0.0.0 MASK 0.0.0.0 192.168.2.1 METRIC 5015 IF 7
    

    L’adresse de la passerelle du sous-réseau est la première adresse IP (celle qui finit par .1) dans la plage d’adresse définie pour le sous-réseau.The gateway address for the subnet is the first IP address (ending in .1) in the address range defined for the subnet. Si vous ne voulez pas acheminer le trafic hors du sous-réseau, vous avez la possibilité d’ajouter des itinéraires individuels vers des destinations spécifiques.If you don't want to route all traffic outside the subnet, you could add individual routes to specific destinations, instead. Par exemple, si vous voulez acheminer le trafic de l’interface réseau secondaire vers le réseau 192.168.3.0 uniquement, entrez la commande :For example, if you only wanted to route traffic from the secondary network interface to the 192.168.3.0 network, you enter the command:

    route add -p 192.168.3.0 MASK 255.255.255.0 192.168.2.1 METRIC 5015 IF 7
    
  4. Pour vérifier si la communication fonctionne avec une ressource du réseau 192.168.3.0, par exemple, entrez la commande suivante pour faire un test Ping de l’adresse 192.168.3.4 à l’aide de l’interface 7 (192.168.2.4) :To confirm successful communication with a resource on the 192.168.3.0 network, for example, enter the following command to ping 192.168.3.4 using interface 7 (192.168.2.4):

    ping 192.168.3.4 -S 192.168.2.4
    

    Vous devrez peut-être ouvrir le protocole ICMP via le pare-feu Windows de l’appareil sur lequel vous effectuez le test Ping. Exécutez cette commande :You may need to open ICMP through the Windows firewall of the device you're pinging with the following command:

    netsh advfirewall firewall add rule name=Allow-ping protocol=icmpv4 dir=in action=allow
    
  5. Pour confirmer que l’itinéraire ajouté se trouve dans la table de routage, entrez la commande route print, qui retourne une sortie similaire à ce qui suit :To confirm the added route is in the route table, enter the route print command, which returns output similar to the following text:

    ===========================================================================
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0      192.168.1.1      192.168.1.4     15
              0.0.0.0          0.0.0.0      192.168.2.1      192.168.2.4   5015
    

    L’itinéraire répertorié avec l’adresse 192.168.1.1 sous Passerelle représente l’itinéraire se trouvant là par défaut pour l’interface réseau principale.The route listed with 192.168.1.1 under Gateway, is the route that is there by default for the primary network interface. L’itinéraire avec l’adresse 192.168.2.1 sous Passerelle représente l’itinéraire que vous avez ajouté.The route with 192.168.2.1 under Gateway, is the route you added.

Étapes suivantesNext steps

Réviser les Tailles des machines virtuelles Windows lorsque vous tentez de créer une machine virtuelle équipée de plusieurs cartes d’interface réseau.Review Windows VM sizes when you're trying to create a VM that has multiple NICs. Faites attention au nombre maximal de cartes d’interface réseau pris en charge par chaque taille de machine virtuelle.Pay attention to the maximum number of NICs that each VM size supports.