Créer des instances avec plusieurs interfaces réseau

Par défaut, chaque instance de machine virtuelle (VM) d'un réseau VPC possède une seule interface réseau. Cependant, vous pouvez configurer une instance avec plusieurs interfaces réseau. Lorsque vous utilisez plusieurs interfaces d'une instance, chacune d'elles doit être associée à un réseau VPC différent. Vous ne pouvez pas associer plusieurs interfaces réseau au même réseau VPC.

Vous pouvez configurer des interfaces de VM avec des adresses IPv4 uniquement (pile unique) ou des adresses IPv4 et IPv6 (double pile).

Si vous n'avez pas besoin de plusieurs interfaces réseau, suivez la procédure décrite sur la page Créer et démarrer une instance pour créer des instances avec la configuration réseau par défaut.

Pour plus d'informations sur les interfaces réseau multiples et leur fonctionnement, consultez la page Interfaces réseau multiples.

Spécifications

  • Vous ne pouvez configurer une interface réseau que lorsque vous créez une instance.

  • Chaque interface réseau configurée dans une instance doit :

    • être associée à un réseau VPC distinct (un réseau VPC autonome ou un réseau VPC partagé) ;
    • appartenir à un sous-réseau dont la plage d'adresses IP ne chevauche pas les sous-réseaux des autres interfaces.
  • Si vous souhaitez créer une VM associée à plusieurs réseaux VPC, tous les réseaux doivent exister avant de créer l'instance. Pour en savoir plus sur la création de réseaux, consultez la page Créer et modifier des réseaux de cloud privé virtuel (VPC).

  • Vous ne pouvez pas supprimer une interface réseau sans supprimer l'instance.

  • Chaque instance doit posséder au moins une interface réseau et huit au maximum, en fonction du type de machine de l'instance.

    • L'interface nic0 est requise et doit être configurée à la création de l'instance.
    • Les interfaces nic1 à nic7 sont facultatives, mais elles doivent également être configurées à la création de l'instance.
    • Pour plus d'informations, consultez la section Nombre maximal d'interfaces.
  • Chaque interface peut éventuellement posséder une adresse IPv4 externe.

  • Si vous connectez une VM à un sous-réseau disposant d'une plage de sous-réseau IPv6 interne ou externe, vous pouvez éventuellement configurer une adresse IPv6 interne ou externe.

  • Le serveur DHCP de Google Cloud envoie une route par défaut (RFC 3442, "route statique sans classe") exclusivement à la carte d'interface réseau par défaut, nic0. Si une autre carte nécessite une route par défaut, vous devez configurer le routage des règles sur l'instance.

  • Les interfaces de la VM doivent se connecter à des réseaux appartenant au même projet que la VM, ou à un VPC partagé avec le projet de la VM.

Limites

  • Vous ne pouvez pas ajouter ou supprimer des interfaces réseau dans une VM existante.

  • Le transfert IP est activé au niveau de la VM et ne peut pas être appliqué à des interfaces individuelles.

Autorisations, IAM et instances avec interfaces réseau multiples

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 compute.instanceAdmin.v1

Créer et supprimer des instances et des modèles d'instance avec plusieurs interfaces dans un environnement projet sans VPC partagé : un utilisateur possédant, au niveau du projet, le rôle de propriétaire, d'éditeur ou compute.instanceAdmin.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 possédant, au niveau du projet, le rôle de propriétaire, d'éditeur ou compute.instanceAdmin.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 posséder le rôle compute.networkUser au niveau du projet hôte de VPC partagé ou au niveau du sous-réseau VPC partagé.

Pour en savoir plus sur les autorisations, consultez la documentation IAM de Compute Engine.

Utiliser plusieurs interfaces réseau avec différents types de réseaux VPC

  • Les interfaces réseau multiples ne sont pas compatibles avec les anciens réseaux.
  • Lorsque vous configurez plusieurs interfaces réseau, connectez chaque interface à un réseau VPC soit en mode automatique, soit en mode personnalisé.

Allouer les adresses IP des interfaces réseau

  • Vous devez configurer chaque interface réseau avec une adresse IP interne principale allouée à partir de la plage d'adresses IP principale d'un sous-réseau.
    • L'adresse interne principale attribuée à chacune des interfaces d'une même instance doit être différente.
  • Vous pouvez choisir de configurer chacune des interfaces virtuelles (cartes d'interface réseau) avec une adresse IP externe unique. Les adresses externes peuvent être éphémères ou réservées.

Nombre maximal d'interfaces réseau

Le nombre d'interfaces réseau virtuelles s'adapte au nombre de processeurs virtuels (2 au minimum, 8 au maximum).

Le tableau suivant vous permet de déterminer le nombre d'interfaces réseau pouvant être associées à une instance :

Nombre de processeurs virtuels Nombre de cartes d'interface réseau virtuelles
2 ou moins 2
de 2 à 8 de 2 à 8
8 ou plus 8

Avant de commencer

Créer des instances de machines virtuelles avec plusieurs interfaces réseau

Le processus de création d'une instance dotée d'une seule interface reste inchangé. Pour obtenir des instructions générales sur la création d'instances, consultez la page Créer et démarrer une instance.

Vous pouvez ajouter plusieurs interfaces réseau lorsque vous créez une instance :

  • Dans la console, vous ajoutez des interfaces réseau depuis la page Créer une instance, section Réseau -> Interfaces réseau.
  • Dans l'outil de ligne de commande gcloud, utilisez la commande 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).

La première interface créée est toujours nic0, et il s'agit toujours de l'interface par défaut. C'est un point important pour d'autres aspects de la mise en réseau Google Cloud. Par exemple, les équilibreurs de charge Google Cloud (à l'exception de l'équilibrage de charge TCP/UDP interne) ne distribuent le trafic que vers nic0.

Console

  1. Accéder à la page Créer une instance.

    Accéder à la page Créer une instance

  2. Entrez un nom pour l'instance.

  3. Sélectionnez une Région.

  4. Sélectionnez une zone.

  5. Développez la section Mise en réseau, disques, sécurité, gestion et location unique.

  6. Développez Mise en réseau, puis procédez comme suit: 

    1. Dans la section Interfaces réseau, développez une interface réseau pour la modifier.

    2. 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 la VM reçoit une adresse IPv6 interne ou externe.

    3. Sélectionnez un type de pile d'adresses IP : IPv4 (pile unique) ou IPv4 et IPv6 (double pile).

    4. Dans le champ Adresse IP interne principale, sélectionnez l'une des options suivantes :

      • Éphémère pour attribuer une nouvelle adresse IPv4 éphémère
      • Une adresse IPv4 réservée dans la liste
      • Statique pour attribuer une nouvelle adresse IPv4 statique
    5. 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 réservée dans la liste
      • Créer une adresse IP pour attribuer une nouvelle adresse IPv4 statique
    6. Pour terminer la modification de l'interface réseau, cliquez sur OK.

  7. Cliquez sur Ajouter une interface réseau pour ajouter une autre interface.

  8. Poursuivez le processus de création de la VM.

  9. Cliquez sur Create (Créer).

gcloud

La commande instances create vous permet de créer des interfaces réseau sur une nouvelle instance. 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).

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. Pour les autres options, consultez la documentation de référence de gcloud sur la commande instances create. Consultez le tableau Nombre maximal d'interfaces réseau pour vérifier quels types de machines acceptent le nombre d'interfaces réseau dont vous avez besoin.

gcloud compute instances create INSTANCE_NAME \
    --zone [ZONE] \
    [--network-interface \
        [network=NETWORK,subnet=SUBNET], \
        [stack-type=STACK_TYPE], \
        [address=RESERVED_EXTERNAL_ADDRESS | no-address], \
        [private-network-ip=INTERNAL_ADDRESS] \
    ...]

Remplacez les éléments suivants :

  • ZONE : zone où l'instance est créée
  • NETWORK: réseau auquel l'interface va être associée.
  • SUBNET: sous-réseau auquel l'interface va être associée.
  • STACK_TYPE : type de pile pour l'interface. La valeur par défaut est IPV4_ONLY. Spécifiez IPV4_IPV6 pour configurer une interface à double pile.
  • RESERVED_EXTERNAL_ADDRESS : attribue l'adresse IP externe nommée à l'interface. Vous devez avoir réservé une adresse externe auparavant. Spécifiez "no-address" au lieu de address=RESERVED_EXTERNAL_ADDRESS si vous ne souhaitez pas que l'interface ait une adresse IP externe. Spécifiez address='' si vous souhaitez que l'interface reçoive une adresse IP externe éphémère.
  • INTERNAL_ADDRESS: adresse IP interne que vous souhaitez afficher dans l'interface dans le sous-réseau cible. Omettez si vous souhaitez simplement attribuer une adresse valide.

API

Créez une instance de VM avec plusieurs interfaces réseau.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "networkInterfaces": [
    {
      "subnetwork": "SUBNET_URL"
    },
      for each interface, specify a network...
  ],
  other instance settings...
}

Remplacez les espaces réservés par des valeurs valides :

  • SUBNET_URL correspond à l'URL du sous-réseau où se trouvera l'interface réseau.
  • PROJECT_ID correspond à l'ID du projet qui contiendra l'instance.
  • ZONE correspond à la zone dans laquelle se trouvera l'instance.

Pour plus d'informations, reportez-vous à la méthode instances.insert.

Terraform

Vous pouvez utiliser une ressource Terraform pour créer une instance de VM avec plusieurs interfaces réseau.

Les arguments Terraform comportent des exemples de valeurs que vous pouvez modifier.

resource "google_compute_instance" "default" {
  project      = var.project_id # Replace with your project ID in quotes
  zone         = "us-central1-b"
  name         = "backend-instance"
  machine_type = "e2-medium"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    subnetwork = var.subnet_1 # Replace with self link to a subnetwork in quotes
    network_ip = "10.0.0.14"
  }
  network_interface {
    subnetwork = var.subnet_2 # Replace with self link to a subnetwork in quotes
    network_ip = "10.10.20.14"
  }
}

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Utiliser une configuration Terraform.

Exemples de configurations

Les sections suivantes expliquent comment créer des VM avec plusieurs interfaces.

Configurer plusieurs interfaces avec 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=RESERVED_EXTERNAL_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 au 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éseau subnet-a dans le réseau net1, avec une adresse IP interne 10.10.10.2 et une adresse IP externe statique RESERVED_EXTERNAL_ADDRESS.

  • nic2 est associée au sous-réseau subnet-b dans le réseau net2, avec une adresse IP interne 10.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 à partir de la carte d'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 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=us-west2-a

Les interfaces sont créées avec les caractéristiques suivantes :

  • nic0 est associée au sous-réseau int-subnet dans le réseau dual-int, avec une adresse IPv4 interne éphémère et une adresse IPv6 interne éphémère.

  • nic1 est associée au sous-réseau ext-subnet dans le réseau dual-ext, avec une adresse IPv4 interne éphémère et une adresse IPv6 externe éphémère.

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 VM se trouve dans le même réseau VPC. Ajoutez ensuite les instances de VM 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 us-central1

É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 réseau VPC unique :

  • nic0 utilise le sous-réseau net0-subnet-a.
  • nic1 utilise le sous-réseau net1-subnet-b.
  • nic2 utilise le sous-réseau net2-subnet-c.

L'option no-address de l'option --network-interface indique que l'interface est configurée sans adresse IP 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.

Configurer une liaison de règle

Pour les images prises en charge par Google, vous pouvez avoir besoin d'une interface réseau secondaire (autre que nic0) pour communiquer avec une adresse IP hors de la plage principale du sous-réseau associé à cette interface secondaire. Dans ce cas, vous devez configurer la liaison de règle pour garantir que les paquets de sortie seront envoyés par la bonne interface. Cela nécessite de configurer une table de routage distincte pour chaque interface réseau à l'aide de la liaison de règle.

Le routage de règles basé sur les sources n'est pas compatible avec les systèmes d'exploitation Windows.

Rechercher la passerelle par défaut de l'interface

Vous pouvez trouver la passerelle par défaut de l'interface d'une VM en interrogeant le serveur de métadonnées.

  • Pour trouver la passerelle par défaut de l'adresse IPv4 d'une interface, envoyez la requête suivante à partir de la VM :

    curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/INTERFACE_NUMBER/gateway -H "Metadata-Flavor: Google"
    

    Remplacez INTERFACE_NUMBER par le numéro de l'interface. Par exemple, pour trouver la passerelle par défaut pour nic1, utilisez 1.

  • Pour trouver la passerelle par défaut de l'adresse IPv6 d'une interface, envoyez la requête suivante à partir de la VM :

    curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/INTERFACE_NUMBER/gateway-ipv6 -H "Metadata-Flavor: Google"
    

    Remplacez INTERFACE_NUMBER par le numéro de l'interface. Par exemple, pour trouver la passerelle par défaut pour nic1, utilisez 1.

Configurer le routage basé sur des règles sur des VM Linux

Pour éviter de perdre la connectivité à la VM lorsque vous modifiez la route par défaut, utilisez la console série.

  • Configurez le routage de règles pour chaque interface secondaire avec ifconfig. Ne configurez pas l'interface principale (nic0), car une route est configurée.

    sudo ifconfig NIC IP_ADDRESS netmask NETMASK broadcast IP_ADDRESS mtu 1430
    echo "1 rt1" | sudo tee -a /etc/iproute2/rt_tables
    sudo ip route add GATEWAY src IP_ADDRESS dev NIC table rt1
    sudo ip route add default via GATEWAY dev NIC table rt1
    sudo ip rule add from IP_ADDRESS/PREFIX_LENGTH table rt1
    sudo ip rule add to IP_ADDRESS/PREFIX_LENGTH  table rt1
    

    Remplacez les éléments suivants :

    • NIC : interface à laquelle vous souhaitez ajouter une route. Exemple :eth1
    • IP_ADDRESS : adresse IP configurée sur l'interface.
    • NETMASK : nom de l'interface. Exemple : 255.255.255.255
    • GATEWAY : adresse IP de la passerelle par défaut de l'interface
    • PREFIX_LENGTH : longueur du préfixe de l'adresse IP configurée

Configurer le routage basé sur des règles sur Ubuntu 18.04 ou une version ultérieure

Avec le passage de ifupdown à Netplan en tant qu'utilitaire de configuration réseau par défaut pour Ubuntu 18.04 LTS ou version ultérieure, le package ifconfig n'est pas préinstallé. En outre, les modifications apportées aux fichiers de configuration réseau de Netplan ne persistent pas lors des redémarrages de VM Compute Engine.

  1. Créez un script de démarrage qui définit une table de routage pour chaque interface réseau au démarrage de la VM. Découvrez comment créer des scripts de démarrage.

    L'utilisation d'un script de démarrage ne fonctionne pas si vous installez un partage de fichiers dans votre VM, car ils ne s'exécutent qu'une fois les partitions installées. Ainsi, votre partage de fichiers sera toujours installé sur l'interface par défaut avant la création de la table de routage par votre script de démarrage.

  2. Pour installer un partage de fichiers sur une VM via un réseau secondaire, à savoir une interface autre que nic0, vous devez configurer la règle de routage de la VM cliente pour vous assurer que le partage de fichiers s'installe correctement. Pour ce faire, modifiez les fichiers suivants :

    • Dans /etc/default/instance_configs.cfg, définissez l'indicateur setup de NetworkInterfaces sur false :

      [NetworkInterfaces]
      dhclient_script = /sbin/google-dhclient-script
      dhcp_command =
      ip_forwarding = true
          setup = false
      

    • Dans /etc/network/interfaces, ajoutez les lignes suivantes à l'interface souhaitée :

      auto eth1
      iface eth1 inet dhcp
          up ip route add filestore-reserved-address-range via default-gateway-of-nic-to-filestore
      

    Remplacez les éléments suivants :

    • filestore-reserved-address-range est la plage d'adresses réservée à l'utilisation par l'instance Compute Engine.
    • default-gateway-of-nic-to-filestore est l'adresse IP de la passerelle par défaut de la carte d'interface réseau connectée au réseau VPC qui est partagé avec l'instance Compute Engine.

    Pour plus d'informations sur l'installation d'un partage de fichiers sur une instance de VM, consultez la section Installer des partages de fichiers sur Compute Engine.

Dépannage

Je ne parviens pas à créer une VM avec plusieurs interfaces

Un des messages d'erreur suivants peut s'afficher :

  • Invalid value for field 'resource': ''. Too many network interfaces. The maximum number of network interfaces allowed for this machine type is.

    Si vous obtenez ce message d'erreur, cela signifie que vous essayez de créer plus d'interfaces que le maximum autorisé par le type de machine de votre instance. Reportez-vous au tableau indiquant le nombre maximal d'interfaces.

  • Networks must be distinct for NICs attached to a VM.

    Si vous obtenez ce message, cela signifie que vous essayez de créer plusieurs interfaces sur le même réseau. Chaque interface réseau doit être connectée à un réseau VPC distinct.

  • Subnetwork CIDR ranges must be non-overlapping for NICs attached to a VM.

    Si vous obtenez ce message, cela signifie que les plages CIDR associées aux interfaces de votre VM se chevauchent. Ces plages CIDR incluent toutes les plages principales des sous-réseaux associés aux interfaces de la VM, ainsi que les plages secondaires utilisées pour les plages d'adresses IP d'alias . Chaque interface est associée à un sous-réseau, appartenant lui-même à un réseau VPC distinct, et aucun de ces sous-réseaux ne doit chevaucher les sous-réseaux d'autres interfaces. Ainsi, si vous essayez de créer une instance dans la région us-west1, vous pouvez vérifier les plages CIDR principales du sous-réseau à l'aide de la commande suivante ou de Google Cloud Console.

    gcloud compute networks subnets list --regions us-west1
    NAME                REGION    NETWORK          RANGE
    default             us-west1  default          10.138.0.0/20
    overlapping-subnet  us-west1  test-network     10.138.8.0/24
    

    Pour vérifier les plages CIDR des sous-réseaux secondaires, utilisez la commande suivante ou Google Cloud Console.

    gcloud compute networks subnets describe overlapping-subnet --region us-west1
    
    ...
    ipCidrRange: 10.128.8.0/24
    ...
    secondaryIpRanges:
    - ipCidrRange: 10.138.8.0/24
      rangeName: conflicting-range
    
  • Multiple network interfaces are not supported on legacy networks.

    Si vous obtenez ce message, cela signifie que vous essayez de créer votre instance dans un réseau ancien. Les instances à interfaces multiples ne sont pas compatibles avec les réseaux anciens. Vous pouvez vérifier si un réseau est un ancien réseau à l'aide de la commande suivante ou de Google Cloud Console. Le champ Mode indique le type de réseau.

    gcloud compute networks list
    NAME             MODE    IPV4_RANGE     GATEWAY_IPV4
    default          auto
    legacy-network   legacy  10.240.0.0/16  10.240.0.1
    test-network     custom
    

  • Required 'compute.instances.create' permission for 'projects/PROJECT_ID/zones/ZONE/instances/test-inst'

    Si vous obtenez ce message, cela signifie que le compte au moyen duquel vous êtes connecté ne dispose pas des autorisations IAM requises pour créer une instance. Reportez-vous à la section Autorisations IAM afin d'obtenir des informations détaillées sur les rôles requis pour créer des instances. Vous pouvez vérifier si la stratégie IAM associée à votre projet vous confère l'un des rôles suivants : OWNER, EDITOR ou compute.instanceAdmin.v1. Pour créer des instances dans un VPC partagé, vous aurez également besoin du rôle compute.networkUser. Dans l'exemple ci-dessous, le compte email2@gmail.com ne possède pas les autorisations IAM suffisantes pour créer une instance. Pour obtenir des instructions plus détaillées, consultez la page Attribuer, modifier et révoquer les accès à des ressources du guide IAM.

    gcloud projects get-iam-policy PROJECT_ID
    bindings:
    - members:
      - user:email1@gmail.com
        role: roles/owner
    - members:
      - serviceAccount:our-project-123@appspot.gserviceaccount.com
      - serviceAccount:123456789012-compute@developer.gserviceaccount.com
        role: roles/editor
    - members:
      - user:email2@gmail.com
        role: roles/viewer
    etag: BwUjMhXbSPU=
    version: 1
    

    Vous pouvez demander au propriétaire ou à l'éditeur de votre projet de vous accorder l'un des rôles OWNER, EDITOR ou compute.instanceAdmin.v1. Vous aurez également besoin du rôle compute.networkUser si vous associez une interface à l'un des sous-réseaux appartenant au VPC partagé.

    gcloud projects set-iam_policy --member user:email2@gmail.com --role roles/editor
    

Je ne parviens pas à me connecter à l'adresse IP interne d'une interface secondaire

  • Vérifiez les règles de pare-feu pour vous assurer qu'elles autorisent la connexion à l'interface secondaire de la VM. Pour cela, vous pouvez consulter les règles de pare-feu correspondant au réseau associé à l'interface secondaire, soit dans Google Cloud Console en cliquant sur le réseau VPC adéquat, soit au moyen de la commande gcloud suivante.

    gcloud compute firewall-rules list --filter='network:NETWORK_NAME'
    
  • Vérifiez si vous essayez de vous connecter à cette interface secondaire depuis une adresse située soit sur Internet, soit à l'extérieur du réseau de cette interface. Vous ne pouvez vous connecter à l'adresse IP interne d'une interface que depuis son réseau. Si vous devez accéder à cette interface depuis l'extérieur du réseau, vous pouvez lui allouer une adresse IP externe.

  • Vérifiez si vous essayez de vous connecter à l'adresse IP interne de l'interface secondaire depuis un emplacement extérieur au sous-réseau qui lui est associé ; il peut s'agir d'un autre sous-réseau du même réseau ou d'un réseau appairé. La section Plusieurs interfaces réseau par instance explique l'interaction entre l'appairage de VPC et les instances de VM à plusieurs interfaces. Pour communiquer avec une interface secondaire depuis un emplacement extérieur au sous-réseau de l'interface, vous pourrez être amené à configurer des routes sur la VM. Consultez la section Comportement DHCP avec plusieurs interfaces réseau pour en savoir plus sur la manière dont DHCP programme les routes par défaut dans la VM.

  • Si vous essayez d'accéder à une adresse IPv6, consultez également la section Je ne parviens pas à me connecter à l'adresse IPv6 d'une interface secondaire.

Je ne parviens pas à me connecter à une interface secondaire au moyen d'une adresse IP externe

Le serveur DHCP ne programme une route par défaut que sur l'interface réseau principale de la VM. Si vous souhaitez vous connecter à l'interface secondaire au moyen d'une adresse IP externe, vous disposez de deux options. Si vous devez uniquement vous connecter en dehors du réseau associé à cette interface secondaire, vous pouvez définir une route par défaut sur cette interface. Sinon, vous pouvez utiliser la section Configurer une liaison de règle pour configurer dans votre VM une table de routage distincte à l'aide de la liaison de règle basée sur les sources.

Si vous essayez d'accéder à une adresse IPv6, consultez également la section Je ne parviens pas à me connecter à l'adresse IPv6 d'une interface secondaire.

Je ne parviens pas à me connecter à l'adresse IPv6 d'une interface secondaire

Si vous essayez d'accéder à une adresse IPv6, vérifiez que la version 20220603.00 de google-guest-agent ou une version ultérieure est installée sur la VM. Pour en savoir plus sur la gestion des versions google-guest-agent, consultez la page Environnement invité.

Si vous disposez d'une version antérieure de google-guest-agent, les interfaces secondaires ne reçoivent pas de route de sous-réseau IPv6. Nous vous recommandons de mettre à jour l'agent invité afin que les routes soient correctement configurées.

Toutefois, pour contourner ce problème, vous pouvez utiliser un script de démarrage afin d'apporter la modification de configuration suivante pour chaque interface secondaire.

sudo sysctl -w net.ipv6.conf.INTERFACE_NAME.accept_ra_rt_info_max_plen=128

Remplacez INTERFACE_NAME par le nom de l'interface (par exemple, eth1 ou ens5).

J'ai des problèmes de connectivité lorsque j'utilise un masque de réseau autre que /32

Par défaut, le serveur de métadonnées d'une instance ne répond aux requêtes ARP que pour la passerelle par défaut.

Pour configurer des interfaces avec un masque de réseau autre que /32, vous devez créer une image au moyen de l'option --guest-os-features MULTI_IP_SUBNET et utiliser cette image pour créer votre instance. Ainsi, si vous utilisez une image basée sur debian-9, vous pouvez créer une image au moyen de la commande suivante :

gcloud compute images create debian-9-multi-ip-subnet \
     --source-disk debian-9-disk \
     --source-disk-zone us-west1-a \
     --guest-os-features MULTI_IP_SUBNET

Pour afficher les fonctionnalités configurées sur l'image invitée, exécutez la commande gcloud compute images describe sur celle-ci.

gcloud compute images describe debian-9-multi-ip-subnet

Pour plus d'informations sur la création d'images personnalisées, consultez la section Créer, supprimer et rendre obsolètes des images personnalisées.

Dépannage à l'aide de la console série

Il est souvent judicieux d'activer la console série sur la VM pour déboguer les problèmes de configuration. Vous pouvez activer la console série pour le débogage interactif en suivant les instructions de la section concernant l'interaction avec la console série.