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, comme décrit dans la présentation de 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éer et supprimer des instances et des modèles d'instance avec plusieurs interfaces dans un projet n'utilisant pas un environnement de VPC partagé : un utilisateur disposant du rôle de propriétaire, d'éditeur ou d'administrateur d'instances Compute (v1) peut créer une instance avec plusieurs interfaces associées à des réseaux et sous-réseaux VPC appartenant au même projet.
Créer et supprimer des instances et des modèles d'instance avec plusieurs interfaces dans des environnements de VPC partagé : un utilisateur disposant du rôle de propriétaire, d'éditeur ou d'administrateur d'instances Compute (v1) peut créer une instance avec plusieurs interfaces. Si l'une des interfaces est
associée à un sous-réseau d'un projet hôte de VPC partagé, vous devez également
disposer du
rôle d'utilisateur de réseau de Compute (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 des cartes d'interface réseau dynamiques. Pour obtenir des instructions générales sur la création d'instances, consultez 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 pour lequel une plage d'adresses IPv6
/64est configuré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./96Sélectionnez l'une des options suivantes pour le type de pile d'adresses 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ée) 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 d'alias à l' interface réseau. Pour attribuer une plage d'adresses IP d'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 ou une plage d'adresses IPv4 secondaire à utiliser.
- Dans Plage d'adresses IP d'alias, saisissez une plage d'adresses IP au format CIDR. Cette plage doit être une plage inutilisée de la plage d'adresses IP de 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é :
- Dans le champ Adresse IPv6 interne principale, sélectionnez l'une des options suivantes :
- Éphémère (automatique) pour attribuer automatiquement une nouvelle plage d'adresses IPv6 interne éphémère
- Éphémère (personnalisée) pour spécifier manuellement une nouvelle plage d'adresses IPv6 interne éphémère
- Une plage d'adresses IPv6 interne statique réservée de la liste
- Réserver une adresse IPv6 interne statique pour réserver et attribuer une nouvelle plage d'adresses IPv6 interne statique
- 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 externe éphémère
- Éphémère (personnalisée) pour spécifier manuellement une nouvelle plage d'adresses IPv6 externe éphémère
- Une plage d'adresses IPv6 externe statique réservée de la liste
- Réserver une adresse IPv6 externe statique pour réserver et attribuer une nouvelle plage d'adresses IPv6 externe statique
- Dans le champ 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 carte d'interface réseau virtuelle, cliquez sur Ajouter une interface réseau , puis remplissez le formulaire en saisissant les détails de la carte d'interface réseau virtuelle.
Pour ajouter une carte d'interface réseau dynamique, cliquez sur Ajouter une interface réseau dynamique , puis procédez comme suit :
- Dans le champ Interface réseau parente, sélectionnez la carte d'interface réseau virtuelle parente pour laquelle créer la carte d'interface réseau dynamique.
- Dans le champ ID de VLAN, saisissez l'ID de VLAN de la carte d'interface réseau dynamique.
- Remplissez le formulaire en saisissant les autres détails de la carte d'interface réseau 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
gcloud compute instances create commande.
Pour chaque interface, incluez l'option --network-interface suivie de toutes les clés réseau adéquates, telles que network, subnet, private-network-ip, address, external-ipv6-address et vlan.
L'inclusion de la clé vlan crée une carte d'interface réseau dynamique.
Si vous créez une carte d'interface réseau dynamique, vous devez également suivre les étapes
pour configurer le système d'exploitation invité pour les cartes d'interface 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: nom de l'instance à créerZONE: zone où l'instance est crééeNETWORK_A,NETWORK_B: réseau auquel l'interface est associéeSUBNET_A,SUBNET_B: sous-réseau auquel l'interface est associéeSTACK_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 pour les 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 ait 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: plage d'adresses IPv6 interne dont vous souhaitez que l'interface dispose dans le sous-réseau cible. Si aucune valeur n'est spécifiée, Google Cloud une plage d'adresses IPv6 interne est automatiquement attribuée à partir de le sous-réseau.EXTERNAL_IPV6_ADDRESS: plage d'adresses IPv6 externe dont vous souhaitez que l'interface dispose dans le sous-réseau cible. Si aucune valeur n'est spécifiée, Google Cloud une plage d'adresses IPv6 externe est automatiquement attribuée à partir de le sous-réseau.
VLAN_ID: ID de VLAN. La spécification d'un ID de VLAN configure l'interface réseau en tant que carte d'interface réseau dynamique. Vous devez placer une carte d'interface réseau dynamique après sa carte d'interface réseau virtuelle parente dans la commande.
API
Utilisez la instances.insert méthode
pour créer une instance avec plusieurs interfaces réseau.
L'inclusion du champ vlan crée une carte d'interface réseau dynamique.
Si vous créez une carte d'interface réseau dynamique, vous devez également suivre les étapes
pour configurer le système d'exploitation invité pour les cartes d'interface 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: adresses IPv4 internes que vous souhaitez attribuer à chaque interface réseau.REGION: région qui contient l'instance.SUBNET_A, SUBNET_B: sous-réseaux dans lesquels se trouve chaque interface réseau.VLAN_ID: ID de VLAN. La spécification d'un ID de VLAN configure l'interface réseau en tant que carte d'interface réseau dynamique. Vous devez placer une carte d'interface réseau dynamique après sa carte d'interface 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 dans lesquels se trouve chaque interface réseau.IPV6_ADDRESS_A, IPV6_ADDRESS_B: plage d'adresses IPv6 interne dont vous souhaitez que l'interface dispose dans le sous-réseau cible. Si aucune valeur n'est spécifiée, Google Cloud une plage d'adresses IPv6 interne est automatiquement attribuée à partir de le sous-réseau.VLAN_ID: ID de VLAN. La spécification d'un ID de VLAN configure l'interface réseau en tant que carte d'interface réseau dynamique. Vous devez placer une carte d'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 dans lesquels se trouve chaque interface réseau.IPV6_ADDRESS_A, IPV6_ADDRESS_B: plage d'adresses IPv6 interne dont vous souhaitez que l'interface dispose dans le sous-réseau cible. Si aucune valeur n'est spécifiée, Google Cloud une plage d'adresses IPv6 interne est automatiquement attribuée à partir de le sous-réseau.VLAN_ID: ID de VLAN. La spécification d'un ID de VLAN configure l'interface réseau en tant que carte d'interface réseau dynamique. Vous devez placer une carte d'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 cartes d'interface réseau dynamiques
L'exemple de commande suivant crée une instance avec les interfaces réseau suivantes :
- Une carte d'interface réseau virtuelle nommée
nic0qui est le parent des éléments suivants :- Une carte d'interface réseau dynamique nommée
nic0.2
- Une carte d'interface réseau dynamique nommée
- Une carte d'interface réseau virtuelle nommée
nic1qui est le parent des éléments suivants :- Une carte d'interface réseau dynamique nommée
nic1.4 - Une carte d'interface réseau dynamique nommée
nic1.5
- Une carte d'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 le système d'exploitation 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 associée au sous-réseausubnet-bdans le réseaunet2, avec une adresse IPv4 interne10.10.20.2et aucune adresse IP externe.
Pour obtenir une description complète de la gcloud compute instances create
commande 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.
Configurer 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 associée au sous-réseauint-subnetdans le réseaudual-int, avec une adresse IPv4 interne éphémère et une plage d'adresses IPv6 interne éphémère.nic1est associée au sous-réseauext-subnetdans le réseaudual-ext, avec une adresse IPv4 interne éphémère et une plage d'adresses IPv6 externe éphémère.
Configurer plusieurs interfaces réseau avec uniquement des adresses IPv6
L'exemple de commande suivant 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 associée au sous-réseauint-subnet-adans le réseauipv6-only-int-a, avec une adresse IPv6 interne éphémère allouée automatiquement.nic1est associée 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 associée au sous-réseauext-subnetdans le réseauipv6-only-ext, avec une plage d'adresses IPv6 externe statiqueEXTERNAL_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.
Pour les groupes d'instances non gérés,
créez chaque instance individuellement,
en veillant à ce que l'interface réseau nic0 de chaque instance soit associée au même
sous-réseau. Ajoutez ensuite les instances au groupe d'instances non géré.
Pour configurer plusieurs interfaces réseau pour
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 de l'option --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.
Étape suivante
- Configurer le routage pour une interface supplémentaire
- Ajouter des cartes d'interface réseau dynamiques à une instance
- Afficher les interfaces réseau d'une instance
- Mettre à jour les interfaces réseau d'une instance
- Supprimer des cartes d'interface réseau dynamiques d'une instance