Créer des VM avec plusieurs interfaces réseau
Cette page explique comment créer des instances de VM avec plusieurs interfaces réseau.
Avant de commencer
Avant de commencer, assurez-vous de connaître les caractéristiques des instances avec plusieurs interfaces réseau décrites dans la présentation des configurations utilisant plusieurs interfaces réseau.
Rôles IAM
Pour créer une instance avec plusieurs interfaces réseau, vous devez posséder l'un des rôles suivants :
- Rôle de propriétaire ou d'éditeur du projet
- Rôle d'administrateur d'instances Compute (v1) (
roles/compute.instanceAdmin.v1)
Création et suppression d'instances et de modèles d'instance avec plusieurs interfaces dans un projet n'utilisant pas un environnement VPC partagé : Un utilisateur disposant du rôle Propriétaire, Éditeur ou Administrateur d'instances Compute (v1) peut créer une instance avec plusieurs interfaces associées à des réseaux et sous-réseaux VPC qui font partie de ce même projet.
Création et suppression d'instances et de modèles d'instances avec plusieurs interfaces dans les environnements VPC partagés : Un utilisateur ayant le rôle Propriétaire, Éditeur ou Administrateur d'instances Compute (v1) peut créer une instance avec plusieurs interfaces. Si l'une des interfaces est attachée à un sous-réseau dans un projet hôte VPC partagé, vous devez également disposer du rôle Utilisateur du réseau de calcul (roles/compute.networkUser) pour l'ensemble du projet hôte ou pour les sous-réseaux que vous devez utiliser.
Pour en savoir plus sur les autorisations, consultez la documentation IAM de Compute Engine.
Créer des instances de VM avec plusieurs interfaces réseau
Cette section explique comment créer une instance avec plusieurs interfaces réseau, y compris des cartes d'interface réseau virtuelles et dynamiques. Pour des instructions générales sur la création d'instances, voir Créer et démarrer une instance de VM.
La première interface créée est toujours nic0, et il s'agit toujours de l'interface par défaut.
Console
Accédez à la page Créer une instance dans la console Google Cloud .
Dans le volet Configuration de la machine, procédez comme suit :
- Dans le champ Nom, saisissez un nom pour l'instance.
- Dans le champ Région, sélectionnez une région.
- Dans le champ Zone, sélectionnez une zone.
Dans le menu de navigation, cliquez sur Mise en réseau pour afficher le volet Mise en réseau.
Dans la section Interfaces réseau, développez une interface réseau pour la modifier.
Dans les champs Réseau et Sous-réseau, sélectionnez le réseau et le sous-réseau que vous souhaitez utiliser.
Si vous souhaitez configurer des adresses IPv6 sur l'interface, sélectionnez un sous-réseau qui a une plage d'adresses IPv6
/64configurée. Le type d'accès IPv6 du sous-réseau détermine si l'instance reçoit une plage d'adresses IPv6/96interne ou externe/96.Sélectionnez l'une des options suivantes pour le type de pile IP de l'interface :
- IPv4 (pile unique)
- IPv4 et IPv6 (double pile)
- IPv6 (pile unique)
Pour les interfaces avec des adresses IPv4, procédez comme suit :
Dans le champ Adresse IPv4 interne principale, sélectionnez l'une des options suivantes :
- Éphémère (automatique) pour attribuer automatiquement une nouvelle adresse IPv4 éphémère
- Éphémère (Personnalisé) pour spécifier manuellement une nouvelle adresse IPv4 éphémère
- Une adresse IPv4 interne statique réservée de la liste
- Réserver une adresse IPv4 interne statique pour réserver et attribuer une nouvelle adresse IPv4 interne statique
Dans le champ Adresse IPv4 externe, sélectionnez l'une des options suivantes :
- Éphémère pour attribuer une nouvelle adresse IPv4 éphémère
- Aucune pour ne pas attribuer d'adresse IPv4 externe
- Une adresse IPv4 statique réservée dans la liste
- Réserver une adresse IP externe statique pour réserver et attribuer une nouvelle adresse IP externe statique
Vous pouvez éventuellement attribuer une ou plusieurs plages d'adresses IP alias à l'interface réseau. Pour attribuer une plage d'adresses IP alias, procédez comme suit :
- Dans Plages d'adresses IP d'alias, cliquez sur Ajouter une plage d'adresses IP.
- Dans Plage de sous-réseau, sélectionnez une plage d'adresses IPv4 principale de sous-réseau ou une plage d'adresses IPv4 secondaire de sous-réseau à utiliser.
- Pour Plage d'adresses IP d'alias, saisissez une plage d'adresses IP au format CIDR. Cette plage doit correspondre à une plage inutilisée de la plage d'adresses IP du sous-réseau que vous avez sélectionnée.
Pour en savoir plus sur l'attribution de plages d'adresses IP d'alias aux interfaces réseau de VM, consultez Configurer des plages d'adresses IP d'alias.
Pour les interfaces avec des adresses IPv6, procédez comme suit, en fonction du type d'accès du sous-réseau connecté :
- Pour Adresse IPv6 interne principale, sélectionnez l'une des options suivantes :
- Éphémère (automatique) pour attribuer automatiquement une nouvelle plage d'adresses IPv6 internes éphémères
- Éphémère (Personnalisé) pour spécifier manuellement une nouvelle plage d'adresses IPv6 internes éphémères
- Une plage d'adresses IPv6 internes statiques réservées de la liste
- Réserver une adresse IPv6 interne statique pour réserver et attribuer une nouvelle plage d'adresses IPv6 internes statiques
- Dans le champ Adresse IPv6 externe, sélectionnez l'une des options suivantes :
- Éphémère (Automatique) pour attribuer automatiquement une nouvelle plage d'adresses IPv6 externes éphémères
- Éphémère (Personnalisé) pour spécifier manuellement une nouvelle plage d'adresses IPv6 externes éphémères
- Une plage d'adresses IPv6 externes statiques réservée dans la liste
- Réserver une adresse IPv6 externe statique pour réserver et attribuer une nouvelle plage d'adresses IPv6 externes statiques
- Pour Adresse IPv6 interne principale, sélectionnez l'une des options suivantes :
Pour terminer la modification de l'interface réseau, cliquez sur OK.
Pour ajouter une autre interface réseau :
Pour ajouter une vNIC, cliquez sur Ajouter une interface réseau et remplissez le formulaire en saisissant les détails de la vNIC.
Pour ajouter une interface réseau dynamique, cliquez sur Ajouter une interface réseau dynamique et procédez comme suit :
- Dans le champ Interface réseau parent, sélectionnez la vNIC parente pour laquelle créer l'interface réseau dynamique.
- Dans le champ ID VLAN, entrez l'ID VLAN de l'interface réseau dynamique.
- Remplissez le formulaire en saisissant les informations restantes concernant la carte d'identité dynamique.
Continuez le processus de création de l'instance.
Cliquez sur Créer.
gcloud
Pour créer des interfaces réseau sur une nouvelle instance, utilisez la commande gcloud compute instances create.
Incluez le drapeau --network-interface pour chaque interface, suivi des clés de réseau appropriées, telles que network, subnet, private-network-ip, address, external-ipv6-address et vlan.
L'inclusion de la clé vlan crée une interface réseau dynamique.
Si vous créez une interface réseau dynamique, vous devez également suivre les étapes de configuration de l'OS invité pour les interfaces réseau dynamiques après avoir créé l'instance.
Pour consulter des exemples de création d'instances avec plusieurs interfaces, consultez la section Exemples de configurations.
Cet extrait n'illustre que l'option --network-interface, qui n'est que l'un des nombreux paramètres que vous pouvez renseigner lorsque vous créez une instance.
gcloud compute instances create INSTANCE_NAME \
--zone ZONE \
--network-interface \
network=NETWORK_A,subnet=SUBNET_A, \
stack-type=STACK_TYPE, \
private-network-ip=INTERNAL_IPV4_ADDRESS, \
address=EXTERNAL_IPV4_ADDRESS | no-address, \
internal-ipv6-address=INTERNAL_IPV6_ADDRESS \
...
--network-interface \
network=NETWORK_B,subnet=SUBNET_B, \
stack-type=STACK_TYPE, \
external-ipv6-address=EXTERNAL_IPV6_ADDRESS, \
external-ipv6-prefix-length=96, \
ipv6-network-tier=PREMIUM, \
vlan=VLAN_ID \
...
Remplacez les éléments suivants :
INSTANCE_NAME: le nom de l'instance à créer.ZONE: zone où l'instance est crééeNETWORK_A,NETWORK_B: le réseau auquel l'interface se connecte.SUBNET_A,SUBNET_B: sous-réseau auquel l'interface est associée.STACK_TYPE: type de pile pour l'interface.La valeur par défaut est
IPV4_ONLY. SpécifiezIPV4_IPV6pour configurer une interface à double pile ouIPV6_ONLYpour configurer une interface IPv6 uniquement.Valeurs des interfaces avec des adresses IPv4 :
INTERNAL_IPV4_ADDRESS: adresse IPv4 interne dont vous souhaitez que l'interface dispose dans le sous-réseau cible. Omettez si vous souhaitez simplement attribuer une adresse valide.EXTERNAL_IPV4_ADDRESS: adresse IPv4 externe de l'interface.Vous devez avoir réservé une adresse IPv4 externe auparavant. Si vous ne souhaitez pas que l'interface possède une adresse IP externe, spécifiez « no-address » au lieu de
address=EXTERNAL_IPV4_ADDRESS. Si vous souhaitez que l'interface reçoive une adresse IP externe éphémère, spécifiezaddress=''.
Valeurs pour les interfaces avec des adresses IPv6 :
INTERNAL_IPV6_ADDRESS: la plage d'adresses IPv6 internes que vous souhaitez que l'interface ait dans le sous-réseau cible. Si non spécifié,Google Cloud attribue automatiquement une plage d'adresses IPv6 internes du sous-réseau.EXTERNAL_IPV6_ADDRESS: plage d'adresses IPv6 externes dont vous souhaitez que l'interface dispose dans le sous-réseau cible. Si non spécifié,Google Cloud attribue automatiquement une plage d'adresses IPv6 externes du sous-réseau.
VLAN_ID: ID de VLAN. Spécifier un ID de VLAN configure l'interface réseau en tant qu'interface réseau dynamique. Vous devez placer une interface réseau dynamique après sa carte d'interface réseau virtuelle parente dans la commande.
API
Utilisez la méthode instances.insert pour créer une instance avec plusieurs interfaces réseau.
L'inclusion du champ vlan crée une interface réseau dynamique.
Si vous créez une interface réseau dynamique, vous devez également suivre les étapes de configuration de l'OS invité pour les interfaces réseau dynamiques après avoir créé l'instance.
Consultez les exemples suivants :
Pour créer une instance avec uniquement des adresses IPv4 internes, procédez comme suit :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { .... "networkInterfaces": [ { "networkIP": "IPV4_ADDRESS_A", "subnetwork": "regions/REGION/subnetworks/SUBNET_A" }, { "networkIP": "IPV4_ADDRESS_B", "subnetwork": "regions/REGION/subnetworks/SUBNET_B", "vlan": "VLAN_ID" }, for each interface, specify a network... ], other instance settings... }Remplacez les éléments suivants :
PROJECT_ID: identifiant du projet contenant l'instance.ZONE: zone dans laquelle se trouve l'instance.IPV4_ADDRESS_A,IPV4_ADDRESS_B: les adresses IPv4 internes que vous souhaitez attribuer à chaque interface réseau.REGION: région qui contient l'instance.SUBNET_A, SUBNET_B: les sous-réseaux où se trouve chaque interface réseau.VLAN_ID: un ID de VLAN. Spécifier un ID de VLAN configure l'interface réseau en tant qu'interface réseau dynamique. Vous devez placer une interface réseau dynamique après sa carte réseau virtuelle parente dans la requête.
Pour créer une instance avec des adresses IPv4 et IPv6 internes, procédez comme suit :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { .... "networkInterfaces": [ { "subnetwork": "regions/REGION/subnetworks/SUBNET_A", "ipv6Address": "IPV6_ADDRESS_A", "internalIpv6PrefixLength": 96, "stackType": IPV4_IPV6, "ipv6AccessType": INTERNAL }, { "subnetwork": "regions/REGION/subnetworks/SUBNET_B", "ipv6Address": "IPV6_ADDRESS_B", "internalIpv6PrefixLength": 96, "stackType": IPV4_IPV6, "ipv6AccessType": INTERNAL, "vlan": "VLAN_ID" }, for each interface, specify a network... ], other instance settings... }Remplacez les éléments suivants :
PROJECT_ID: identifiant du projet contenant l'instance.ZONE: zone dans laquelle se trouve l'instance.REGION: région qui contient l'instance.SUBNET_A, SUBNET_B: sous-réseaux où se trouve chaque interface réseau.IPV6_ADDRESS_A, IPV6_ADDRESS_B: la plage d'adresses IPv6 internes que vous souhaitez que l'interface ait dans le sous-réseau cible. Si non spécifié,Google Cloud attribue automatiquement une plage d'adresses IPv6 internes du sous-réseau.VLAN_ID: un ID de VLAN. Spécifier un ID de VLAN configure l'interface réseau en tant qu'interface réseau dynamique. Vous devez placer une interface réseau dynamique après sa carte d'interface réseau virtuelle parente.
Pour créer une instance avec uniquement des adresses IPv6 internes, procédez comme suit :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { .... "networkInterfaces": [ { "subnetwork": "regions/REGION/subnetworks/SUBNET_A", "ipv6Address": "IPV6_ADDRESS_A", "internalIpv6PrefixLength": 96, "stackType": IPV6_ONLY, "ipv6AccessType": INTERNAL }, { "subnetwork": "regions/REGION/subnetworks/SUBNET_B", "ipv6Address": "IPV6_ADDRESS_B", "internalIpv6PrefixLength": 96, "stackType": IPV6_ONLY, "ipv6AccessType": INTERNAL, "vlan": "VLAN_ID" }, for each interface, specify a network... ], other instance settings... }Remplacez les éléments suivants :
PROJECT_ID: identifiant du projet contenant l'instance.ZONE: zone dans laquelle se trouve l'instance.REGION: région qui contient l'instance.SUBNET_A, SUBNET_B: sous-réseaux où se trouve chaque interface réseau.IPV6_ADDRESS_A, IPV6_ADDRESS_B: la plage d'adresses IPv6 internes que vous souhaitez que l'interface ait dans le sous-réseau cible. Si aucune valeur n'est spécifiée,Google Cloud attribue automatiquement une plage d'adresses IPv6 internes à partir du sous-réseau.VLAN_ID: ID de VLAN. Spécifier un ID de VLAN configure l'interface réseau en tant qu'interface réseau dynamique. Vous devez placer une interface réseau dynamique après sa carte d'interface réseau virtuelle parente.
Terraform
Vous pouvez utiliser une ressource Terraform pour créer une instance avec plusieurs interfaces réseau.
Les arguments Terraform comportent des exemples de valeurs que vous pouvez modifier.
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.
Exemples de configurations
Les sections suivantes expliquent comment créer des instances avec plusieurs interfaces.
Configurer plusieurs cartes d'interface réseau virtuelles et dynamiques
La commande d'exemple suivante crée une instance avec les interfaces réseau suivantes :
- Une vNIC nommée
nic0qui est le parent de ce qui suit :- Une interface réseau dynamique nommée
nic0.2
- Une interface réseau dynamique nommée
- Une vNIC nommée
nic1qui est le parent de ce qui suit :- Une interface réseau dynamique nommée
nic1.4 - Une interface réseau dynamique nommée
nic1.5
- Une interface réseau dynamique nommée
gcloud compute instances create vm1 \
--zone zone-a \
--network-interface=network=network-a,subnet=subnet-a \
--network-interface=network=network-b,subnet=subnet-b,vlan=2 \
--network-interface=network=network-c,subnet=subnet-c \
--network-interface=network=network-d,subnet=subnet-d,vlan=4 \
--network-interface=network=network-e,subnet=subnet-e,vlan=5
Après avoir créé une instance avec des cartes d'interface réseau dynamiques, vous devez également configurer l'OS invité pour les cartes d'interface réseau dynamiques.
Configurer plusieurs interfaces réseau avec uniquement des adresses IPv4
L'exemple de commande suivant crée une instance avec trois interfaces réseau.
gcloud compute instances create vm1 --machine-type=n1-standard-4 \
--network-interface '' \
--network-interface network=net1,subnet=subnet-a,private-network-ip=10.10.10.2,address=EXTERNAL_IPV4_ADDRESS \
--network-interface network=net2,subnet=subnet-b,private-network-ip=10.10.20.2,no-address
Les interfaces sont créées avec les caractéristiques suivantes :
nic0est créée avec les paramètres par défaut. L'interface est associée à un sous-réseau du réseau VPC par défaut, avec une adresse IP interne allouée automatiquement et une adresse IP externe éphémère.nic1est associée au sous-réseausubnet-adans le réseaunet1, avec une adresse IPv4 interne10.10.10.2et une adresse IPv4 externe statiqueEXTERNAL_IPV4_ADDRESS.nic2est rattaché au sous-réseausubnet-bdans le réseaunet2, avec une adresse IPv4 interne de10.10.20.2et aucune adresse IP externe.
Pour obtenir une description complète de la commande gcloud compute instances create et de l'option --network-interface, consultez la documentation sur la commande.
Vous pouvez utiliser l'adresse IP de l'interface réseau que vous avez ajoutée pour configurer le transfert DNS. Pour en savoir plus sur la configuration des zones de transfert Cloud DNS, consultez la page Zones de transfert.
Configurez plusieurs interfaces réseau avec des adresses IPv4 et IPv6.
L'exemple de commande suivant crée une instance à double pile avec deux interfaces réseau.
gcloud compute instances create vm1 \
--network-interface network=dual-int,subnet=int-subnet,stack-type=IPV4_IPV6 \
--network-interface network=dual-ext,subnet=ext-subnet,stack-type=IPV4_IPV6,ipv6-network-tier=PREMIUM \
--machine-type=n1-standard-4 --zone=ZONE_A
Les interfaces sont créées avec les caractéristiques suivantes :
nic0est rattaché au sous-réseauint-subnetdans le réseaudual-int, avec une adresse IPv4 interne éphémère et une plage d'adresses IPv6 internes éphémères.nic1est rattaché au sous-réseauext-subnetdans le réseaudual-ext, avec une adresse IPv4 interne éphémère et une plage d'adresses IPv6 externes éphémères.
Configurez plusieurs interfaces réseau avec uniquement des adresses IPv6.
La commande d'exemple suivante crée une instance IPv6 uniquement avec trois interfaces réseau.
gcloud compute instances create vm1 \
--network-interface network=ipv6-only-int-a,subnet=int-subnet-a,stack-type=IPV6_ONLY \
--network-interface network=ipv6-only-int-b,subnet=int-subnet-b,stack-type=IPV6_ONLY,internal-ipv6-address=fd20:db8:0:0:1:0:: \
--network-interface network=ipv6-only-ext,subnet=ext-subnet,stack-type=IPV6_ONLY,ipv6-network-tier=PREMIUM,external-ipv6-address=EXTERNAL_IPV6_ADDRESS \
--machine-type=n1-standard-4 --zone=us-west2-a
Les interfaces sont créées avec les caractéristiques suivantes :
nic0est rattaché au sous-réseauint-subnet-adans le réseauipv6-only-int-a, avec une adresse IPv6 interne éphémère attribuée automatiquement.nic1est rattaché au sous-réseauint-subnet-bdans le réseauipv6-only-int-b, avec une plage d'adresses IPv6 interne éphémère personnaliséefd20:db8:0:0:1:0::/96.nic2est rattaché au sous-réseauext-subnetdans le réseauipv6-only-ext, avec une plage d'adresses IPv6 externes statiques,EXTERNAL_IPV6_ADDRESS.
Configurer plusieurs interfaces réseau pour des groupes d'instances
Vous pouvez utiliser des instances avec plusieurs interfaces réseau dans des groupes d'instances gérés et non gérés.
Pourgroupes d'instances non gérés ,créer chaque instance individuellement , en veillant à ce que lenic0 L'interface réseau de chaque instance est rattachée au même sous-réseau. Ensuite, ajoutez les instances au groupe d'instances non gérées.
Pour configurer plusieurs interfaces réseau dans des groupes d'instances gérés, vous devez spécifier la configuration réseau de chaque interface dans le modèle d'instance, en définissant l'option --network-interface une fois pour chaque interface.
L'exemple suivant permet de créer un modèle d'instance avec trois interfaces réseau :
gcloud compute instance-templates create template-1 \
--network-interface subnet=net0-subnet-a \
--network-interface subnet=net1-subnet-b,no-address \
--network-interface subnet=net2-subnet-c,no-address \
--region REGION_A
Étant donné que les noms de sous-réseau de chaque région d'un projet doivent être uniques, la spécification de sous-réseaux par nom associe implicitement chaque interface à un réseau VPC. Dans cet exemple, chaque interface utilise un sous-réseau qui se trouve dans un réseau VPC unique :
nic0utilise le sous-réseaunet0-subnet-a.nic1utilise le sous-réseaunet1-subnet-b.nic2utilise le sous-réseaunet2-subnet-c.
L'option no-address dans l'indicateur --network-interface indique que l'interface est configurée sans adresse IPv4 externe. L'adresse IP interne provient du sous-réseau utilisé par l'interface. Pour obtenir des informations complètes sur les options et la syntaxe, consultez la section sur l'option --network-interface pour la commande instance-templates create.
Étapes suivantes
- Configurer le routage pour une interface supplémentaire
- Ajouter des cartes réseau dynamiques à une instance
- Afficher les interfaces réseau d'une instance
- Mettre à jour les interfaces réseau d'une instance
- Supprimer les cartes réseau dynamiques d'une instance