Reserve a static internal IP address (Réserver une adresse IP statique interne)

Cette page vous explique comment réserver et gérer des adresses IPv4 ou IPv6 internes statiques dans des réseaux de cloud privé virtuel (VPC).

Les adresses IP internes statiques permettent de réserver des adresses IP internes à partir de la plage d'adresses IP configurée dans le sous-réseau, puis d'attribuer ces adresses IP internes réservées aux ressources selon vos besoins. Le fait de réserver une adresse IP interne exclut celle-ci du pool d'allocation dynamique et évite qu'elle ne soit utilisée pour des allocations automatiques. La réservation d'adresses IP internes statiques nécessite des autorisations IAM (Identity and Access Management) spécifiques afin que seuls les utilisateurs autorisés puissent réserver une adresse IP interne statique.

Vous pouvez réserver des adresses IP internes statiques, de manière à toujours utiliser la même adresse IP pour la même ressource, même si vous devez supprimer et recréer cette ressource.

Pour réserver une adresse IP externe statique à la place d'une adresse IP interne, consultez la page Réserver une adresse IP externe statique.

Avant de commencer

  • En savoir plus sur les adresses IP.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

    gcloud init

    Terraform

    Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.

    1. Installez Google Cloud CLI.
    2. Pour initialiser gcloudCLI, exécutez la commande suivante :

      gcloud init
    3. Créez des identifiants d'authentification locaux pour votre compte Google :

      gcloud auth application-default login

    Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local dans la documentation sur l'authentification Google Cloud.

    REST

    Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

Rôles requis

Pour obtenir les autorisations nécessaires pour réserver et gérer des adresses IP statiques, demandez à votre administrateur de vous accorder le rôle IAM Administrateur de réseaux Compute (roles/compute.networkAdmin) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Ce rôle prédéfini contient les autorisations requises pour réserver et gérer des adresses IP statiques. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Vous devez disposer des autorisations suivantes pour réserver et gérer des adresses IP statiques :

  • compute.addresses.create sur l'adresse IP
  • compute.addresses.createInternal sur l'adresse IP
  • compute.networks.list sur le réseau
  • compute.subnetworks.use sur le sous-réseau
  • compute.subnetworks.list sur le sous-réseau

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Limites

  • Vous ne pouvez pas annuler l'attribution ni modifier l'adresse IPv4 interne d'une ressource existante. Par exemple, vous ne pouvez pas attribuer une nouvelle adresse IP interne statique à une instance de VM en cours d'exécution ou arrêtée. Cependant, vous pouvez convertir l'adresse IP interne éphémère d'une ressource en adresse IP interne statique afin que l'adresse reste réservée, même après la suppression de la ressource.

  • Le nombre d'adresses IP internes statiques que vous pouvez réserver ne peut pas dépasser le quota de votre projet. Pour plus d'informations, vérifiez quels sont les quotas par projet dans la documentation VPC.

  • Une adresse IP interne statique peut être utilisée par une seule ressource à la fois.

  • La réservation d'une adresse IP interne statique est uniquement disponible pour les réseaux VPC. Elle n'est pas compatible avec les anciens réseaux.

  • La suppression d'une ressource ne libère pas automatiquement une adresse IP interne statique. Vous devez libérer manuellement les adresses IP internes statiques lorsque vous n'en avez plus besoin.

  • Vous ne pouvez pas modifier le nom d'une adresse IP statique.

  • Les adresses IP internes statiques sont régionales, ce qui signifie qu'elles sont limitées à la région dans laquelle elles sont réservées. Par exemple, s'il existe une adresse IP interne statique réservée dans Region A, vous ne pouvez utiliser que l'adresse IP dans Region A.

Réserver une nouvelle adresse IPv4 ou IPv6 interne statique

Avant de pouvoir réserver une nouvelle adresse IP interne statique, vous devez créer un réseau VPC avec un sous-réseau.

Si vous souhaitez réserver une nouvelle adresse IPv6 interne statique, la plage d'adresses IPv6 interne ULA doit être activée sur le réseau VPC. En outre, il doit disposer d'un sous-réseau à double pile avec le type d'accès IPv6 INTERNAL.

Pour réserver une adresse IP interne autonome, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Adresses IP.

    Accéder à la page "Adresses IP"

  2. Cliquez sur Réserver une adresse IP statique interne.
  3. Dans le champ Nom, saisissez un nom d'adresse IP.
  4. Dans la liste Version IP, sélectionnez la version d'adresse IP requise :
    • Pour réserver une adresse IPv4 interne statique, sélectionnez IPv4.
    • Pour réserver une adresse IPv6 interne statique, sélectionnez IPv6.
  5. Dans les listes Réseau et Sous-réseau, sélectionnez un réseau VPC et un sous-réseau, respectivement.
  6. Spécifiez la manière dont vous souhaitez réserver l'adresse IP :
    • Pour réserver des adresses IPv4, pour spécifier une adresse IPv4 interne statique à réserver, pour Adresse IP statique, sélectionnezLaissez-moi choisir, puis saisissez une adresse IP personnalisée. Sinon, le système attribue automatiquement une adresse IPv4 interne statique dans le sous-réseau.
    • Pour les adresses IPv6, le système attribue automatiquement une adresse IPv6 interne statique de la plage d'adresses IPv6 internes du sous-réseau.
  7. Facultatif : si vous souhaitez partager l'adresse IPv4 interne statique dans différentes interfaces, sélectionnez Partagée dans la liste Objectif. La sélection par défaut est Non partagée.

  8. Cliquez sur Réserver.

gcloud

  • Pour réserver une adresse IPv4 interne, utilisez la commande compute addresses create :

    gcloud compute addresses create ADDRESS_NAMES \
        --region REGION --subnet SUBNETWORK \
        --addresses IP_ADDRESS
    

    Remplacez les éléments suivants :

    • ADDRESS_NAMES : nom d'une ou de plusieurs adresses [--purpose=SHARED_LOADBALANCER_VIP] que vous souhaitez créer. Dans le cas de plusieurs adresses, spécifiez toutes les adresses sous forme de liste, séparées par des espaces, par exemple example-address-1 example-address-2 example-address-3.
    • REGION : région de la requête.
    • SUBNETWORK : sous-réseau de l'adresse IP interne.
    • IP_ADDRESS : adresse IP à réserver, qui doit être comprise dans la plage d'adresses IP principales du sous-réseau. Si elle n'est pas spécifiée, une adresse IP est automatiquement attribuée à partir du sous-réseau.
  • Pour réserver une adresse IPv6 interne, utilisez la commande compute addresses create. Spécifiez IPV6 comme valeur pour --ip-version :

    gcloud compute addresses create ADDRESS_NAMES \
        --region REGION --subnet SUBNETWORK \
        --ip-version IPV6
    

    Remplacez les éléments suivants :

    • ADDRESS_NAMES : nom d'une ou de plusieurs adresses que vous souhaitez réserver. Dans le cas de plusieurs adresses, spécifiez toutes les adresses sous forme de liste, séparées par des espaces, par exemple example-address-1 example-address-2 example-address-3.
    • REGION : région de la requête.
    • SUBNETWORK : sous-réseau de l'adresse IPv6 interne.

    Contrairement à la réservation IPv4 interne, la réservation IPv6 interne ne permet pas de réserver une adresse IP spécifique auprès du sous-réseau. À la place, une adresse IPv6 interne /96 est automatiquement allouée à partir de la plage d'adresses IPv6 interne /64 du sous-réseau.

Exemples

  • Réserver une adresse IPv4 interne allouée automatiquement depuis un sous-réseau :

    gcloud compute addresses create example-address-1 \
        --region us-central1 \
        --subnet subnet-1
    
  • Réserver une adresse IPv4 interne spécifique dans un sous-réseau :

    gcloud compute addresses create example-address-1 \
        --region us-central1 \
        --subnet subnet-1 \
        --addresses 10.128.0.12
    
  • Réserver une adresse IPv6 interne statique d'un sous-réseau :

    gcloud compute addresses create example-address-1 \
        --region us-central1 \
        --subnet subnet-1 \
        --ip-version IPV6
    
  • Créer plusieurs adresses IPv4 en transmettant plusieurs noms d'adresses IPv4. Toutes les adresses sont réservées dans le même sous-réseau :

    gcloud compute addresses create example-address-1 example-address-2 \
        --region us-central1 \
        --subnet subnet-1 \
        --addresses 10.128.0.12,10.128.0.13
    

Terraform

Vous pouvez utiliser un module Terraform pour créer une adresse IP interne.

Dans l'exemple suivant, les arguments Terraform contiennent des exemples de valeurs que vous pouvez modifier. L'exemple crée deux adresses IP internes spécifiques :

module "address" {
  source     = "terraform-google-modules/address/google"
  version    = "~> 3.1"
  project_id = var.project_id # Replace this with your project ID in quotes
  region     = "asia-east1"
  subnetwork = "my-subnet"
  names      = ["internal-address1", "internal-address2"]
  addresses  = ["10.0.0.3", "10.0.0.4"]
}

L'exemple suivant permet de créer deux adresses IP internes allouées de manière dynamique :

module "address" {
  source     = "terraform-google-modules/address/google"
  version    = "~> 3.1"
  project_id = var.project_id # Replace this with your project ID in quotes
  region     = "asia-east1"
  subnetwork = "my-subnet"
  names      = ["internal-address1", "internal-address2"]
}

API

Utilisez la méthode addresses.insert :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses

Pour les adresses IPv4 et IPv6, le corps de la requête doit inclure le champ addressType, qui doit être INTERNAL, le name de l'adresse, et le subnetwork auquel appartient l'adresse IP. Le corps de la requête peut éventuellement inclure le purpose de l'adresse IP interne.

En outre, pour les adresses IPv4 internes, vous pouvez laisser le système attribuer automatiquement une adresse IP ou utiliser address pour spécifier une adresse IPv4 interne. L'adresse IPv4 doit appartenir à la plage d'adresses IP principales du sous-réseau.

{
  "addressType": "INTERNAL",
  "name": "IPV4_ADDRESS_NAME",
  "subnetwork": "regions/REGION/subnetworks/SUBNETWORK",
  "address": "IPV4_ADDRESS"
  "purpose": "GCE_ENDPOINT"
}

Par exemple :

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1/addresses
{
  "addressType": "INTERNAL",
  "name": "example-ipv4-address-1",
  "subnetwork": "regions/us-central1/subnetworks/my-custom-subnet",
  "address": "10.128.0.12"
  "purpose": "GCE_ENDPOINT"
}

Pour les adresses IPv6 internes, vous devez également spécifier ipVersion en tant que IPV6. Le système attribue automatiquement une adresse IPv6 interne statique à partir de la plage d'adresses IPv6 internes du sous-réseau.

{
  "addressType": "INTERNAL",
  "name": "IPV6_ADDRESS_NAME",
  "ipVersion": "IPV6",
  "subnetwork": "regions/REGION/subnetworks/SUBNETWORK",
  "purpose": "GCE_ENDPOINT"
}

Par exemple :

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1/addresses
{
  "addressType": "INTERNAL",
  "name": "example-ipv6-address-1",
  "ipVersion": "IPV6"
  "subnetwork": "regions/us-central1/subnetworks/my-custom-subnet",
  "purpose": "GCE_ENDPOINT"
}

Réserver une plage d'adresses IP internes statiques pour le VPN haute disponibilité sur Cloud Interconnect

Vous pouvez réserver une plage d'adresses IP internes statiques à utiliser avec un VPN haute disponibilité sur Cloud Interconnect.

Lorsque vous créez l'adresse IP interne statique, vous devez spécifier l'option --purpose=IPSEC_INTERCONNECT et une longueur de préfixe (--prefix-length) comprise entre 26 et 29.

Les adresses IPv4 internes régionales que vous réservez sont appliquées aux passerelles VPN haute disponibilité utilisées par Cloud Interconnect.

Pour en savoir plus, consultez la section Attribuer des plages d'adresses IP internes aux passerelles VPN haute disponibilité.

Déterminer si une adresse IPv4 ou IPv6 interne est éphémère ou statique

Les adresses IP internes statiques et éphémères se comportent et apparaissent de manière identique dans la plupart des contextes. Cependant, avec les adresses IP internes statiques, vous pouvez utiliser la même adresse IP pour la même ressource même si vous supprimez et recréez la ressource. En général, une adresse IP éphémère est libérée si vous arrêtez ou supprimez la ressource.

Pour déterminer si une adresse est statique ou éphémère, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Adresses IP.

    Accéder à la page "Adresses IP"

  2. Recherchez l'adresse dans la liste et vérifiez le type d'adresse IP dans la colonne Type.

Convertir une adresse IPv4 ou IPv6 interne éphémère en cours d'utilisation en adresse statique

Si vous avez des adresses IP internes éphémères qui sont utilisées, vous pouvez les convertir en adresses IP internes statiques afin que les adresses restent disponibles dans votre projet jusqu'à ce que vous les supprimiez activement.

Pour convertir une adresse IP interne éphémère en adresse IP interne statique, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Adresses IP.

    Accéder à la page "Adresses IP"

  2. Cliquez sur Adresses IP internes.
  3. Facultatif : dans le champ Filtre, recherchez l'adresse IP éphémère que vous souhaitez convertir.
  4. Dans le menu Plus d'actions () de l'adresse IP que vous souhaitez convertir, sélectionnez Convertir en adresse IP statique.
  5. Saisissez un nom pour la nouvelle adresse IP statique, puis cliquez sur Réserver.

gcloud

  1. Avant de convertir une adresse IPv6 interne éphémère existante, vous devez connaître la valeur de cette adresse IP. Utilisez la Google Cloud CLI pour envoyer une requête describe à la ressource afin d'obtenir la valeur de l'adresse IP.

    • Pour une VM avec une adresse IPv4, exécutez la commande suivante :

      gcloud compute instances describe INSTANCE_NAME --zone ZONE | grep "networkIP"
      
    • Pour une VM avec une adresse IPv6, utilisez la commande suivante :

      gcloud compute instances describe INSTANCE_NAME --zone ZONE | grep "ipv6Address"
      
    • Pour une règle de transfert régionale, utilisez la commande suivante :

      gcloud compute forwarding-rules describe FORWARDING_RULE_NAME --region REGION | grep "IPAddress"
      

      Pour une règle de transfert globale, utilisez plutôt l'option --global.

  2. Convertissez l'adresse :

    • Pour convertir une ou plusieurs adresses IPv4 internes existantes, exécutez la commande compute addresses create et spécifiez l'option --addresses avec les adresses IP internes explicites à convertir :

      gcloud compute addresses create IPV4_ADDRESS_NAMES \
        --addresses IPV4_ADDRESSES \
        --region REGION \
        --prefix-length PREFIX_LENGTH \
        --subnet SUBNETWORK
      

      Remplacez les éléments suivants :

      • IPV4_ADDRESS_NAMES : noms des adresses IPv4. Dans le cas de plusieurs adresses, spécifiez tous les noms d'adresses sous forme de liste, séparés par des espaces, par exemple example-address-name-1 example-address-name-2 example-address-name-3. Déclarez les noms dans le même ordre que les adresses IP. Par exemple, supposons que vous spécifiez les noms d'adresse comme example-address-name-1 example-address-name-2 example-address-name-3 et les adresses IPv4 comme 192.0.2.0 192.0.2.1 192.0.2.2. Dans ce scénario, Compute Engine mappe les noms et les adresses de la manière suivante :

        • example-address-name-1 : 192.0.2.0
        • example-address-name-2 : 192.0.2.1
        • example-address-name-3 : 192.0.2.2
      • IPV4_ADDRESSES : adresses IPv4 à promouvoir. Dans le cas de plusieurs adresses, spécifiez toutes les adresses sous forme de liste, séparées par des espaces, par exemple 192.0.2.0 192.0.2.1 192.0.2.2.

      • REGION : la région dans laquelle sera réservée cette adresse.

      • PREFIX_LENGTH : facultatif. Longueur de préfixe de la plage d'adresses IPv4. Cette valeur doit être un nombre entier compris entre 7 et 31. Incluez ce champ uniquement si vous spécifiez une plage d'adresses. Excluez le champ si l'adresse IPv4 spécifiée est une adresse IP unique.

      • SUBNETWORK : le sous-réseau de cette requête.

    • Pour convertir une ou plusieurs adresses IPv6 internes existantes, exécutez la commande compute addresses create et spécifiez l'option --addresses avec les adresses IPv6 internes explicites :

      gcloud compute addresses create IPV6_ADDRESS_NAMES \
       --addresses IPV6_ADDRESSES \
       --region REGION \
       --prefix-length PREFIX_LENGTH \
       --subnet SUBNETWORK
      

      Remplacez les éléments suivants :

      • IPV6_ADDRESS_NAMES : noms de l'adresse. Déclarez les noms dans le même ordre que les adresses IPv6. Dans ce cas, IPV6_ADDRESS_NAME_1 correspond à IPV6_ADDRESS_1 et IPV6_ADDRESS_NAME_2 correspond à IPV6_ADDRESS_2.
      • IPV6_ADDRESS_1,[IPV6_ADDRESS_2,...] : adresses IPv6 à promouvoir au format CIDR
      • PREFIX_LENGTH_1,[PREFIX_LENGTH_2,...] : longueur du préfixe des adresses IPv6
      • REGION : la région dans laquelle sera réservée cette adresse.
      • SUBNETWORK : le sous-réseau de cette requête.

      L'adresse IPv6 interne reste associée à l'instance existante même après sa conversion en adresse IPv6 interne statique. Si vous devez attribuer l'adresse IPv6 interne statique que vous venez de convertir à une autre ressource, commencez par annuler l'attribution de l'adresse IPv6 interne statique à l'instance existante.

API

Utilisez la méthode addresses.insert :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses

Pour les adresses IPv4 et IPv6, le corps de la requête doit inclure le type d'adresse (addressType), qui doit être INTERNAL, le name de l'adresse, le address à convertir et le subnetwork auquel appartient l'adresse IP. Pour les adresses IPv6, le corps de la requête doit également inclure prefixLength ayant 96 comme valeur.

  • Corps de la requête pour convertir des adresses IPv4 internes :

    {
    "name": "ADDRESS_NAME",
    "addressType": "INTERNAL",
    "address": "IP_ADDRESS",
    "subnetwork": "regions/REGION/subnetworks/SUBNETWORK"
    }
    

    Par exemple :

    POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1/addresses
    {
    "name": "example-IPv4-address-1",
    "addressType": "INTERNAL",
    "address": "10.128.0.2",
    "subnetwork": "regions/us-central1/subnetworks/my-custom-subnet"
    }
    
  • Corps de la requête pour convertir des adresses IPv6 internes :

    {
    "name": "ADDRESS_NAME",
    "addressType": "INTERNAL",
    "address": "IP_ADDRESS",
    "subnetwork": "regions/REGION/subnetworks/SUBNETWORK"
    "prefixLength": 96
    }
    

    Exemple :

    POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1/addresses
    {
    "name": "example-IPv6-address-1",
    "addressType": "INTERNAL",
    "address": "fd20:0:0::",
    "subnetwork": "regions/us-central1/subnetworks/my-custom-subnet"
    "prefixLength": 96
    }
    

Utiliser une adresse IPv4 ou IPv6 interne statique avec un VPC partagé

Vous pouvez créer une adresse IP interne statique réservée dans un sous-réseau partagé d'un réseau VPC partagé. L'objet de l'adresse IP est créé dans le même projet de service que la ressource qui l'utilise, même si sa valeur provient de la plage d'adresses IP disponibles dans le sous-réseau partagé sélectionné du réseau VPC partagé. Pour en savoir plus sur ce cas d'utilisation, consultez les ressources suivantes :

Lister les adresses IPv4 ou IPv6 internes statiques

Pour afficher toutes vos adresses IP internes statiques existantes, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Adresses IP.

    Accéder à la page "Adresses IP"

  2. Cliquez sur Adresses IP internes.

gcloud

Exécutez la commande gcloud compute addresses list :

gcloud compute addresses list

API

Utilisez la méthode addresses.list :

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet pour cette requête
  • REGION : nom de la région pour cette requête.

Pour répertorier toutes les adresses de toutes les régions, utilisez la méthode addresses.aggregatedList :

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/addresses

Libérer une adresse IPv4 ou IPv6 interne statique

Si vous n'avez plus besoin d'une adresse IP interne statique, vous pouvez la libérer en supprimant la ressource d'adresse IP.

Si vous utilisez la console Google Cloud, vous ne pouvez libérer une adresse IP statique que si elle n'est pas utilisée par une autre ressource.

Si vous utilisez la gcloud CLI ou l'API, vous pouvez libérer une adresse IP, qu'elle soit utilisée ou non par une autre ressource.

  • Si l'adresse IP n'est pas utilisée par une ressource, elle est renvoyée au pool d'adresses IP internes disponibles.

  • Si l'adresse IP est utilisée par une ressource, elle reste associée à la ressource jusqu'à ce que cette dernière soit supprimée.

Pour libérer une adresse IPv4 ou IPv6 interne statique, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Adresses IP.

    Accéder à la page "Adresses IP"

  2. Cliquez sur Adresses IP internes.
  3. Sélectionnez l'adresse IP interne statique que vous souhaitez libérer.
  4. Cliquez sur Libérer l'adresse statique, puis confirmez cette opération en cliquant sur Libérer dans la boîte de dialogue.

    Si cette option ne s'affiche pas, cliquez sur le menu Autres actions () dans la barre de menu supérieure, puis sélectionnez Libérer l'adresse statique dans la liste.

gcloud

Exécutez la commande compute addresses delete :

gcloud compute addresses delete ADDRESS_NAME \
    --region REGION

Remplacez les éléments suivants :

  • ADDRESS_NAME : nom de l'adresse à supprimer
  • REGION : région à laquelle appartient l'adresse

Exemple :

gcloud compute addresses delete example-address-to-delete \
    --region us-west1

API

Utilisez la méthode addresses.delete :

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME

Cet exemple supprime une adresse dans la région us-west1 :

DELETE https://compute.googleapis.com/compute/v1/projects/myproject/regions/us-west1/addresses/example-address-to-delete

Étapes suivantes