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, assurez-vous de connaître les caractéristiques des instances avec plusieurs interfaces réseau, comme décrit dans la section 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éer et supprimer des instances et des modèles d'instance avec plusieurs interfaces dans un projet qui n'utilise pas d'environnement 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 qui font partie du 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 vNIC et des NIC dynamiques. Pour obtenir des instructions générales sur la création d'instances, consultez la page 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
Dans la console Google Cloud , accédez à la page Créer une instance.
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 la section Options avancées, développez Mise en réseau, puis procédez comme suit :
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 est configurée. Le type d'accès IPv6 du sous-réseau détermine si l'instance reçoit une adresse IPv6 interne ou externe.
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) (preview)
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
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 adresse IPv6 interne éphémère
- Éphémère (personnalisé) pour spécifier manuellement une nouvelle adresse IPv6 interne éphémère
- Une adresse IPv6 interne statique réservée de la liste
- Réserver une adresse IPv6 interne statique pour réserver et attribuer une nouvelle adresse IPv6 interne statique
- Dans le champ Adresse IPv6 externe, sélectionnez l'une des options suivantes :
- Allouer automatiquement pour attribuer automatiquement une nouvelle adresse IPv6 externe éphémère
- Une adresse IPv6 externe statique réservée de la liste
- Réserver une adresse IPv6 externe statique pour réserver et attribuer une nouvelle adresse 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, cliquez sur Ajouter une interface réseau.
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
.
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 réseau dynamique.
Si vous créez une carte d'interface réseau dynamique, vous devez également suivre la procédure de configuration de l'OS 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 les 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éer.ZONE
: zone où l'instance est crééeNETWORK_A
,NETWORK_B
: réseau auquel l'interface est associée.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_IPV6
pour configurer une interface à double pile ouIPV6_ONLY
pour configurer une interface IPv6 uniquement (Preview).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
: adresse 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 attribue automatiquement une adresse IPv6 interne à partir du sous-réseau.EXTERNAL_IPV6_ADDRESS
: adresse 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 attribue automatiquement une adresse IPv6 externe à partir du sous-réseau.
VLAN_ID
: ID de VLAN. Spécifier un ID de VLAN configure l'interface réseau en tant que NIC dynamique. Vous devez placer une carte réseau dynamique après sa carte vNIC 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 carte réseau dynamique.
Si vous créez une carte d'interface réseau dynamique, vous devez également suivre la procédure de configuration de l'OS 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 où se trouve chaque interface réseau.VLAN_ID
: ID de VLAN. Spécifier un ID de VLAN configure l'interface réseau en tant que NIC dynamique. Vous devez placer une 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 où se trouve chaque interface réseau.IPV6_ADDRESS_A, IPV6_ADDRESS_B
: adresse 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 attribue automatiquement une adresse IPv6 interne à partir du sous-réseau.VLAN_ID
: ID de VLAN. Spécifier un ID de VLAN configure l'interface réseau en tant que NIC 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 (Preview, Aperçu), procédez comme suit :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { .... "networkInterfaces": [ { "subnetwork": "regions/REGION/subnetworks/SUBNET" "ipv6Address": "IPV6_ADDRESS", "internalIpv6PrefixLength": 96, "stackType": IPV6_ONLY, "ipv6AccessType": INTERNAL }, 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
: sous-réseau où se trouve l'interface réseau.IPV6_ADDRESS
: adresse 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 attribue automatiquement une adresse IPv6 interne à partir du sous-réseau.
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 vNIC et NIC dynamiques
L'exemple de commande suivant crée une instance avec les interfaces réseau suivantes :- Un vNIC nommé
nic0
qui est le parent des éléments suivants :- Une interface réseau dynamique nommée
nic0.2
- Une interface réseau dynamique nommée
- Un vNIC nommé
nic1
qui est le parent des éléments suivants :- 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 beta 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 NIC dynamiques, vous devez également configurer l'OS invité pour les NIC dynamiques.
Configurer plusieurs interfaces réseau avec des adresses IPv4 uniquement
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 :
nic0
est 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.nic1
est associée au sous-réseausubnet-a
dans le réseaunet1
, avec une adresse IPv4 interne10.10.10.2
et une adresse IPv4 externe statiqueEXTERNAL_IPV4_ADDRESS
.nic2
est associée au sous-réseausubnet-b
dans le réseaunet2
, avec une adresse IPv4 interne10.10.20.2
et 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.
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 :
nic0
est associée au sous-réseauint-subnet
dans le réseaudual-int
, avec une adresse IPv4 interne éphémère et une adresse IPv6 interne éphémère.nic1
est associée au sous-réseauext-subnet
dans le réseaudual-ext
, avec une adresse IPv4 interne éphémère et une adresse IPv6 externe éphémère.
Configurer plusieurs interfaces réseau avec des adresses IPv6 uniquement
L'exemple de commande suivant crée une instance IPv6 uniquement (Preview) 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 :
nic0
est associée au sous-réseauint-subnet-a
dans le réseauipv6-only-int-a
, avec une adresse IPv6 interne éphémère allouée automatiquement.nic1
est associée au sous-réseauint-subnet-b
dans le réseauipv6-only-int-b
, avec une adresse IPv6 interne éphémère personnaliséefd20:db8:0:0:1:0::/96
.nic2
est associée au sous-réseauext-subnet
du réseauipv6-only-ext
, avec une adresse 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 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. Chaque interface doit utiliser un sous-réseau qui se trouve dans un réseau VPC unique :
nic0
utilise le sous-réseaunet0-subnet-a
.nic1
utilise le sous-réseaunet1-subnet-b
.nic2
utilise 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
.