Guide de création d’une machine virtuelle Linux dans Azure avec plusieurs cartes d’interface réseau

S’applique à : ✔️ Machines virtuelles Linux ✔️ Groupes identiques flexibles

Cet article explique comment créer une machine virtuelle avec plusieurs cartes réseau à l’aide de l’interface Azure CLI.

Créer des ressources de support

Installez la dernière version d’Azure CLI et connectez-vous à un compte Azure avec az login.

Dans les exemples suivants, remplacez les exemples de noms de paramètre par vos propres valeurs. Les noms de paramètre sont par exemple myResourceGroup, mystorageaccount et myVM.

Tout d’abord, créez un groupe de ressources avec la commande az group create. L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement eastus :

az group create --name myResourceGroup --location eastus

Créez le réseau virtuel avec la commande az network vnet create. L’exemple suivant permet de créer un réseau virtuel nommé myVnet et un sous-réseau nommé mySubnetFrontEnd :

az network vnet create \
    --resource-group myResourceGroup \
    --name myVnet \
    --address-prefix 10.0.0.0/16 \
    --subnet-name mySubnetFrontEnd \
    --subnet-prefix 10.0.1.0/24

Créez un sous-réseau pour le trafic principal avec la commande az network vnet subnet create. L’exemple suivant permet de créer un sous-réseau nommé mySubnetBackEnd :

az network vnet subnet create \
    --resource-group myResourceGroup \
    --vnet-name myVnet \
    --name mySubnetBackEnd \
    --address-prefix 10.0.2.0/24

Créez un groupe de sécurité réseau avec la commande az network nsg create. L’exemple suivant crée un groupe de sécurité réseau nommé myNetworkSecurityGroup :

az network nsg create \
    --resource-group myResourceGroup \
    --name myNetworkSecurityGroup

Créer et configurer plusieurs cartes réseau

Créez deux cartes réseau avec la commande az network nic create. L’exemple suivant crée deux cartes réseau, nommées myNic1 et myNic2, connectées au groupe de sécurité réseau et avec une carte réseau se connectant à chaque sous-réseau :

az network nic create \
    --resource-group myResourceGroup \
    --name myNic1 \
    --vnet-name myVnet \
    --subnet mySubnetFrontEnd \
    --network-security-group myNetworkSecurityGroup
az network nic create \
    --resource-group myResourceGroup \
    --name myNic2 \
    --vnet-name myVnet \
    --subnet mySubnetBackEnd \
    --network-security-group myNetworkSecurityGroup

Créer une machine virtuelle et attacher les cartes réseau

Lorsque vous créez la machine virtuelle, spécifiez les cartes réseau que vous avez créées avec --nics. Vous devez également faire attention en définissant la taille de la machine virtuelle. Il existe des limites pour le nombre maximal de cartes réseau que vous pouvez ajouter à une machine virtuelle. En savoir plus sur les tailles des machines virtuelles Linux.

Créez une machine virtuelle avec la commande az vm create. L’exemple suivant crée une machine virtuelle nommée myVM :

az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --image Ubuntu2204 \
    --size Standard_DS3_v2 \
    --admin-username azureuser \
    --generate-ssh-keys \
    --nics myNic1 myNic2

Ajoutez des tables de routage au SE invité en suivant la procédure décrite dans Configurer plusieurs cartes réseau dans un système d’exploitation invité.

Ajout d’une carte réseau à une machine virtuelle existante

Les étapes précédentes ont permis de créer une machine virtuelle avec plusieurs cartes réseau. Vous pouvez également ajouter des cartes réseau à une machine virtuelle existante avec l’interface Azure CLI. 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. Si nécessaire, vous pouvez redimensionner une machine virtuelle.

Créez une autre carte réseau avec az network nic create. L’exemple suivant crée une carte réseau nommée myNic3 connectée au sous-réseau principal et au groupe de sécurité réseau créés lors des étapes précédentes :

az network nic create \
    --resource-group myResourceGroup \
    --name myNic3 \
    --vnet-name myVnet \
    --subnet mySubnetBackEnd \
    --network-security-group myNetworkSecurityGroup

Pour ajouter une carte réseau à une machine virtuelle existante, libérez d’abord la machine virtuelle avec az vm deallocate. L’exemple suivant libère la machine virtuelle nommée myVM :

az vm deallocate --resource-group myResourceGroup --name myVM

Ajoutez la carte réseau avec az vm nic add. L’exemple suivant ajoute myNic3 à myVM :

az vm nic add \
    --resource-group myResourceGroup \
    --vm-name myVM \
    --nics myNic3

Démarrez la machine virtuelle avec az vm start :

az vm start --resource-group myResourceGroup --name myVM

Ajoutez des tables de routage au SE invité en suivant la procédure décrite dans Configurer plusieurs cartes réseau dans un système d’exploitation invité.

Suppression d’une carte réseau d’une machine virtuelle

Pour supprimer une carte réseau d’une machine virtuelle existante, libérez d’abord la machine virtuelle avec az vm deallocate. L’exemple suivant libère la machine virtuelle nommée myVM :

az vm deallocate --resource-group myResourceGroup --name myVM

Supprimez la carte réseau avec az vm nic remove. L’exemple suivant supprime myNic3 de myVM :

az vm nic remove \
    --resource-group myResourceGroup \
    --vm-name myVM \
    --nics myNic3

Démarrez la machine virtuelle avec az vm start :

az vm start --resource-group myResourceGroup --name myVM

Créer plusieurs cartes réseau à l’aide de modèles Resource Manager

Les modèles Azure Resource Manager utilisent des fichiers JSON déclaratifs pour définir votre environnement. Vous pouvez consulter une vue d’ensemble d’Azure Resource Manager. Grâce aux modèles Resource Manager, vous pouvez créer plusieurs instances d’une ressource pendant le déploiement, à l’image de la création de plusieurs cartes réseau. Utilisez copy pour spécifier le nombre d’instances à créer :

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

En savoir plus sur la création de plusieurs instances à l’aide de copy.

Vous pouvez également utiliser copyIndex() pour ajouter ensuite un numéro à un nom de ressource permettant de créer myNic1, myNic2, etc. Voici un exemple d’ajout de la valeur d’index :

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

Vous pouvez consulter un exemple complet de la création de plusieurs cartes réseau à l’aide de modèles Resource Manager.

Ajoutez des tables de routage au SE invité en suivant la procédure décrite dans Configurer plusieurs cartes réseau dans un système d’exploitation invité.

Configurer plusieurs cartes réseau dans un système d’exploitation invité

Les étapes précédentes ont permis de créer un réseau virtuel et un sous-réseau, de joindre des cartes réseau, puis de créer une machine virtuelle. Aucune adresse IP publique ni règle de groupe de sécurité réseau qui autorise le trafic SSH n’a été créée. Afin de configurer le système d’exploitation invité pour plusieurs cartes réseau, vous devez autoriser les connexions à distance et exécuter les commandes localement sur la machine virtuelle.

Pour autoriser le trafic SSH, créez une règle de groupe de sécurité réseau avec az network nsg rule create comme suit :

az network nsg rule create \
    --resource-group myResourceGroup \
    --nsg-name myNetworkSecurityGroup \
    --name allow_ssh \
    --priority 101 \
    --destination-port-ranges 22

Créez une adresse IP publique avec az network public-ip create et affectez-la à la première carte réseau avec az network nic ip-config update :

az network public-ip create --resource-group myResourceGroup --name myPublicIP

az network nic ip-config update \
    --resource-group myResourceGroup \
    --nic-name myNic1 \
    --name ipconfig1 \
    --public-ip myPublicIP

Pour voir l’adresse IP publique de la machine virtuelle, utilisez az vm show comme suit :

az vm show --resource-group myResourceGroup --name myVM -d --query publicIps -o tsv

Établissez maintenant la connexion SSH à l’adresse IP publique de votre machine virtuelle. Le nom d’utilisateur par défaut fourni lors d’une étape précédente était azureuser. Indiquez vos propres nom d’utilisateur et adresse IP publique :

ssh azureuser@137.117.58.232

Pour effectuer un envoi vers ou depuis une interface réseau secondaire, vous devez ajouter manuellement des itinéraires persistants au système d’exploitation pour chaque interface réseau secondaire. Dans cet article, eth1 représente l’interface secondaire. Les instructions pour l’ajout d’itinéraires persistants au système d’exploitation varient selon la distribution. Consultez la documentation de votre distribution pour obtenir des instructions.

Lors de l’ajout de l’itinéraire au système d’exploitation, l’adresse de la passerelle est la première adresse du sous-réseau dans lequel se trouve l’interface réseau. Par exemple, si la plage 10.0.2.0/24est attribuée au sous-réseau, la passerelle que vous spécifiez pour l’itinéraire est 10.0.2.1. De même, si la plage 10.0.2.128/25a été attribuée au sous-réseau, la passerelle que vous spécifiez pour l’itinéraire est 10.0.2.129. Vous pouvez définir un réseau spécifique pour la destination de l’itinéraire ou spécifier la destination 0.0.0.0 si vous voulez que tout le trafic pour l’interface passe par la passerelle spécifiée. La passerelle pour chaque sous-réseau est gérée par le réseau virtuel.

Une fois que vous avez ajouté l’itinéraire pour une interface secondaire, vérifiez que l’itinéraire est dans votre table de routage avec route -n. L’exemple de sortie suivant concerne la table de routage qui contient les deux interfaces réseau ajoutées à la machine virtuelle dans cet article :

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.1.1        0.0.0.0         UG    0      0        0 eth0
0.0.0.0         10.0.2.1        0.0.0.0         UG    0      0        0 eth1
10.0.1.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 eth1
168.63.129.16   10.0.1.1        255.255.255.255 UGH   0      0        0 eth0
169.254.169.254 10.0.1.1        255.255.255.255 UGH   0      0        0 eth0

Confirmez que l’itinéraire que vous avez ajouté est conservé entre les redémarrages en vérifiant à nouveau votre table de routage après un redémarrage. Pour tester la connectivité, vous pouvez par exemple entrer la commande suivante, où eth1 est le nom d’une interface réseau secondaire :

ping bing.com -c 4 -I eth1

Étapes suivantes

Vérifiez les tailles des machines virtuelles Linux si vous créez une machine virtuelle avec plusieurs cartes réseau. Faites attention au nombre maximal de cartes réseau pris en charge par chaque taille de machine virtuelle.

Pour sécuriser davantage vos machines virtuelles, utilisez l’accès aux machines virtuelles juste-à-temps. Cette fonctionnalité ouvre les règles de groupe de sécurité réseau pour le trafic SSH en cas de besoin et pour une période de temps définie. Pour plus d’informations, consultez Gérer l’accès Juste à temps à la machine virtuelle.