Plages d'adresses IP d'alias

La fonctionnalité Plages d'adresses IP d'alias de Google Cloud vous permet d'attribuer des plages d'adresses IP internes sous forme d'alias aux interfaces réseau d'une machine virtuelle (VM). Cette fonctionnalité est utile dans les cas où plusieurs services sont exécutés sur une machine virtuelle et où vous souhaitez attribuer une adresse IP différente à chacun de ces services. Les plages d'adresses IP d'alias fonctionnent également avec les pods GKE.

Si un seul service est en cours d'exécution sur une machine virtuelle, vous pouvez le référencer en utilisant l'adresse IP principale de l'interface. Si plusieurs services sont exécutés sur une machine virtuelle, vous pouvez attribuer une adresse IP interne différente à chacun. Pour ce faire, utilisez des plages d'adresses IP d'alias.

Plages CIDR principale et secondaire de sous-réseau

Chaque sous-réseau dispose d'une plage CIDR principale qui correspond à la plage d'adresses IP internes définissant le sous-réseau. Chaque instance de machine virtuelle acquiert son adresse IP interne principale à partir de cette plage. Vous pouvez également allouer des plages d'adresses IP d'alias à partir de cette plage principale, ou ajouter une plage secondaire au sous-réseau et allouer des plages d'adresses IP d'alias à partir de la plage secondaire. L'utilisation de plages d'adresses IP d'alias ne nécessite pas de plages de sous-réseaux secondaires. Ces dernières facilitent juste l'organisation.

Plages d'adresses IP d'alias définies dans une interface réseau de VM

L'alias d'adresses IP vous permet de configurer plusieurs adresses IP internes, qui représentent des conteneurs ou des applications hébergés sur une machine virtuelle, sans avoir à définir une interface réseau distincte. Vous pouvez attribuer des plages d'adresses IP d'alias de machine virtuelle à partir des plages principale ou secondaire du sous-réseau.

La page Configurer des plages d'adresses IP d'alias décrit les commandes permettant de configurer un sous-réseau avec des plages secondaires et d'attribuer des adresses IP d'alias aux machines virtuelles.

Le schéma suivant fournit une illustration élémentaire des plages CIDR principale et secondaire et des plages d'adresses IP d'alias de machine virtuelle sur l'interface principale de la machine virtuelle :

Plages CIDR principale et secondaire, et plages d'adresses IP d'alias de VM (cliquez pour agrandir)
Plages CIDR principale et secondaire, et plages d'adresses IP d'alias de VM (cliquez pour agrandir)
  • Une plage CIDR principale 10.1.0.0/16 est configurée dans le cadre d'un sous-réseau.
  • Une plage CIDR secondaire 10.2.0.0/20 est configurée dans le cadre d'un sous-réseau.
  • L'adresse IP principale de VM 10.1.0.2 est allouée à partir de la plage CIDR principale 10.1.0.0/16, tandis qu'une plage d'adresses IP d'alias 10.2.1.0/24 est allouée à la VM à partir de la plage CIDR secondaire 10.2.0.0/20.
  • Les adresses de la plage d'adresses IP d'alias servent d'adresses IP pour les conteneurs hébergés sur la machine virtuelle.

Principaux avantages des plages d'adresses IP d'alias

Lorsque des plages d'adresses IP d'alias sont configurées, Google Cloud installe automatiquement les routes du réseau cloud privé virtuel (VPC, Virtual Private Cloud) correspondant aux plages d'adresses IP principale et d'alias pour le sous-réseau de l'interface réseau principale. Le système d'orchestration de conteneurs n'a pas besoin de spécifier la connectivité du réseau VPC pour ces routes. Cela simplifie le routage du trafic et la gestion des conteneurs. Vous devez effectuer une configuration en mode Invité, comme décrit dans la section Principales propriétés des plages d'adresses IP d'alias.

Lorsque les adresses IP des conteneurs sont allouées par Google Cloud, les processus de validation de Google Cloud permettent de s'assurer que les adresses IP des pods de conteneurs n'entrent pas en conflit avec les adresses IP des machines virtuelles.

Lorsque des adresses IP d'alias sont configurées, des vérifications anti-spoofing sont effectuées sur le trafic, pour veiller à ce que le trafic sortant des machines virtuelles utilise les adresses IP des machines virtuelles et du pod comme adresses sources. Les vérifications anti-spoofing permettent de s'assurer que les machines virtuelles n'envoient pas de trafic avec des adresses IP sources arbitraires. Il est plus sûr d'utiliser des alias d'adresses IP plutôt que des routes statiques pour la mise en réseau de conteneurs, car, dans ce cas, il faudrait désactiver les vérifications anti-spoofing sur les machines virtuelles hôtes des conteneurs (les vérifications anti-spoofing sont désactivées lorsque le transfert d'adresses IP est activé).

Les plages d'adresses IP d'alias peuvent être routées dans le réseau virtuel Google Cloud sans nécessiter de routes supplémentaires. Il n'est pas nécessaire d'ajouter une route pour chaque alias d'adresse IP et de tenir compte des quotas de route.

Les adresses IP d'alias peuvent être annoncées par Cloud Router sur un réseau local connecté via VPN ou Interconnect.

L'attribution de plages d'adresses IP d'alias à partir d'une plage CIDR secondaire présente les avantages suivants. En allouant à partir d'une plage distincte de la plage utilisée pour les adresses IP principales, vous pouvez séparer l'infrastructure (VM) des services (conteneurs). Lorsque vous configurez des espaces d'adresses distincts pour l'infrastructure et les services, vous pouvez configurer des contrôles de pare-feu pour les adresses IP d'alias de VM qui se distinguent des contrôles de pare-feu destinés aux adresses IP principales d'une VM. Par exemple, vous pouvez autoriser un certain trafic pour les pods de conteneurs et refuser un trafic similaire pour l'adresse IP principale de la machine virtuelle.

Architecture de conteneur dans Google Cloud

Imaginons que vous souhaitiez configurer des services en conteneur en plus de Google Cloud. Vous devez créer les VM qui hébergeront les services, ainsi que les conteneurs.

Dans ce cas, vous voulez router le trafic depuis et vers les conteneurs en direction et à partir des emplacements sur site connectés via un VPN. En revanche, vous ne souhaitez pas que les adresses IP principales des VM soient accessibles via le VPN. Pour créer cette configuration, il est nécessaire de pouvoir router la plage d'adresses IP des conteneurs via le VPN, mais ce n'est pas le cas pour la plage d'adresses IP principale des VM. Vous souhaitez également attribuer automatiquement un pool d'adresses IP utilisées pour le conteneur, au moment de la création de la machine virtuelle.

Pour créer cette configuration, procédez comme suit :

  • Lorsque vous créez le sous-réseau, configurez les éléments suivants :
    • Une plage CIDR principale, par exemple 10.128.0.0/16
    • Une plage CIDR secondaire, par exemple 172.16.0.0/16
  • Utilisez un modèle d'instance pour créer des VM et attribuez-leur automatiquement les éléments suivants :
    • Une adresse IP principale issue de la plage 10.128.0.0/16
    • Une plage d'alias /24 provenant de l'espace CIDR secondaire 172.16.0.0/16, de manière à pouvoir attribuer à chaque conteneur d'une VM une adresse IP issue de la plage CIDR secondaire /24
  • Créez deux règles de pare-feu :
    • Une règle qui interdit au trafic circulant sur le VPN depuis le site d'atteindre la plage CIDR principale du sous-réseau.
    • Une règle qui permet au trafic circulant sur le VPN depuis le site d'atteindre la plage CIDR secondaire du sous-réseau.

Exemple : configurer des conteneurs avec des plages d'adresses IP d'alias

Les plages d'adresses IP d'alias permettent d'allouer des adresses IP de conteneurs à partir d'une plage CIDR secondaire et de les configurer en tant qu'adresses IP d'alias sur la machine virtuelle hébergeant le conteneur.

Configurer des conteneurs avec des adresses IP d'alias (cliquez pour agrandir)
Configurer des conteneurs avec des adresses IP d'alias (cliquez pour agrandir)

Pour créer la configuration illustrée ci-dessus, procédez comme suit :

  1. Créez un sous-réseau avec une plage CIDR 10.128.0.0/16 à partir de laquelle les adresses IP de la machine virtuelle sont allouées et une plage CIDR secondaire 172.16.0.0/20 pour l'utilisation exclusive des conteneurs. Cette plage CIDR secondaire sera configurée comme plage d'adresses IP d'alias dans la machine virtuelle qui l'héberge :

    gcloud compute networks subnets create subnet-a \
        --network network-a \
        --range 10.128.0.0/16 \
        --secondary-range container-range=172.16.0.0/20
    
  2. Créez des machines virtuelles avec une adresse IP principale provenant de la plage 10.128.0.0/16 et une plage d'adresses IP d'alias 172.16.0.0/24 issue de la plage CIDR secondaire 172.16.0.0/20 pour les conteneurs de cette machine virtuelle à utiliser :

    gcloud compute instances create vm1 [...] \
        --network-interface subnet=subnet-a,aliases=container-range:172.16.0.0/24
    gcloud compute instances create vm2 [...] \
        --network-interface subnet=subnet-a,aliases=container-range:172.16.1.0/24
    
  3. Les adresses IP du conteneur sont configurées dans Google Cloud en tant qu'adresses IP d'alias. Dans cette configuration, les adresses IP principales et d'alias seront accessibles via le tunnel VPN. Si Cloud Router est configuré, il annoncera automatiquement la plage de sous-réseau secondaire 172.16.0.0/20. Pour plus d'informations sur l'utilisation du VPN avec Cloud Router, consultez la page Créer un tunnel VPN à l'aide du routage dynamique.

Pour en savoir plus sur les commandes utilisées pour créer cette configuration, consultez la section Configurer les adresses IP et les plages d'alias.

Exemple : plusieurs plages d'adresses IP d'alias configurées dans une seule instance de VM

Les plages d'adresses IP d'alias vous permettent de gérer l'attribution d'adresses IP pour les applications exécutées sur des machines virtuelles, telles que les conteneurs.

Dans certains déploiements, certains conteneurs peuvent être migrés entre les machines virtuelles et d'autres non. Il est possible de configurer des conteneurs pouvant être migrés à l'aide de plages /32, ce qui facilite leur migration individuelle. Les conteneurs ne pouvant pas être migrés sont configurables avec une plage plus étendue, car ils resteront ensemble.

Dans ce type de déploiement, vous pouvez avoir besoin de plusieurs plages d'adresses IP d'alias par instance de machine virtuelle. Par exemple : une plage /27 pour les conteneurs ne pouvant pas être migrés et plusieurs plages /32 pour les conteneurs pouvant être migrés.

Configurer des VM avec plusieurs plages d'adresses IP d'alias (cliquez pour agrandir)
Configurer des VM avec plusieurs plages d'adresses IP d'alias (cliquez pour agrandir)

Pour configurer cet exemple, utilisez les commandes gcloud suivantes :

gcloud compute networks create vpc1 --subnet-mode custom
gcloud compute networks subnets create subnet1 --region us-central1 --network vpc1 --range 10.128.0.0/16 --secondary-range secondaryrange1=172.16.0.0/20
gcloud compute instances create vm1 --zone us-central1-a --network-interface "subnet=subnet1,aliases=secondaryrange1:172.16.0.0/27;secondaryrange1:172.16.1.0/32"
gcloud compute instances create vm2 --zone us-central1-a --network-interface "subnet=subnet1,aliases=secondaryrange1:172.16.0.32/27;secondaryrange1:172.16.1.1/32"

Adresses IP d'alias dans les réseaux et sous-réseaux VPC en mode automatique

Dans les réseaux VPC en mode automatique, un sous-réseau existe dans chaque région. Ces sous-réseaux créés automatiquement comptent chacun une plage CIDR principale, mais ne comportent aucune plage secondaire. Pour utiliser l'adresse IP d'alias avec un réseau VPC en mode automatique, vous pouvez allouer des plages d'adresses IP d'alias à partir de la plage CIDR principale du sous-réseau créé automatiquement, ou ajouter une plage secondaire au sous-réseau créé automatiquement et allouer des plages d'adresses IP d'alias à partir de la nouvelle plage secondaire.

Vous pouvez également créer un sous-réseau avec des plages secondaires dans le réseau VPC en mode automatique, à condition qu'aucune de ses plages ne chevauche 10.128.0.0/9. Vous pouvez ensuite créer des instances de VM dans le nouveau sous-réseau et allouer des plages d'adresses IP d'alias à partir de n'importe quelle plage de ce sous-réseau.

Si vous souhaitez ajouter des plages secondaires à votre sous-réseau, consultez la section Ajouter des plages CIDR secondaires à un sous-réseau existant.

Adresses IP d'alias dans les réseaux et sous-réseaux en mode personnalisé

Dans les réseaux en mode personnalisé :

  • tous les sous-réseaux sont créés manuellement ;
  • la présence d'une plage CIDR principale est obligatoire ;
  • vous pouvez éventuellement créer des plages CIDR secondaires.

Principales propriétés des plages d'adresses IP d'alias

Les propriétés suivantes s'appliquent aux plages d'adresses IP d'alias configurées sur les machines virtuelles :

  • Du point de vue du système d'exploitation de la machine virtuelle, l'adresse IP principale et la passerelle par défaut sont généralement allouées à l'aide de DHCP. Les adresses IP d'alias peuvent être configurées dans le système d'exploitation de la machine virtuelle (généralement Linux ou Windows), manuellement ou à l'aide de scripts.
  • L'adresse IP principale et la plage d'adresses IP d'alias de l'interface doivent être allouées à partir des plages CIDR configurées dans le cadre du même sous-réseau. Notez les exigences suivantes :
    • L'adresse IP principale doit être allouée à partir de la plage CIDR principale.
    • La plage d'adresses IP d'alias peut être allouée à partir de la plage CIDR principale ou d'une plage CIDR secondaire de ce même sous-réseau.
    • Pour une interface réseau de machine virtuelle, l'adresse IP d'alias doit provenir de la même ressource de sous-réseau qui fournit l'adresse IP de l'interface réseau principale. Vous ne pouvez pas sélectionner une plage CIDR principale ou secondaire à partir d'une autre ressource de sous-réseau.
    • L'adresse IP principale peut être une adresse IP interne statique ou éphémère.
    • Les plages d'adresses IP d'alias sont facultatives et ne sont pas ajoutées automatiquement. Une plage d'adresses IP d'alias peut être configurée lors de la création ou de la modification de l'instance.
    • Une plage d'adresses IP d'alias peut être configurée en tant que plage CIDR explicite (par exemple, 10.128.1.0/24), adresse IP unique (par exemple, 10.128.7.29/32) ou masque de réseau (/24). Elle peut être entièrement spécifiée ou allouée automatiquement en utilisant le masque de réseau.
    • Pour utiliser une adresse IP unique dans une plage d'adresses IP d'alias, utilisez le masque de réseau /32.
    • Étant donné que tous les sous-réseaux d'un réseau VPC partagent une seule passerelle par défaut, toutes les adresses IP d'alias d'une interface partagent la même passerelle par défaut que l'adresse IP principale.
    • Vous ne pouvez pas utiliser d'adresses IP réservées dans des plages d'adresses IP d'alias.
Adresses IP d'alias d'une interface qui partagent la même passerelle par défaut que l'adresse IP principale (cliquez pour agrandir)
Adresses IP d'alias d'une interface qui partagent la même passerelle par défaut que l'adresse IP principale (cliquez pour agrandir)

DNS avec adresses IP d'alias

Google Cloud configure automatiquement le DNS interne pour l'adresse IP principale de l'interface principale de chaque instance de VM. Le nom d'hôte de l'instance est alors associé à l'adresse IP principale de l'interface principale. En revanche, la résolution DNS de ce nom d'hôte ne fonctionne que sur le réseau qui contient l'interface principale.

Google Cloud n'associe pas automatiquement d'autres adresses IP au nom d'hôte. Il n'associe pas non plus au nom d'hôte les adresses IP d'alias de l'interface principale, ni aucune adresse IP d'interfaces secondaires.

Vous pouvez configurer manuellement le DNS pour associer d'autres adresses IP.

Pare-feu

Tout le trafic d'entrée ou de sortie, y compris le trafic des plages d'adresses IP d'alias, est évalué par une règle de pare-feu VPC pour rechercher un tag cible ou un compte de service cible correspondant. Pour en savoir plus sur les cibles et les adresses IP d'alias, consultez la section Cibles et adresses IP.

Les plages d'adresses IP d'alias ne sont pas incluses lorsque vous spécifiez des sources pour une règle de pare-feu d'entrée à l'aide de tags sources ou de comptes de service sources.

Routes statiques

Lorsque vous créez une route statique qui utilise une instance de prochain saut spécifiée par une adresse IPv4 interne, Google Cloud vérifie que l'adresse IP de la VM de prochain saut correspond à la plage d'adresses IPv4 d'un sous-réseau du réseau VPC de la route. Toutefois, Google Cloud ne programme la route que si l'adresse de prochain saut est une adresse IPv4 interne principale attribuée à l'interface réseau d'une VM du réseau VPC de la route (et non d'un réseau VPC appairé).

Bien que vous puissiez créer une route dont l'adresse de prochain saut est une adresse IPv4 interne comprise dans une plage d'adresses IP d'alias, Google Cloud ne programme pas cette route, car il considère le prochain saut comme indisponible. Les paquets envoyés à la destination de la route peuvent être supprimés, selon que d'autres routes existent pour la même destination et comportent des sauts suivants en cours d'exécution.

Pour en savoir plus, consultez les pages suivantes :

Appairage de réseaux VPC

L'appairage de réseaux VPC vous permet d'appairer deux réseaux VPC afin que leurs machines virtuelles puissent communiquer via des adresses IP privées internes.

Les plages d'adresses IP principales et secondaires d'un sous-réseau sont accessibles par les instances de machine virtuelle d'un réseau appairé.

Les vérifications de chevauchement de sous-réseau sur les réseaux appairés permettent de s'assurer que les plages principales et secondaires ne se chevauchent pas avec les plages appairées.

Alias d'adresses IP avec appairage de réseaux (cliquez pour agrandir)
Alias d'adresses IP avec appairage de réseaux (cliquez pour agrandir)

Étape suivante