Configurer des plages d'adresses IP d'alias

Ce document explique comment configurer des adresses IP d'alias et des plages d'adresses IP d'alias en utilisant la console Google Cloud et Google Cloud CLI. Avant d'exécuter ces commandes, consultez la page Plages d'adresses IP d'alias.

Limites

Sous-réseau

  • Les limites par réseau décrivent le nombre maximal de plages secondaires que vous pouvez définir pour chaque sous-réseau.
  • Vous ne pouvez pas à la fois ajouter et supprimer des plages secondaires. L'ajout et la suppression sont deux étapes distinctes.
  • L'expansion CIDR n'est pas disponible pour les plages secondaires.

Instance de VM

  • Les plages d'adresses IP d'alias sont disponibles sur toutes les interfaces réseau de machine virtuelle. Le routage est configuré automatiquement pour les plages d'adresses IP d'alias sur l'interface réseau principale, mais pas sur les interfaces secondaires. Si vous disposez de plusieurs interfaces réseau, vous devez configurer la liaison de règles pour les interfaces additionnelles.
  • Il est possible d'ajouter ou de supprimer des plages d'adresses IP d'alias, mais pas de les mettre à jour.
  • Si vous supprimez une plage d'adresses IP d'alias d'une machine virtuelle et que vous l'attribuez à une autre machine virtuelle, l'exécution du transfert peut prendre jusqu'à une minute.
  • Les tags sources de pare-feu ne sont pas disponibles pour les adresses IP d'alias. Ainsi, lorsque vous configurez des tags sources dans les règles de pare-feu, ceux-ci correspondent à l'adresse IP principale de la machine virtuelle, mais pas aux adresses IP de l'alias. Utilisez des plages sources pour autoriser ou refuser le trafic d'entrée en provenance d'adresses IP d'alias.
  • Le DNS interne résout le nom d'une machine virtuelle sur son adresse IP principale. Les noms supplémentaires des adresses IP d'alias ne sont pas configurés automatiquement, mais peuvent être ajoutés manuellement.

Réseau VPC

  • L'ajout ou la suppression simultanée d'un grand nombre de plages d'adresses IP d'alias peut prendre beaucoup de temps. Par exemple, l'ajout ou la suppression de 7 000 plages d'adresses IP d'alias peut prendre jusqu'à 10 minutes.
  • Les réseaux VPC en mode automatique ne peuvent pas être supprimés en présence de plages de sous-réseaux secondaires.
  • Dans une route statique, l'adresse IP du saut suivant doit être l'adresse IP principale de la machine virtuelle. Les adresses IP d'alias ne peuvent pas être des adresses IP de saut suivant.
  • Les adresses IPv6 ne sont pas compatibles.
  • Les plages d'adresses IP d'alias ne sont disponibles que sur les réseaux VPC et non sur les anciens réseaux. Pour déterminer votre type de réseau, affichez la liste de vos réseaux. Les réseaux VPC sont en mode custom ou auto. Les anciens réseaux sont en mode legacy.

Commandes de sous-réseau

Les plages d'adresses IP d'alias d'une machine virtuelle doivent être attribuées à partir d'une plage appartenant au sous-réseau dans lequel se trouve la machine virtuelle. Chaque sous-réseau dispose d'une plage principale qui correspond à la plage d'adresses IP internes standard définissant le sous-réseau. Un sous-réseau peut également comporter une ou plusieurs plages d'adresses IP secondaires issues d'adresses IP internes. Vous pouvez attribuer des plages d'adresses IP d'alias à partir des plages principales ou secondaires du sous-réseau.

Vous devez attribuer à chaque plage secondaire un nom unique pour le sous-réseau. Lors de l'attribution d'une plage d'adresses IP d'alias à une machine virtuelle, le nom de la plage secondaire indique à Google Cloud la plage de sous-réseau à utiliser pour l'attribution des adresses IP d'alias.

Toutes les plages, principales et secondaires, doivent être uniques sur tous les sous-réseaux du réseau VPC et sur tous les réseaux connectés via l'appairage de réseaux VPC, le VPN ou l'interconnexion.

Cette section explique comment créer un sous-réseau avec une plage secondaire, ajouter une plage secondaire à un sous-réseau existant ou supprimer une plage secondaire d'un sous-réseau. Une fois que votre sous-réseau dispose de la plage que vous souhaitez utiliser, consultez les commandes d'instance de VM pour savoir comment attribuer une plage à une machine virtuelle.

Créer un sous-réseau avec une ou plusieurs plages CIDR secondaires

Cette commande suppose que vous avez déjà un réseau VPC. Dans le cas contraire, créez-en un.

Cette commande est la même pour créer un sous-réseau pour l'interface principale de la machine virtuelle ou pour l'une des interfaces secondaires.

L'utilisation d'une plage secondaire pour l'attribution d'adresses IP d'alias permet de séparer l'espace d'adresses IP des services hébergés sur la machine virtuelle. Cela facilite la création de règles de pare-feu qui permettent de n'accéder qu'aux services exécutés sur la machine virtuelle et de bloquer l'accès à l'adresse IP principale de la machine virtuelle.

Console

  1. Accédez à la page "Réseaux VPC" dans Google Cloud Console.
    Accéder à la page Réseaux VPC
  2. Cliquez sur le nom d'un réseau existant.
  3. Cliquez sur Ajouter un sous-réseau.
  4. Saisissez un nom pour le nouveau sous-réseau.
  5. Spécifiez la région.
  6. Saisissez une plage d'adresses IP au format CIDR (par exemple, 10.65.61.0/24).
  7. Cliquez sur Créer une plage d'adresses IP secondaire.
  8. Saisissez le Nom de la plage du sous-réseau.
  9. Saisissez une plage d'adresses IP secondaires au format CIDR (par exemple, 10.9.0.0/24).
  10. Pour ajouter d'autres plages d'adresses IP secondaires, pour chaque plage, cliquez sur Ajouter une plage d'adresses IP, puis indiquez un nom et une plage.
  11. Cliquez sur Ajouter.

gcloud

gcloud compute networks subnets create s1 \
    --network NETWORK_NAME \
    --region REGION \
    --range 10.65.61.0/24 \
    --secondary-range RANGE_NAME_1=RANGE_CIDR_1,RANGE_NAME_2=RANGE_CIDR_2,...

Remplacez les éléments suivants :

  • NETWORK_NAME : nom du réseau dans lequel vous souhaitez créer le sous-réseau.
  • REGION : région où vous créez le sous-réseau.
  • RANGE_NAME_1=RANGE_CIDR_1 et RANGE_NAME_2=RANGE_CIDR_2 : noms des plages secondaires à partir desquelles extraire les plages d'adresses IP d'alias et de la plage d'adresses IP d'alias proprement dite. Exemple : range1=10.9.0.0/24.

Pour obtenir la syntaxe complète, consultez la documentation de gcloud CLI.

API

Créez un sous-réseau avec une ou plusieurs plages secondaires.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
{
  "ipCidrRange": "PRIMARY_IP_RANGE",
  "network": "NETWORK_URL",
  "name": "SUBNET_NAME",
  "secondaryIpRanges": [
  {
    "rangeName": "SECONDARY_RANGE_NAME_1",
    "ipCidrRange": "SECONDARY_IP_RANGE_1"
  },
  {
    "rangeName": "SECONDARY_RANGE_NAME_2",
    "ipCidrRange": "SECONDARY_IP_RANGE_2"
  },
  ...]
}

Remplacez les éléments suivants :

  • NETWORK_URL : URL ou réseau VPC dans lequel le sous-réseau sera créé.
  • PRIMARY_IP_RANGE : plage d'adresses IP principale du sous-réseau.
  • PROJECT_ID : ID du projet qui contient le réseau VPC dans lequel le sous-réseau sera créé.
  • REGION : région où le sous-réseau sera situé.
  • SECONDARY_IP_RANGE_1 et SECONDARY_IP_RANGE_2 : plages d'adresses IP à utiliser pour les plages secondaires.
  • SECONDARY_RANGE_NAME_1 et SECONDARY_RANGE_NAME_2 : noms à utiliser pour les plages secondaires.
  • SUBNET_NAME: nom du sous-réseau

Pour en savoir plus, consultez la section sur la méthode subnetworks.insert.

Terraform

Vous pouvez utiliser la ressource Terraform pour créer un sous-réseau avec une ou plusieurs plages secondaires.

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

resource "google_compute_subnetwork" "network-with-private-secondary-ip-ranges" {
  project       = var.project_id # Replace this with your project ID in quotes
  name          = "test-subnetwork"
  ip_cidr_range = "10.2.0.0/16"
  region        = "us-central1"
  network       = "test-vpc-network"
  secondary_ip_range {
    range_name    = "tf-test-secondary-range-update1"
    ip_cidr_range = "192.168.10.0/24"
  }
}

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

Ajouter des plages CIDR secondaires à un sous-réseau existant

Cette procédure suppose que vous avez un sous-réseau que vous souhaitez utiliser, mais que vous devez ajouter une ou plusieurs plages secondaires.

L'utilisation d'une plage secondaire pour l'attribution d'adresses IP d'alias facilite la création de règles de pare-feu qui permettent d'accéder aux services exécutés sur une machine virtuelle, mais pas à l'adresse IP principale de la machine virtuelle.

Console

  1. Accédez à la page "Réseaux VPC" dans Google Cloud Console.
    Accéder à la page Réseaux VPC
  2. Cliquez sur le nom d'un sous-réseau à modifier pour accéder à ses détails.
  3. Cliquez sur Modifier.
  4. Dans la section Plages d'adresses IP secondaires, cliquez sur Ajouter une plage d'adresses IP.
  5. Entrez un nom pour Nom de la plage du sous-réseaux.
  6. Entrez une plage pour la Plage d'adresses IP secondaire au format CIDR. (Exemple :10.9.0.0/24)
  7. Pour ajouter d'autres plages d'adresses IP secondaires, pour chaque plage, cliquez sur Ajouter une plage d'adresses IP, puis indiquez un nom et une plage.
  8. Cliquez sur Enregistrer.

gcloud

gcloud compute networks subnets update SUBNET_NAME \
    --region REGION \
    --add-secondary-ranges RANGE_NAME_1=RANGE_CIDR_1,RANGE_NAME_2=RANGE_CIDR_2,...

Remplacez les éléments suivants :

  • SUBNET_NAME : nom du sous-réseau auquel vous souhaitez ajouter les plages secondaires.
  • REGION : région où vous créez le sous-réseau.
  • RANGE_NAME_1=RANGE_CIDR_1 et RANGE_NAME_2=RANGE_CIDR_2 : noms des plages secondaires à partir desquelles extraire les plages d'adresses IP d'alias et de la plage d'adresses IP d'alias proprement dite. Exemple : range1=10.9.0.0/24.

Pour obtenir la syntaxe complète, consultez la documentation de gcloud CLI.

API

Ajoutez une plage secondaire à un sous-réseau existant.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
{
  "secondaryIpRanges": [
  {
    "rangeName": "SECONDARY_RANGE_NAME_1",
    "ipCidrRange": "SECONDARY_IP_RANGE_1"
  },
  {
    "rangeName": "SECONDARY_RANGE_NAME_2",
    "ipCidrRange": "SECONDARY_IP_RANGE_2"
  },
  ...],
  "fingerprint": "SUBNETWORK_FINGERPRINT"
}

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

  • PROJECT_ID correspond à l'ID du projet contenant le sous-réseau à modifier.
  • REGION est la région dans laquelle se trouve le sous-réseau.
  • SECONDARY_IP_RANGE_1 et SECONDARY_IP_RANGE_2 sont les plages d'adresses IP à utiliser pour les plages secondaires.
  • SECONDARY_RANGE_NAME_1 et SECONDARY_RANGE_NAME_2 sont les noms à utiliser pour les plages secondaires.
  • SUBNET_FINGERPRINT correspond à l'ID d'empreinte du sous-réseau existant, fourni lorsque vous décrivez un sous-réseau.
  • SUBNET_NAME correspond au nom du sous-réseau à modifier.

Pour en savoir plus, consultez la section sur la méthode subnetworks.patch.

Supprimer une plage CIDR secondaire d'un sous-réseau

Vous pouvez supprimer des plages secondaires existantes d'un sous-réseau. Pour afficher les plages associées à un sous-réseau, consultez la section Décrire un sous-réseau.

Console

  1. Accédez à la page "Réseaux VPC" dans Google Cloud Console.
    Accéder à la page Réseaux VPC
  2. Cliquez sur le nom d'un sous-réseau à modifier pour accéder à ses détails.
  3. Cliquez sur Modifier.
  4. Dans la section Plages d'adresses IP secondaires, cliquez sur le symbole X à côté de la plage secondaire à supprimer.
  5. Cliquez sur Enregistrer.

gcloud

gcloud compute networks subnets update SUBNET_NAME \
    --region REGION \
    --remove-secondary-ranges RANGE_NAME_1,RANGE_NAME_2,...

Où :

  • SUBNET_NAME correspond au nom du sous-réseau duquel vous souhaitez supprimer les plages secondaires.
  • REGION correspond à la région où vous créez le sous-réseau.
  • RANGE_NAME_1 et RANGE_NAME_2 sont les noms des plages secondaires qui seront supprimées du sous-réseau cible SUBNET_NAME, par exemple range1=10.9.0.0/24.

Pour obtenir la syntaxe complète, consultez la documentation de gcloud CLI.

API

Excluez les plages secondaires pour les supprimer. L'exemple suivant supprime toutes les plages secondaires d'un sous-réseau existant :

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
{
  "fingerprint": "SUBNET_FINGERPRINT",
  "secondaryIpRanges": [
  ]
}

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

  • PROJECT_ID correspond à l'ID du projet contenant le sous-réseau à modifier.
  • REGION est la région dans laquelle se trouve le sous-réseau.
  • SUBNET_FINGERPRINT correspond à l'ID d'empreinte du sous-réseau existant, fourni lorsque vous décrivez un sous-réseau.
  • SUBNET_NAME correspond au nom du sous-réseau à modifier.

Pour en savoir plus, consultez la section sur la méthode subnetworks.patch.

Utiliser des instances de VM

Ces commandes montrent comment créer une instance avec une plage d'adresses IP d'alias, ajouter une ou plusieurs plages d'adresses IP d'alias à une instance de machine virtuelle existante, ou supprimer une ou plusieurs plages d'une instance de machine virtuelle existante.

Créer une VM avec une plage d'adresses IP d'alias dans la plage CIDR principale

Cette procédure permet d'attribuer une plage d'adresses IP d'alias à partir de la plage principale du sous-réseau. La plage que vous choisissez ne doit pas déjà être utilisée, même en partie, par une autre ressource du réseau VPC.

Utilisez cette procédure si vous souhaitez que l'interface principale de l'instance et les adresses IP d'alias soient dans la même plage.

Console

  1. Accédez à la page "Instances de VM" de Google Cloud Console.
    Accéder à la page Instances de VM
  2. Cliquez sur Créer une instance.
  3. Saisissez un nom pour la nouvelle instance.
  4. Spécifiez une zone.
  5. Cliquez sur Gestion, sécurité, disques, mise en réseau et location unique.
  6. Cliquez sur l'onglet Réseau.
  7. Cliquez sur le bouton de modification (icône représentant un crayon) à côté de l'interface principale dans la section Interfaces réseau.
  8. Cliquez sur Afficher les plages d'adresses IP d'alias.
  9. Laissez le champ Plage de sous-réseaux défini sur Principale.
  10. Saisissez une Plage d'adresses IP d'alias au format CIDR. Il doit s'agir d'une sous-plage non utilisée de la plage principale.
  11. Cliquez sur Créer.

gcloud

gcloud compute instances create vm1 \
    --zone ZONE \
    --network-interface "subnet=SUBNET_NAME,aliases=RANGE_CIDR_1;RANGE_CIDR_2,..."

Où :

  • ZONE correspond à la zone dans laquelle se trouvera l'instance.
  • SUBNET_NAME correspond au nom du sous-réseau dans lequel se trouvera l'instance.
  • RANGE_CIDR_1 et RANGE_CIDR_2 sont les plages d'adresses IP du sous-réseau principal à attribuer à l'interface. Il peut s'agir d'une plage spécifique (192.168.100.0/24), d'une adresse IP unique (192.168.100.1) ou d'un masque de réseau au format CIDR (/24). Si la plage d'adresses IP n'est spécifiée que par un masque de réseau, l'outil d'attribution d'adresses IP choisit une plage disponible avec le masque de réseau spécifié et l'alloue à l'interface réseau. Pour spécifier plusieurs plages, séparez les plages par des points-virgules (;).

Pour obtenir la syntaxe complète, consultez la documentation de gcloud CLI.

API

Créez une instance avec une adresse IP d'alias dans la plage d'adresses IP principale du sous-réseau de l'instance.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "networkInterfaces": [
    {
      "aliasIpRanges": [
        {
          "ipCidrRange": "CIDR_RANGE"
        }
      ]
    },
    ...
  ],
  ...
}

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

  • PROJECT_ID correspond à l'ID du projet dans lequel vous créez l'instance.
  • CIDR_RANGE correspond à la plage d'adresses IP du sous-réseau principal à attribuer à l'interface. Il peut s'agir d'une plage spécifique (192.168.100.0/24), d'une adresse IP unique (192.168.100.1) ou d'un masque de réseau au format CIDR (/24). Si la plage d'adresses IP n'est spécifiée que par un masque de réseau, l'outil d'attribution d'adresses IP choisit une plage disponible avec le masque de réseau spécifié et l'attribue à l'interface réseau.
  • ZONE est la zone Google Cloud dans laquelle l'instance est créée.

Pour en savoir plus, consultez la section sur la méthode instance.insert.

Créer une VM avec une plage d'adresses IP d'alias dans une plage CIDR secondaire

Cette procédure permet d'attribuer une plage d'adresses IP d'alias issue de la plage secondaire du sous-réseau. Le fait de séparer les plages d'adresses IP d'alias de la plage principale du sous-réseau facilite la création de règles de pare-feu qui permettent d'accéder aux services exécutés sur une machine virtuelle, mais pas à l'adresse IP principale de la machine virtuelle.

Console

  1. Accédez à la page "Instances de VM" de Google Cloud Console.
    Accéder à la page Instances de VM
  2. Cliquez sur Créer une instance.
  3. Saisissez un nom pour la nouvelle instance.
  4. Spécifiez une zone.
  5. Cliquez sur Gestion, sécurité, disques, mise en réseau et location unique.
  6. Cliquez sur l'onglet Réseau.
  7. Cliquez sur le bouton de modification (icône représentant un crayon) à côté de l'interface principale dans la section Interfaces réseau.
  8. Cliquez sur Afficher les plages d'adresses IP d'alias.
  9. Sélectionnez le sous-réseau qui comporte la plage secondaire.
  10. Sous Plage de sous-réseaux, sélectionnez la Plage d'adresses IP secondaire que vous souhaitez utiliser.
  11. Saisissez une Plage d'adresses IP d'alias au format CIDR. Il doit s'agir d'une plage non utilisée de la plage d'adresses IP secondaire.
  12. Cliquez sur Créer.

gcloud

gcloud compute instances create vm3 \
    --zone ZONE \
    --network-interface subnet=SUBNET_NAME,aliases=RANGE_NAME:RANGE_CIDR
 

Où :

  • ZONE correspond à la zone dans laquelle se trouvera l'instance.
  • SUBNET_NAME correspond au nom du sous-réseau dans lequel se trouvera l'instance.
  • RANGE_NAME correspond au nom de la plage secondaire du sous-réseau à partir de laquelle extraire la plage d'adresses IP d'alias.
  • RANGE_CIDR correspond à la plage d'adresses IP à attribuer à l'interface. Il peut s'agir d'une plage spécifique (192.168.100.0/24), d'une adresse IP unique (192.168.100.1) ou d'un masque de réseau au format CIDR (/24). Si la plage d'adresses IP n'est spécifiée que par un masque de réseau, l'outil d'attribution d'adresses IP choisit une plage disponible avec le masque de réseau spécifié et l'alloue à l'interface réseau.

Pour obtenir la syntaxe complète, consultez la documentation de gcloud.

API

Créez une instance avec une adresse IP d'alias dans la plage d'adresses IP secondaire du sous-réseau de l'instance.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "networkInterfaces": [
    {
      "aliasIpRanges": [
        {
          "ipCidrRange": "SECONDARY_CIDR_RANGE",
          "subnetworkRangeName": "SECONDARY_RANGE_NAME"
        }
      ]
    },
    ...
  ],
  ...
}

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

  • PROJECT_ID correspond à l'ID du projet dans lequel vous créez l'instance.
  • SECONDARY_CIDR_RANGE correspond à la plage d'adresses IP à attribuer à l'interface. Il peut s'agir d'une plage spécifique (192.168.100.0/24), d'une adresse IP unique (192.168.100.1) ou d'un masque de réseau au format CIDR (/24). Si la plage d'adresses IP n'est spécifiée que par un masque de réseau, l'outil d'attribution d'adresses IP choisit une plage disponible avec le masque de réseau spécifié et l'attribue à l'interface réseau.
  • SECONDARY_RANGE_NAME correspond au nom de la plage secondaire du sous-réseau à partir de laquelle extraire la plage d'adresses IP d'alias.
  • ZONE est la zone Google Cloud dans laquelle l'instance est créée.

Pour en savoir plus, consultez la section sur la méthode instance.insert.

Créer une machine virtuelle avec plusieurs interfaces et adresses IP d'alias

Cet exemple permet de créer deux réseaux, chacun avec un sous-réseau, et une machine virtuelle avec des interfaces dans les deux réseaux. Si vous disposez déjà de deux réseaux VPC, vous pouvez passer à l'étape "Créer une instance de VM".

Console

Créez le premier réseau et le premier sous-réseau :

  1. Accédez à la page "Réseaux VPC" dans Google Cloud Console.
    Accéder à la page Réseaux VPC
  2. Cliquez sur Créer un réseau VPC.
  3. Saisissez le nom my-network1.
  4. Définissez le mode de création du sous-réseau sur Custom, puis saisissez le Nom my-subnet1 pour le sous-réseau.
  5. Spécifiez une région.
  6. Définissez la plage d'adresses IP sur 172.16.1.0/24.
  7. Cliquez sur Créer une plage d'adresses IP secondaire.
  8. Définissez le nom de la plage du sous-réseau sur range1.
  9. Définissez la plage d'adresses IP secondaire sur 10.1.0.0/16.
  10. Cliquez sur OK.
  11. Cliquez sur Créer.

Créez le deuxième réseau et le deuxième sous-réseau :

  1. Accédez à la page "Réseaux VPC" dans Google Cloud Console.
    Accéder à la page Réseaux VPC
  2. Cliquez sur Créer un réseau VPC.
  3. Saisissez le nom my-network2.
  4. Définissez le mode de création du sous-réseau sur Custom, puis saisissez le Nom my-subnet2 pour le sous-réseau.
  5. Spécifiez la même région que pour le premier réseau et le premier sous-réseau.
  6. Définissez la plage d'adresses IP sur 172.16.2.0/24.
  7. Cliquez sur Créer une plage d'adresses IP secondaire.
  8. Définissez le nom de la plage du sous-réseau sur range2.
  9. Définissez la plage d'adresses IP secondaire sur 10.2.0.0/16.
  10. Cliquez sur OK.
  11. Cliquez sur Créer.

Créez une machine virtuelle avec des interfaces dans les deux réseaux :

  1. Accédez à la page "Instances de VM" de Google Cloud Console.
    Accéder à la page Instances de VM
  2. Cliquez sur Créer une instance.
  3. Définissez la zone sur la région dans laquelle vous avez créé les sous-réseaux.
  4. Cliquez sur Gestion, sécurité, disques, mise en réseau et location unique.
  5. Cliquez sur Réseau.
  6. Cliquez sur l'interface du premier réseau.
  7. Définissez le paramètre Réseau sur my-network1.
  8. Définissez le sous-réseau sur my-subnet1.
  9. Cliquez sur Afficher les plages d'adresses IP d'alias.
  10. Cliquez sur Ajouter une plage d'adresses IP d'alias.
  11. Définissez la plage de sous-réseau sur Primary.
  12. Définissez la plage d'adresses IP d'alias sur /32.
  13. Cliquez sur Ajouter une plage d'adresses IP.
  14. Définissez le paramètre Plage de sous-réseau sur range1.
  15. Définissez la plage d'adresses IP d'alias sur /24.
  16. Cliquez sur OK.
  17. Cliquez sur Ajouter une interface réseau.
  18. Sélectionnez my-network2.
  19. Définissez le sous-réseau sur my-subnet2.
  20. Cliquez sur Afficher les plages d'adresses IP d'alias.
  21. Cliquez sur Ajouter une plage d'adresses IP d'alias.
  22. Définissez la plage de sous-réseau sur Primary.
  23. Définissez la plage d'adresses IP d'alias sur /32.
  24. Cliquez sur Ajouter une plage d'adresses IP.
  25. Définissez la plage de sous-réseau sur range2.
  26. Saisissez une plage d'adresses IP d'alias de /24.
  27. Cliquez sur OK.
  28. Cliquez sur Créer.

gcloud

  1. Créez le premier réseau :

    gcloud compute networks create my-network1 --subnet-mode CUSTOM
    
  2. Ajoutez un sous-réseau :

    gcloud compute networks subnets create my-subnet1 \
        --network my-network1 \
        --range 172.16.1.0/24 \
        --secondary-range range1=10.1.0.0/16
    
  3. Créez un deuxième réseau :

    gcloud compute networks create my-network2 --subnet-mode CUSTOM
    
  4. Ajoutez un sous-réseau :

    gcloud compute networks subnets create my-subnet2 \
        --network my-network2 \
        --range 172.16.2.0/24 \
        --secondary-range range2=10.2.0.0/16
    
  5. Créez une machine virtuelle avec des interfaces dans les deux réseaux. La première interface réseau répertoriée, celle de my-subnet1, est l'interface principale :

    gcloud compute instances create multi-nic-alias-vm \
        --machine-type f1-micro \
        --network-interface "subnet=my-subnet1,aliases=/32;range1:/24" \
        --network-interface "subnet=my-subnet2,aliases=/32;range2:/24"
    
  6. Utilisez la commande d'affichage pour afficher les interfaces et leurs adresses :

    gcloud compute instances describe multi-nic-alias-vm
    
    ...
    networkInterfaces:
    - ...
      aliasIpRanges:
      - ipCidrRange: 172.16.1.2/32
      - ipCidrRange: 10.1.0.0/24
        subnetworkRangeName: range1
      name: nic0
      network: .../networks/my-network1
      networkIP: 172.16.1.3
      subnetwork: .../subnetworks/my-subnet1
      ...
    - ...
      aliasIpRanges:
      - ipCidrRange: 172.16.2.2/32
      - ipCidrRange: 10.2.0.0/24
        subnetworkRangeName: range2
      name: nic1
      network: .../networks/my-network2
      networkIP: 172.16.2.3
      subnetwork: .../subnetworks/my-subnet2
      

API

  1. Créez deux réseaux VPC en mode personnalisé nommés my-network1 et my-network2. Pour plus d'informations, consultez la section Créer un réseau en mode personnalisé.

  2. Ajoutez des sous-réseaux aux réseaux VPC. Pour plus d'informations, reportez-vous à la section Ajouter des sous-réseaux.

    1. Ajoutez un sous-réseau nommé my-subnet1 à my-network1. Spécifiez 172.16.1.0/24 pour la plage principale et 10.1.0.0/16 pour la plage secondaire avec le nom range1.

    2. Ajoutez un sous-réseau nommé my-subnet2 à my-network2. Spécifiez 172.16.2.0/24 pour la plage principale et 10.2.0.0/16 pour la plage secondaire avec le nom range2.

  3. Créez une machine virtuelle avec des interfaces dans les deux réseaux :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    {
      "networkInterfaces": [
        {
          "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/my-subnet1",
          "aliasIpRanges": [
            {
              "ipCidrRange": "/32",
            },
            {
              "subnetworkRangeName": "range1",
              "ipCidrRange": "/24"
            }
          ]
        },
        {
          "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/my-subnet2",
          "aliasIpRanges": [
            {
              "ipCidrRange": "/32",
            },
            {
              "subnetworkRangeName": "range2",
              "ipCidrRange": "/24"
            }
          ]
        }
      ],
      ...
    }
    

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

    • PROJECT_ID correspond à l'ID du projet dans lequel vous créez l'instance.
    • REGION correspond à la région Google Cloud où se trouve le sous-réseau. Les sous-réseaux doivent se trouver dans la même région que l'instance.
    • ZONE est la zone Google Cloud dans laquelle l'instance est créée.

    Pour en savoir plus, consultez la section sur la méthode instance.insert.

Ajouter des plages d'adresses IP d'alias à une instance existante

Vous pouvez ajouter une plage d'adresses IP d'alias à une instance en cours d'exécution.

Les nouvelles adresses peuvent ne pas être disponibles immédiatement, même une fois l'appel d'API terminé. Elles seront uniquement disponibles lorsque le système d'exploitation invité aura ajouté les adresses et les routes.

Console

  1. Accédez à la page "Instances de VM" de Google Cloud Console.
    Accéder à la page Instances de VM
  2. Cliquez sur le nom d'une instance existante.
  3. Cliquez sur Modifier.
  4. Cliquez sur l'interface réseau nic0 (ou l'interface réseau à laquelle vous allez ajouter une plage d'adresses IP d'alias).
  5. Cliquez sur Afficher les plages d'adresses IP d'alias.
  6. Cliquez sur Ajouter une plage d'adresses IP.
  7. Sélectionnez une plage de sous-réseau.
  8. Saisissez une plage d'adresses IP d'alias.
  9. Cliquez sur OK.
  10. Cliquez sur Enregistrer.

gcloud

gcloud compute instances network-interfaces update INSTANCE_NAME \
    --zone ZONE \
    [--network-interface NETWORK_INTERFACE; default="nic0"]
    --aliases "RANGE_NAME_1:RANGE_CIDR_1;RANGE_NAME_2:RANGE_CIDR_2;..."

Remplacez les éléments suivants :

  • ZONE correspond à la zone dans laquelle se trouve l'instance.
  • NETWORK_INTERFACE correspond au nom de l'interface réseau à laquelle vous ajoutez une plage d'adresses IP d'alias.
  • RANGE_NAME_1 et RANGE_NAME_2 sont les noms des plages secondaires des sous-réseaux à partir desquelles extraire la plage d'adresses IP d'alias. Si vous attribuez des plages depuis la plage principale du sous-réseau, ne renseignez pas cette valeur.
  • RANGE_CIDR_1 et RANGE_CIDR_2 sont les plages d'adresses IP à attribuer à l'interface. Il peut s'agir d'une plage spécifique (192.168.100.0/24), d'une adresse IP unique (192.168.100.1) ou d'un masque de réseau au format CIDR (/24). Si la plage d'adresses IP n'est spécifiée que par un masque de réseau, l'outil d'attribution d'adresses IP choisit une plage disponible avec le masque de réseau spécifié et l'alloue à l'interface réseau.

Pour obtenir la syntaxe complète, consultez la documentation de gcloud.

API

Ajoutez des plages d'adresses IP d'alias à une instance existante :

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/multinic/updateNetworkInterface?networkInterface=NETWORK_INTERFACE_NAME
{
  "aliasIpRanges": [
    {
      "ipCidrRange": "SECONDARY_IP_RANGE",
      "subnetworkRangeName": "SECONDARY_RANGE_NAME"
    },
    existing ranges...
  ],
  "fingerprint": "INTERFACE_FINGERPRINT"
}

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

  • PROJECT_ID correspond à l'ID du projet contenant l'instance à modifier.
  • NETWORK_INTERFACE_NAME correspond au nom de l'interface réseau de l'instance à modifier.
  • INTERFACE_FINGERPRINT correspond à l'ID d'empreinte de l'interface réseau existante, fourni lorsque vous décrivez une instance.
  • SECONDARY_CIDR_RANGE correspond à la plage d'adresses IP à attribuer à l'interface. Il peut s'agir d'une plage spécifique (192.168.100.0/24), d'une adresse IP unique (192.168.100.1) ou d'un masque de réseau au format CIDR (/24). Si la plage d'adresses IP n'est spécifiée que par un masque de réseau, l'outil d'attribution d'adresses IP choisit une plage disponible avec le masque de réseau spécifié et l'attribue à l'interface réseau.
  • SECONDARY_RANGE_NAME correspond au nom de la plage secondaire du sous-réseau à partir de laquelle extraire la plage d'adresses IP d'alias. Si vous attribuez des plages depuis la plage principale du sous-réseau, ne renseignez pas ce champ.
  • ZONE est la zone Google Cloud dans laquelle l'instance est créée.

Pour en savoir plus, consultez la section sur la méthode instance.updateNetworkInterface.

Modifier des plages d'adresses IP d'alias pour une instance existante

Vous pouvez ajouter d'autres plages d'adresses IP d'alias à une instance existante, ou supprimer une ou plusieurs plages.

Les changements d'adresse peuvent ne pas être visibles immédiatement. L'appel d'API doit être terminé et le système d'exploitation invité doit modifier les adresses et les routes.

Console

  1. Accédez à la page "Instances de VM" de Google Cloud Console.
    Accéder à la page Instances de VM
  2. Cliquez sur le nom d'une instance existante.
  3. Cliquez sur Modifier.
  4. Cliquez sur l'interface réseau nic0 (ou l'interface réseau que vous allez modifier).
  5. Cliquez sur Afficher les plages d'adresses IP d'alias.
  6. Pour ajouter une plage d'adresses IP d'alias, cliquez sur Ajouter une plage d'adresses IP d'alias.
  7. Pour supprimer une plage d'adresses IP d'alias, cliquez sur le symbole X à côté de la plage d'adresses IP d'alias.
  8. Cliquez sur OK.
  9. Cliquez sur Enregistrer.

gcloud

gcloud compute instances network-interfaces update INSTANCE_NAME \
    --zone ZONE \
    [--network-interface NETWORK_INTERFACE; default="nic0"]
    --aliases "RANGES_TO_RETAIN;NEW_RANGE_NAME:NEW_RANGE_CIDR;..."
  • ZONE correspond à la zone dans laquelle se trouve l'instance.
  • NETWORK_INTERFACE correspond au nom de l'interface réseau que vous modifiez.
  • RANGES_TO_RETAIN correspond aux plages existantes, au format CURRENT_RANGE_NAME:CURRRENT_RANGE_CIDR, que vous souhaitez conserver. Si vous ajoutez des plages à une instance qui n'en possède pas, ces valeurs seront vides. Si vous supprimez toutes les plages de l'instance, l'intégralité du champ --aliases sera vide.
  • NEW_RANGE_NAME correspond au nom de la plage secondaire du sous-réseau à partir de laquelle extraire les nouvelles plages d'adresses IP d'alias. Si vous attribuez des plages depuis la plage principale du sous-réseau, ne renseignez pas cette valeur.
  • NEW_RANGE_CIDR correspond à la plage d'adresses IP à attribuer à l'interface. Il peut s'agir d'une plage spécifique (192.168.100.0/24), d'une adresse IP unique (192.168.100.1) ou d'un masque de réseau au format CIDR (/24). Si la plage d'adresses IP n'est spécifiée que par un masque de réseau, l'outil d'attribution d'adresses IP choisit une plage disponible avec le masque de réseau spécifié et l'alloue à l'interface réseau.

Pour ajouter des plages, exécutez la commande, et spécifiez toutes les plages d'adresses IP d'alias nouvelles et existantes. Les paires sont séparées par des points-virgules. Exemple : --aliases "CURRENT_RANGE_NAME:CURRRENT_RANGE_CIDR;NEW_RANGE_NAME:NEW_RANGE_CIDR"

Pour supprimer des plages, exécutez la commande et spécifiez uniquement les plages d'adresses IP d'alias que vous souhaitez conserver. Si vous conservez des plages issues d'une plage secondaire, vous devez spécifier le nom de la plage secondaire. Une plage CIDR peut être une plage spécifique (192.168.100.0/24) ou une adresse IP unique (192.168.100.1). Exemple : --aliases "RANGE_NAME:RANGE_CIDR;RANGE_CIDR"

Pour supprimer toutes les plages, exécutez la commande et spécifiez l'option --aliases, mais utilisez des guillemets pour fournir une entrée vide. Exemple : --aliases ""

Vous ne pouvez pas ajouter et supprimer des plages dans la même commande gcloud. Pour supprimer certaines plages et en ajouter d'autres avec Google Cloud CLI, commencez par exécuter la commande permettant de supprimer les plages inutiles, puis exécutez-la de nouveau pour ajouter les plages nécessaires.

Pour obtenir la syntaxe complète, consultez la documentation de gcloud.

API

Pour l'interface réseau d'une instance existante, ajoutez ou supprimez des plages d'adresses IP d'alias.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/multinic/updateNetworkInterface?networkInterface=NETWORK_INTERFACE_NAME
{
  "aliasIpRanges": [
    include new and existing ranges to add them...
    exclude existing ranges to remove them...
  ],
  "fingerprint": "INTERFACE_FINGERPRINT"
}

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

  • PROJECT_ID correspond à l'ID du projet contenant l'instance à modifier.
  • NETWORK_INTERFACE_NAME correspond au nom de l'interface réseau de l'instance à modifier.
  • INTERFACE_FINGERPRINT correspond à l'ID d'empreinte de l'interface réseau existante, fourni lorsque vous décrivez une instance.

Pour en savoir plus, consultez la section sur la méthode instance.updateNetworkInterface.

Dépannage

Impossible de créer une instance de machine virtuelle avec une adresse IP d'alias

  1. Vérifiez que le réseau est un réseau VPC. Les adresses IP d'alias ne sont pas compatibles avec les anciens réseaux.

    gcloud compute networks list --filter="name=NETWORK_NAME"
    

    Le MODE du réseau doit être "auto" ou "personnalisé".

  2. Si un nom de plage de sous-réseau est spécifié, vérifiez les éléments suivants :

    gcloud compute networks subnets describe SUBNET_NAME --region=REGION
    
    • Le sous-réseau comporte une plage secondaire avec le nom correspondant.
    • La plage d'adresses IP d'alias demandée se trouve dans cette plage secondaire ou, si vous utilisez un masque de réseau, elle est inférieure à la plage principale.
  3. Si le nom de la plage de sous-réseau n'est pas spécifié, vérifiez que la plage d'adresses IP d'alias demandée se trouve dans la plage de sous-réseau principale, ou qu'elle est inférieure à la plage principale si vous utilisez un masque de réseau.

Impossible de se connecter à l'adresse IP d'alias

  1. Vérifiez les règles de pare-feu.

    1. Répertoriez toutes les règles de pare-feu :

      gcloud compute firewall-rules list --format=json
      
    2. Vérifiez que le trafic à destination et en provenance de l'adresse IP d'alias est autorisé.

    3. Si nécessaire, ajoutez des règles de pare-feu pour autoriser le ping de l'adresse IP d'alias.

      gcloud compute firewall-rules create FIREWALL_NAME1 \
        --network NETWORK_NAME --priority 0 --source-ranges ALIAS_IP \
        --allow icmp
      
      gcloud compute firewall-rules create FIREWALL_NAME2 \
        --network NETWORK_NAME --priority 0 --direction out \
        --destination-ranges ALIAS_IP --allow icmp
      
  2. Assurez-vous que la machine virtuelle reconnaît les plages d'adresses IP d'alias comme étant locales. Sur les distributions Linux telles que Debian, il faut généralement procéder comme suit :

    1. Connectez-vous à l'instance, puis exécutez la commande suivante :

      ip route show table local
      

      La sortie doit contenir les éléments suivants :

      local ALIAS_IP_RANGE dev eth0  proto 66  scope host
      
    2. Assurez-vous que ip_aliases = true dans /etc/default/instance_configs.cfg. Si vous devez apporter des modifications, vous devez également redémarrer l'agent invité :

      systemctl restart google-guest-agent
      
    3. En l'absence de route locale, configurez-la à l'aide de la commande suivante :

      ip route add to local ALIAS_IP_RANGE dev eth0 proto 66
      

Liaison impossible entre un service à exécution automatique et l'adresse IP d'alias

Sur les distributions Linux compatibles, les adresses IP d'alias sont automatiquement définies comme des adresses locales par l'agent invité préinstallé. Cela simplifie la configuration, car aucune configuration n'est nécessaire au niveau du système d'exploitation.

Toutefois, cela signifie également que le système d'exploitation ne reconnaît pas les adresses IP d'alias comme des adresses locales, avant l'exécution de l'agent invité. Si vous disposez sur votre VM de services s'exécutant automatiquement, et que ceux-ci démarrent avant l'agent invité, ils ne peuvent pas être liés aux adresses IP d'alias.

Par exemple, un serveur HTTP Apache peut se fermer avec l'erreur suivante :

could not bind to address ALIAS_IP:80

Pour résoudre ce problème, configurez votre service afin qu'il démarre après l'agent invité. Sur les distributions qui utilisent systemctl, procédez comme suit :

  1. En tant qu'utilisateur privilégié, exécutez la commande suivante pour ajouter un extrait prêt à l'emploi pour le service qui ne fonctionne pas correctement ; par exemple, apache2 pour un serveur HTTP Apache sur Debian :

    systemctl edit YOUR_SERVICE
    
  2. Ajoutez les lignes suivantes dans l'éditeur de texte. Veillez à ajouter les lignes au-dessus de la ligne mentionnant Lines below this comment will be discarded.

    [Unit]
    After=google-guest-agent.service
    

Ma plage d'adresses IP secondaires ne figure pas dans la liste

Les plages d'adresses IP secondaires ne sont pas répertoriées en tant que sous-réseaux standards. Pour afficher la création d'une plage d'adresses IP secondaire du sous-réseau, utilisez la commande gcloud compute networks subnets describe.

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

    gcloud compute networks subnets create my-subnet \
        --region us-central1 \
        --network my-network \
        --range 10.9.0.0/16 \
        --secondary-range secondaryrange1=172.16.0.0/12
    
    Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/regions/us-central1/subnetworks/my-subnet].
    NAME       REGION       NETWORK     RANGE
    my-subnet  us-central1  my-network  10.9.0.0/16
    
  2. Répertoriez vos sous-réseaux.

    gcloud compute networks subnets list
    
    NAME       REGION       NETWORK     RANGE
    my-subnet  us-central1  my-network  10.9.0.0/16
    
  3. Obtenez des informations sur un sous-réseau pour afficher les plages secondaires.

    gcloud compute networks subnets describe my-subnet --region us-central1
    
    ...
    ipCidrRange: 10.9.0.0/16
    ...
    secondaryIpRanges:
    - ipCidrRange: 172.16.0.0/12
      rangeName: secondaryrange1
    ...
    

La plage secondaire du sous-réseau spécifiée n'existe pas

Lors de la création d'une machine virtuelle, si une erreur indique que la plage secondaire n'existe pas, vérifiez les points suivants :

  • Le sous-réseau comporte une plage secondaire avec le nom spécifié.
  • Vous créez bien votre machine virtuelle dans le sous-réseau qui comporte la plage secondaire.

Vous pouvez afficher cette erreur en exécutant les commandes suivantes :

  1. Créez un sous-réseau avec une plage secondaire.

    gcloud compute networks subnets create my-subnet \
        --region us-central1 \
        --network my-network \
        --range 10.9.0.0/16 \
        --secondary-range secondaryrange1=172.16.0.0/12
    
    Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/regions/us-central1/subnetworks/my-subnet].
    NAME       REGION       NETWORK     RANGE
    my-subnet  us-central1  my-network  10.9.0.0/16
    
  2. Créez une instance dans un autre réseau, tel que le réseau par défaut, plutôt que dans le sous-réseau nouvellement créé.

    gcloud compute instances create instance-1 \
        --zone us-central1-a \
        --network default
    
    Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/zones/us-central1-a/instances/instance-1].
    NAME        ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
    instance-1  us-central1-a  n1-standard-1               10.128.0.2     47.82.96.9  RUNNING
    
  3. Essayez d'attribuer une plage d'adresses IP d'alias à partir du sous-réseau créé à l'étape 1. La commande échouera, car la plage secondaire se trouve dans un sous-réseau différent de l'instance.

    gcloud compute instances network-interfaces update instance-1 \
        --zone us-central1-a \
        --aliases secondaryrange1:172.16.0.10/32
    
    ERROR: (gcloud.compute.instances.network-interfaces.update) HTTPError 400: Invalid value for field 'resource.aliasIpRanges[0].subnetworkRangeName': 'secondaryrange'. The specified subnetwork secondary range does not exist.
    
  4. Créez une autre instance ayant une interface dans le sous-réseau créé à l'étape 1.

    gcloud compute instances create instance-2 \
        --zone us-central1-a \
        --network-interface subnet=my-subnet
    
    Created [https://www.googleapis.com/compute/v1/projects/google.com:my-project/zones/us-central1-a/instances/instance-2].
    NAME        ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
    instance-2  us-central1-a  n1-standard-1               10.9.0.2     38.74.204.89  RUNNING
    
  5. Ajoutez une plage d'adresses IP d'alias à l'interface. Cette fois-ci, la commande aboutit, car l'interface et la plage secondaire se trouvent dans le même sous-réseau.

    gcloud compute instances network-interfaces update instance-2 \
        --zone us-central1-a \
        --aliases secondaryrange1:172.16.0.10/32
    
    Updating network interface [nic0] of instance [instance-2]...done.
    

Impossible d'ajouter et de supprimer des plages d'adresses IP secondaires dans la même requête

Il n'est actuellement pas possible d'ajouter ou de supprimer des plages d'adresses IP secondaires de sous-réseau dans la même commande. Les commandes gcloud d'ajout et de suppression des plages secondaires conserveront les plages existantes qui ne sont pas modifiées.

Pour ajouter et supprimer des plages, exécutez les deux commandes séparément.

gcloud compute networks subnets update SUBNET_NAME \
    --add-secondary-ranges RANGE_NAME_1=RANGE_CIDR_1,RANGE_NAME_2=RANGE_CIDR_2,...
gcloud compute networks subnets update  SUBNET_NAME \
    --remove-secondary-ranges RANGE_NAME_1,RANGE_NAME_2,...

Pour plus d'informations sur cette commande, utilisez gcloud compute networks subnets update --help.

Impossible d'ajouter et de supprimer simultanément des plages d'adresses IP d'alias

Il n'est actuellement pas possible d'ajouter et de supprimer des plages d'adresses IP d'alias de machine virtuelle dans la même requête.

La commande gcloud de mise à jour des plages d'adresses IP d'alias NE CONSERVE PAS les plages existantes. L'omission d'une plage est donc traitée comme une requête de suppression de cette plage.

Par exemple, si la VM actuelle comporte une plage d'alias 10.9.27.0/24 et que la nouvelle plage demandée est /24, l'exécution de la commande pour demander la plage /24 sera rejetée, car considérée comme supprimant 10.9.27.0/24 et ajoutant /24. La plage existante doit être explicitement supprimée avant de pouvoir ajouter la nouvelle plage.

Exemple :

  1. Créez une plage d'adresses IP d'alias.

    gcloud compute instances create vm --network-interface "subnet=s1,aliases=10.9.27.0/24"
    
  2. Essayez d'ajouter /24 sans spécifier la plage existante. Une erreur s'est produite.

    gcloud compute instances network-interfaces update vm --aliases "/24"
    ERROR: (gcloud.compute.instances.network-interfaces.update) HTTPError 400: Invalid value for field 'resource.aliasIpRanges': ''. Cannot simultaneously add and remove alias IP ranges.
    
  3. Mettez à jour la machine virtuelle pour qu'elle ne comporte pas de plage d'adresses IP d'alias.

    gcloud compute instances network-interfaces update vm --aliases ""
    Updating network interface [nic0] of instance [vm]...done.
    
  4. Ajoutez la nouvelle plage d'adresses IP d'alias.

    gcloud compute instances network-interfaces update vm --aliases "/24"
    Updating network interface [nic0] of instance [vm]...done.
    

Pour plus d'informations sur cette commande, utilisez gcloud compute instances network-interfaces update --help.

Tags sources et comptes de service sources des règles de pare-feu

Le compte de service source et les tags sources du pare-feu ne sont étendus qu'aux adresses IP du réseau principal des instances correspondantes et ne s'appliquent pas aux adresses IP d'alias des instances correspondantes. Ainsi, une règle de pare-feu basée sur des tags sources n'aura pas d'incidence sur le trafic provenant de l'adresse IP d'alias d'une instance. Les adresses IP d'alias peuvent être ajoutées aux règles de pare-feu en tant que plages sources ou de destination.

Problèmes avec les machines virtuelles ayant plusieurs interfaces et plages d'adresses IP d'alias

Consultez la section relative au dépannage des instances à interfaces multiples.

Activer les adresses IP d'alias sur les images Google Cloud désactive le pont cbr0 sur les clusters Kubernetes autogérés

Sur les images fournies par Google, l'agent invité Google crée des routes locales pour les plages d'adresses IP d'alias. Pour les clusters Kubernetes autogérés, vous devez configurer l'agent invité Google afin qu'il ne crée pas de routes locales pour les plages d'adresses IP d'alias. Cette étape n'est pas nécessaire pour les clusters GKE, car GKE désactive la création de routes locales pour les plages d'adresses IP d'alias sur ses images de nœud.

Symptômes :

  • Les pods Kubernetes perdent l'accès au réseau si la route locale créée par l'agent invité supprime la plage d'adresses IP d'alias de l'interface cbr0.

  • Une capture de paquet sur le périphérique de pont Linux (tcpdump -ni cbr arp) montre un manque de réponses ARP de l'interface cbr0, alors que cette interface est opérationnelle.

  • L'inspection de la table de routage locale (ip route show table local) montre que la plage d'adresses IP d'alias est attribuée à l'interface réseau principale (par exemple, eth0 ou ens4) et non à l'interface de pont des conteneurs (cbr0).

Correctif :

  1. Exécutez la commande appropriée de la section Packages installés dans l'environnement invité pour déterminer si la VM de nœud exécute l'agent invité Google. ou un ancien package Compute Engine.

  2. Si votre VM de nœud n'exécute pas l'agent invité Google, installez l'agent invité ou utilisez une image plus récente fournie par Google.

  3. Configurez l'agent invité Google pour qu'il ignore la création de routes locales pour les plages d'adresses IP d'alias et les règles de transfert.

    1. Modifiez le fichier /etc/default/instance_configs.cfg en définissant ip_forwarding=false dans la section [NetworkInterfaces]. Vous pouvez créer la section [NetworkInterfaces] si elle n'est pas déjà présente dans le fichier instance_configs.cfg.

    2. Effectuez l'une des tâches suivantes :

      • Redémarrez la VM de nœud.

      • Redémarrez le service google-guest-agent.service et modifiez la table de routage locale.

        Pour redémarrer le service google-guest-agent.service, exécutez sudo systemctl restart google-guest-agent.service. Modifiez ensuite la table de routage locale pour supprimer toutes les entrées des plages d'adresses IP d'alias. Exemple :

        sudo ip route del local ALIAS_IP_RANGE dev DEVICE_IDENTIFIER
        

        Remplacez les éléments suivants :

        • ALIAS_IP_RANGE : plage d'adresses IP d'alias.
        • DEVICE_IDENTIFIER : identifiant de l'interface réseau. Par exemple, ens4 ou eth0.

    Pour en savoir plus, consultez la section Configuration dans la documentation de l'agent invité Google.

Étape suivante

  • Consultez la page sur les instances pour en savoir plus.