Configurer IPv6 pour les instances et les modèles d'instance

Vous pouvez configurer des adresses IPv6 sur une instance de machine virtuelle (VM) si le sous-réseau auquel la VM est connectée possède une plage IPv6 configurée.

Pour en savoir plus sur IPv6, consultez la page Plages de sous-réseaux IPv6.

Spécifications

  • Les VM dotées de configurations IPv4 et IPv6 sont des VM double pile. Les interfaces des VM double pile se voient attribuer une seule plage /96 d'adresses IPv6. La première adresse IPv6 de la plage (/128) est configurée sur l'interface. L'adresse IPv6 s'ajoute aux adresses IPv4 configurées sur l'interface. Vous ne pouvez pas configurer une VM de sorte qu'elle ne dispose que d'adresses IPv6.

  • Une adresse IPv6 peut être configurée sur n'importe quelle interface de la VM. Pour en savoir plus sur la configuration de plusieurs interfaces réseau, consultez la page Présentation des configurations utilisant plusieurs interfaces réseau.

  • Pour configurer des adresses IPv6 sur une interface de VM, celle-ci doit être connectée à un sous-réseau à double pile.

  • La configuration du type d'accès IPv6 d'un sous-réseau détermine si le sous-réseau possède une plage IPv6 interne ou externe. Les VM connectées héritent du type d'accès IPv6 du sous-réseau.

Accéder aux VM à l'aide d'adresses IPv6

La règle de pare-feu implicite d'entrée interdite IPv6 protège les instances en bloquant les connexions entrantes vers leurs adresses IPv6. Pour accéder aux VM à l'aide de leurs adresses IPv6, vous devez disposer d'une règle de priorité plus élevée autorisant l'accès entrant.

Pour en savoir plus sur les règles de pare-feu, consultez les pages Présentation du pare-feu VPC et Présentation des stratégies de pare-feu hiérarchiques.

Pour obtenir des exemples de règles de pare-feu VPC, consultez la section Configurer les règles de pare-feu pour les cas d'utilisation courants.

Attribution d'adresse IPv6

  • Une adresse IPv6 externe est attribuée aux VM à l'aide de DHCPv6. Le serveur de métadonnées répond aux requêtes DHCPv6 de la VM et envoie en réponse la première adresse IPv6 (/128) de la plage /96 allouée.

  • Le serveur de métadonnées utilise l'annonce de routage pour publier la route par défaut sur la VM. La VM peut ensuite utiliser cette route par défaut pour tout le trafic IPv6.

    Vous pouvez trouver la route par défaut de l'interface d'une VM en interrogeant le serveur de métadonnées pour l'entrée gateway-ipv6.

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

    Pour en savoir plus sur le serveur de métadonnées, consultez la section Interroger les métadonnées de VM.

  • Les VM sont configurées avec des adresses IP de liaison locales, qui sont attribuées à partir de la plage fe80::/10, mais qui ne sont utilisées que pour la découverte des voisins.

  • La configuration de la MTU sur l'interface réseau de la VM s'applique aux paquets IPv4 et IPv6.

Créer une VM à double pile

Pour créer une VM à double pile, connectez-la à un sous-réseau dans lequel une plage IPv6 interne ou externe est configurée.

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 contenant un sous-réseau sur lequel une plage IPv6 est configurée.

  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.

      Sélectionnez un sous-réseau dans lequel une plage 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. Dans le champ Type de pile d'adresses IP, sélectionnez 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. Poursuivez le processus de création de la VM.

  8. Cliquez sur Create (Créer).

gcloud

Créez une instance à l'aide de la commande gcloud compute instances create.

gcloud compute instances create INSTANCE_NAME \
  --subnet=SUBNET_NAME \
  --zone=ZONE \
  --stack-type=IPV4_IPV6

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance.
  • SUBNET_NAME : le sous-réseau auquel connecter l'instance. Le sous-réseau doit avoir une plage de sous-réseaux IPv6.
  • ZONE : la zone dans laquelle déployer l'instance de VM

API

  1. Sélectionnez une image. Notez le nom de l'image ou de la famille d'images, ainsi que le nom du projet contenant l'image.
  2. Utilisez la méthode instances.insert pour créer une VM à partir d'une famille d'images ou d'une version spécifique d'une image de l'OS :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    

    Remplacez l'élément suivant :

    • PROJECT_ID : ID du projet dans lequel créer la VM
    • ZONE : zone dans laquelle créer la VM

    Exemple de corps de la requête :

    {
     "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
     "name": "INSTANCE_NAME",
     "networkInterfaces": [
       {
         "subnetwork": "regions/REGION/subnetworks/SUBNET",
         "stackType": "IPV4_IPV6"
       }
     ],
     "disks": [
       {
         "initializeParams": {
           "sourceImage": "IMAGE_URI"
         },
         "boot": true
       }
     ],
    }
    

    Remplacez les éléments suivants :

    • MACHINE_TYPE_ZONE : zone contenant le type de machine à utiliser pour la nouvelle VM
    • MACHINE_TYPE : type de machine prédéfini ou personnalisé pour la nouvelle VM. Exemple : n1-standard-1.
    • INSTANCE_NAME : nom de la nouvelle VM.
    • SUBNET : sous-réseau sur lequel IPv6 est configuré.
    • REGION : région du sous-réseau.
    • IMAGE_URI : URI de l'image que vous souhaitez utiliser.

      Par exemple, si vous spécifiez "sourceImage": "projects/debian-cloud/global/images/family/debian-10", Compute Engine crée une VM à partir de la dernière version de l'image de l'OS dans la famille d'images Debian 10.

Modifier le type de pile d'une VM

Vous pouvez modifier le type de pile d'une VM existante. Le type de pile peut être défini sur l'une des valeurs suivantes :

  • IPv4 uniquement (pile unique)
  • IPv4 et IPv6 (double pile)

Si vous définissez la VM comme une VM à double pile, elle doit être connectée à un sous-réseau double pile. Si vous devez modifier le sous-réseau auquel la VM est connectée, arrêtez la VM avant de modifier le sous-réseau. Une fois le sous-réseau mis à jour, vous pouvez modifier le type de pile d'adresses IP de la VM.

Console

  1. Accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Cliquez sur le nom de l'instance à laquelle vous souhaitez attribuer une adresse IPv6.
  3. Sur la page des détails de l'instance, procédez comme suit :
    1. Cliquez sur Modifier.
    2. Dans Interfaces réseau, développez l'interface que vous souhaitez modifier.
    3. Sélectionnez le type de pile d'adresses IP : IPv4 uniquement (pile unique) ou IPv4 et IPv6 (double pile).
    4. Cliquez sur OK.
  4. Cliquez sur Enregistrer.

gcloud

Mettez à jour le type de pile d'une VM à l'aide de la commande gcloud compute instances network-interfaces update.

gcloud compute instances network-interfaces update INSTANCE_NAME \
  --stack-type=STACK_TYPE \
  --zone=ZONE

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance.
  • ZONE : zone dans laquelle l'instance est déployée.
  • STACK_TYPE : type de pile de la VM (IPV4_ONLY ou IPV4_IPV6).

API

Mettez à jour le type de pile d'une VM en envoyant une requête PATCH à la méthode instances.updateNetworkInterface.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONEinstances/INSTANCE_NAME/updateNetworkInterface

Remplacez les éléments suivants :

  • PROJECT_ID : identifiant du projet contenant l'instance.
  • ZONE : zone dans laquelle l'instance est déployée.
  • INSTANCE_NAME : nom de l'instance.

Exemple de corps de la requête :

{
  "stackType": "STACK_TYPE",
}

Remplacez STACK_TYPE par le type de pile de la VM : IPV4_ONLY ou IPV4_IPV6.

Créer un modèle d'instance avec des adresses IPv6

Vous pouvez créer un modèle d'instance pouvant être utilisé pour créer des VM double pile. Pour plus d'informations sur la création de modèles d'instance, consultez la page Créer des modèles d'instance.

Vous devez utiliser la Google Cloud CLI ou l'API pour créer un modèle d'instance qui crée des VM double pile.

gcloud

Créez un modèle d'instance à l'aide de la commande gcloud compute instance-templates create.

gcloud compute instance-templates create TEMPLATE_NAME \
    --subnet=SUBNET \
    --stack-type=IPV4_IPV6

Remplacez les éléments suivants :

  • TEMPLATE_NAME : nom du modèle.
  • SUBNET : sous-réseau disposant d'une plage de sous-réseaux IPv6.

API

Créez un modèle d'instance en envoyant une requête POST à la méthode instanceTemplates.insert :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates

Remplacez PROJECT_ID par l'ID du projet.

Exemple de corps de la requête :

{
  "name": "INSTANCE_TEMPLATE_NAME"
  "properties": {
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "subnetwork": "regions/REGION/subnetworks/SUBNET",
        "stackType": "IPV4_IPV6",
      },
    ],
    "disks":
    [
      {
        "type": "PERSISTENT",
        "boot": true,
        "mode": "READ_WRITE",
        "initializeParams":
        {
          "sourceImage": "IMAGE_URI"
        }
      }
    ]
  }
}

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.
  • MACHINE_TYPE : type de machine des VM. Exemple : n1-standard-1.
  • SUBNET : sous-réseau disposant d'une plage de sous-réseaux IPv6.
  • REGION : région du sous-réseau.
  • IMAGE_URI : URI de l'image que vous souhaitez utiliser.

    Par exemple, si vous spécifiez "sourceImage": "projects/debian-cloud/global/images/family/debian-10", Compute Engine crée une VM à partir de la dernière version de l'image de l'OS dans la famille d'images Debian 10.

Pour en savoir plus sur les paramètres de requête, consultez la documentation sur la méthode instanceTemplates.insert.