Réserver une adresse IP interne statique

Si une instance de machine virtuelle (VM) nécessite une adresse IP interne fixe qui ne change pas, vous pouvez obtenir une adresse IP interne statique de l'une des façons suivantes :

Pour savoir comment gérer les adresses IP internes secondaires, consultez la documentation sur les plages d'adresses IP d'alias.

Dans Compute Engine, chaque instance de VM peut avoir plusieurs interfaces réseau. Chaque interface peut avoir une adresse IP externe, une adresse IP interne principale et une ou plusieurs adresses IP internes secondaires. Les règles de transfert peuvent disposer d'adresses IP externes pour l'équilibrage de charge externe ou d'adresses internes pour l'équilibrage de charge interne. Pour en savoir plus sur les adresses IP, consultez la documentation sur les adresses IP.

Les adresses IP internes statiques permettent de réserver des adresses IP internes dans la plage d'adresses IP privée RFC 1918 configurée dans le sous-réseau, puis d'attribuer ces adresses internes réservées aux ressources selon vos besoins. Vous pouvez réserver une adresse IP interne pour extraire cette adresse du pool d'allocation dynamique et éviter qu'elle ne soit utilisée pour des allocations automatiques. La réservation d'adresses IP internes statiques nécessite des autorisations IAM spécifiques, de sorte que seuls les utilisateurs autorisés peuvent réserver ces adresses.

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

Permissions

Pour réserver et gérer des adresses IP internes statiques, vous devez disposer du rôle compute.networkAdmin. Pour en savoir plus sur les rôles, consultez la page Rôles IAM Compute Engine.

Restrictions

  • Vous ne pouvez pas modifier l'adresse IP 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. 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.

  • Il n'y a aucun moyen de savoir si une adresse IP est statique ou éphémère après son attribution à une ressource, si ce n'est en comparant l'adresse IP à la liste des adresses IP internes statiques réservées pour ce projet. Exécutez la sous-commande addresses list pour afficher la liste des adresses IP internes statiques disponibles pour le projet.

  • 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.

Réserver une adresse IP interne statique

Vous pouvez réserver une adresse IP interne statique avant de créer la ressource associée. Vous avez également la possibilité de créer la ressource avec une adresse IP interne éphémère que vous convertissez ensuite en adresse IP interne statique.

Pour utiliser une adresse IP interne statique, vous devez disposer d'un réseau VPC pour votre projet. Consultez la page Utiliser les réseaux VPC pour apprendre à créer votre réseau VPC.

Réserver une adresse spécifique et l'associer à une ressource particulière

Dans ce scénario, vous réservez séparément une adresse IP interne statique, puis vous l'attribuez à une ressource. En résumé :

  1. Créez un sous-réseau dans votre réseau VPC.

  2. Réservez une adresse IP interne dans la plage d'adresses IP principales du sous-réseau. Cette étape permet de créer une ressource qui contient cette adresse IP interne spécifique. Cette étape empêche également Google Cloud d'attribuer automatiquement cette adresse en tant qu'adresse éphémère.

  3. Utilisez l'adresse IP interne réservée en l'associant à une instance de VM ou à un équilibreur de charge interne lorsque vous créez la VM ou la ressource d'équilibreur de charge.

Spécifier une adresse IP interne éphémère pour une ressource et convertir l'adresse

Dans ce scénario, vous convertissez une adresse IP interne éphémère qui est toujours associée à une ressource en une adresse IP interne statique.

  1. Créez un sous-réseau.

  2. Créez une instance de VM ou un équilibreur de charge interne avec une adresse IP éphémère attribuée automatiquement ou une adresse IP spécifique.

  3. Convertissez l'adresse IP interne en adresse IP interne statique.

Les deux méthodes sont décrites dans le diagramme ci-dessous.

Réservation d'adresses IP internes

Réserver une nouvelle adresse IP 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.

Pour réserver une nouvelle adresse IP interne statique, qu'il s'agisse d'une adresse attribuée automatiquement ou d'une adresse non utilisée d'un sous-réseau existant, vous pouvez utiliser Google Cloud Console, l'outil gcloud ou l'API.

Console

  1. Dans Cloud Console, accédez à la page Réseaux VPC.

    Accéder à la page "Réseaux VPC"

  2. Identifiez le réseau VPC que vous souhaitez associer à votre instance.
  3. Accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  4. Sélectionnez votre projet.
  5. Cliquez sur Créer une instance et indiquez un nom pour votre instance.
  6. Sélectionnez la Région dans laquelle votre réseau VPC se situe.
  7. Sélectionnez une Zone dans cette région.
  8. Renseignez les autres champs de votre instance.
  9. Développez le menu Gestion, sécurité, disques, mise en réseau et location unique.
  10. Cliquez sur Réseau.
  11. Cliquez sur les Interfaces réseau à modifier.
  12. Sous Réseau, sélectionnez le réseau VPC que vous avez créé.
  13. Choisissez le sous-réseau.
  14. Sous Adresse IP interne principale, sélectionnez Réserver une adresse IP statique.
  15. Renseignez les autres options de mise en réseau.
  16. Cliquez sur OK.
  17. Fournissez les informations nécessaires pour votre instance.
  18. Cliquez sur Créer.

gcloud

À l'aide de l'outil gcloud, exécutez la commande compute addresses create :

gcloud compute addresses create ADDRESS_NAME [ADDRESS_NAME..] \
    --region REGION --subnet SUBNETWORK \
    --addresses IP_ADDRESS

Remplacez l'élément suivant :

  • ADDRESS_NAME : nom d'une ou de plusieurs adresses à créer
  • 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 aucune valeur n'est spécifiée, une adresse sera automatiquement attribuée depuis le sous-réseau.

Par exemple, pour réserver une adresse IP interne attribuée automatiquement dans un sous-réseau, procédez comme suit :

gcloud compute addresses create example-address-1 \
    --region us-central1 --subnet subnet-1

Pour réserver une adresse IP 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

Vous pouvez créer plusieurs adresses en renseignant plusieurs noms d'adresses. Cependant, toutes les adresses seront réservées dans le même sous-réseau. Exemple :

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

API

Appelez la méthode addresses.insert :

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

Le corps de la requête doit inclure le type d'adresse (addressType) avec la valeur INTERNAL, le nom de l'adresse (name) et le sous-réseau (subnetwork) auquel appartient l'adresse IP. Vous pouvez laisser le système attribuer automatiquement une adresse IP ou spécifier le paramètre address pour une adresse IP spécifique. L'adresse IP doit appartenir à la plage d'adresses IP principales du sous-réseau.

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

Exemple :

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1/addresses

{
  "name": "example-address-1",
  "addressType": "INTERNAL",
  "subnetwork": "regions/us-central1/subnetworks/my-custom-subnet",
  "address": "10.128.0.12"
}

Convertir une adresse IP interne éphémère utilisée en adresse statique

Si vous avez des adresses IP éphémères qui sont actuellement 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.

Avant de réserver une adresse IP existante, vous aurez besoin de la valeur de l'adresse IP que vous souhaitez convertir. Pour l'obtenir, envoyez une requête describe à la ressource. Par exemple, si vous convertissez une adresse IP actuellement utilisée par une instance de VM, exécutez la commande suivante :

gcloud compute instances describe INSTANCE_NAME --zone ZONE | grep "networkIP"

L'outil gcloud renvoie la valeur networkIP, qui correspond à l'adresse IP interne utilisée par la ressource. Exemple :

networkIP: 10.240.0.2

Convertissez ensuite l'adresse.

Console

Pour convertir une adresse IP interne éphémère en adresse IP statique dans la console :

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

    Accéder à la page Instances de VM

  2. Sélectionnez votre projet.
  3. Sélectionnez l'instance à modifier.
  4. Cliquez sur l'outil Modifier en haut de la page.
  5. Cliquez sur l'outil de modification pour les Interfaces réseau.
  6. Sous Type d'adresse IP interne, sélectionnez Statique.
  7. Fournissez les informations relatives à l'adresse IP statique.
  8. Cliquez sur OK pour enregistrer les modifications.
  9. Cliquez sur Enregistrer pour mettre à jour votre instance.

gcloud

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

gcloud compute addresses create ADDRESS_NAME_1 [ADDRESS_NAME_2..] \
    --addresses IP_ADDRESS_1,[IP_ADDRESS_2,..] \
    --region REGION \
    --subnet SUBNETWORK

Remplacez l'élément suivant :

  • ADDRESS_NAME : noms que vous souhaitez donner à l'adresse. Déclarez les noms dans le même ordre que les adresses IP. Dans ce cas, ADDRESS_NAME_1 correspond à IP_ADDRESS_1 et ADDRESS_NAME_2 correspond à IP_ADDRESS_2.
  • IP_ADDRESS_1,[IP_ADDRESS_2,...] : adresses IP à promouvoir. Exemple :10.128.1.9
  • REGION : la région dans laquelle sera réservée cette adresse.
  • SUBNETWORK : le sous-réseau de cette requête.

Exemple :

gcloud compute addresses create example-address-1 example-address-2 \
    --addresses 10.128.4.90,10.128.0.232 \
    --region us-central1 \
    --subnet subnet-1

API

Appelez la méthode addresses.insert :

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

Le corps de la requête doit inclure le type d'adresse (addressType) avec la valeur INTERNAL, le nom de l'adresse (name), l'adresse à convertir (address) et le sous-réseau (subnetwork) auquel appartient l'adresse IP.

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

Exemple :

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-central1/addresses

{
  "name": "example-address-1",
  "addressType": "INTERNAL",
  "address": "10.128.0.2",
  "subnetwork": "regions/us-central1/subnetworks/my-custom-subnet"
}

Créer une instance de VM avec une adresse IP interne spécifique

Vous pouvez choisir une adresse IP interne spécifique à attribuer à une instance lorsque vous créez l'instance. Il doit s'agir d'une adresse IP valide du sous-réseau de l'instance, et elle ne doit pas être déjà utilisée. L'adresse IP reste associée à l'instance jusqu'à ce que vous supprimiez cette dernière, ce qui libère l'adresse IP dans le pool. Si vous arrêtez et redémarrez l'instance, celle-ci conserve la même adresse IP interne.

Si vous n'indiquez pas d'adresse IP, Compute Engine en alloue une automatiquement depuis le sous-réseau ou le réseau. Vous pouvez spécifier une adresse IP interne à l'aide de Google Cloud Console, de l'outil gcloud ou de l'API Compute Engine.

Console

  1. Dans Cloud Console, accédez à la page Instances de VM.

    Accéder à la page Instances de VM

  2. Cliquez sur Créer une instance.
  3. Sur la page Créer une instance, renseignez les propriétés de votre instance.
  4. Développez la section Gestion, sécurité, disques, mise en réseau et location unique.
  5. Cliquez sur Mise en réseau.
  6. Sous Interfaces réseau, cliquez sur l'interface réseau par défaut pour la modifier.
  7. Sous Réseau et Sous-réseau, vous pouvez sélectionner le réseau et le sous-réseau que vous souhaitez utiliser.
  8. Sous Adresse IP interne principale, sélectionnez une option d'adresse IP interne dans la liste déroulante.
  9. Cliquez sur OK pour terminer la modification de l'interface réseau.
  10. Cliquez sur Créer pour créer l'instance.

gcloud

Spécifiez une adresse IP valide lors de la création de l'instance :

gcloud compute instances create INSTANCE_NAME
     --private-network-ip IP_ADDRESS

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance que vous souhaitez créer.
  • IP_ADDRESS : adresse IP que vous souhaitez attribuer.

Si vous utilisez un réseau en mode sous-réseau personnalisé, vous devez également spécifier le sous-réseau à l'aide du paramètre --subnet SUBNET.

API

Pour créer une instance avec une adresse IP interne statique, servez-vous de l'API Compute Engine. Envoyez une requête pour créer une instance, en suivant la procédure habituelle, mais renseignez explicitement la propriété networkInterfaces[].networkIP avec l'adresse IP interne que vous souhaitez utiliser. Exemple :

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/us-central1-f/machineTypes/f1-micro",
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT",
     }],
    "network": "global/networks/default",
    "networkIP": "IP_ADDRESS"
  }],
  "disks": [{
     "autoDelete": "true",
     "boot": "true",
     "type": "PERSISTENT",
     "initializeParams": {
        "sourceImage": "projects/debian-cloud/global/images/v20150818"
     }
   }]
 }

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance.
  • IP_ADDRESS : adresse IP à attribuer à l'instance.

Si vous supprimez une instance pour laquelle une adresse IP est spécifiée, celle-ci retourne dans le pool d'adresses non allouées. Si l'adresse IP interne doit persister au-delà de la durée de vie de l'instance, vous pouvez réserver une adresse IP interne statique.

Créer un équilibreur de charge interne avec une adresse IP interne statique

Pour créer un équilibreur de charge interne utilisant une adresse IP interne statique, suivez les instructions indiquées dans les liens suivants :

Utiliser une adresse IP interne statique pour une interface réseau secondaire

Lorsque vous créez une instance de VM avec plusieurs interfaces réseau, vous pouvez utiliser une adresse IP interne statique réservée pour les interfaces réseau principales et secondaires.

Pour attribuer une adresse IP interne statique à une interface réseau secondaire, procédez comme suit :

  1. Vous devez d'abord réserver une adresse IP interne statique. Par exemple, l'exemple suivant réserve une adresse appelée my-second-ip-address dans la région us-central1. Étant donné que la commande omet l'option --addresses, Compute Engine réserve une adresse IP aléatoire :

    gcloud compute addresses create my-second-ip-address \
        --region us-central1 --subnet subnet-b
  2. Utilisez l'adresse comme adresse IP de l'interface secondaire lorsque vous créez une instance de VM. Exemple :

    gcloud compute instances create my-instance \
        --image-family IMAGE_FAMILY \
        --image-project IMAGE_PROJECT \
        --network-interface subnet=subnet-a,no-address \
        --network-interface \
          subnet=subnet-b,private-network-ip=my-second-ip-address,no-address

Utiliser une adresse IP interne statique avec le 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é. Reportez-vous aux pages suivantes pour en savoir plus sur ce cas d'utilisation :

Supprimer une adresse IP interne statique

Vous pouvez supprimer une adresse IP interne statique si vous n'en avez plus besoin. Vous pouvez supprimer une adresse qu'elle soit utilisée ou non par une autre ressource. Si l'adresse est utilisée par une ressource, elle reste associée à la ressource jusqu'à ce que cette dernière soit supprimée, après quoi l'adresse est renvoyée au pool d'adresses disponibles pour d'autres projets.

Console

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

    Accéder à la page Instances de VM

  2. Sélectionnez votre projet.
  3. Sélectionnez l'instance de VM dans la liste des projets.
  4. Sélectionnez l'outil Modifier en haut de la page.
  5. Cliquez sur l'outil de modification pour les Interfaces réseau.
  6. Modifiez le Type d'adresse IP interne de Statique à Ephémère.
  7. Sélectionnez Libérer pour libérer votre adresse IP statique.
  8. Cliquez sur OK pour enregistrer les modifications.

    Votre instance continue à utiliser l'adresse IP statique jusqu'à ce que l'instance soit supprimée ou redémarrée. L'adresse IP est ensuite renvoyée dans le pool d'adresses IP internes disponibles du sous-réseau par défaut.

gcloud

À l'aide de l'outil gcloud, exécutez la commande compute addresses delete :

gcloud compute addresses delete ADDRESS_NAME \
    --region REGION

Remplacez l'élément suivant :

  • 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

Appelez la méthode addresses.delete :

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

Par exemple, pour supprimer 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

Étape suivante