Accéder aux VM à l'aide d'un DNS interne


Les VM d'un même réseau cloud privé virtuel peuvent accéder les unes aux autres en utilisant des noms DNS internes au lieu d'adresses IP.

Avant de commencer

  • 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 auprès de Compute Engine 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

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

      gcloud init
    2. Définissez une région et une zone par défaut.

    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

Déterminer le nom DNS interne d'une VM

Utilisez la procédure suivante pour afficher le nom DNS interne attribué à une instance de machine virtuelle. Vous pouvez obtenir le nom DNS interne en interrogeant l'entrée de métadonnées hostname.

  1. Connectez-vous à la VM.
  2. Interrogez les métadonnées hostname :

    VM Linux

    curl "http://metadata.google.internal/computeMetadata/v1/instance/hostname" \
      -H "Metadata-Flavor: Google"
    

    VM Windows

    Invoke-RestMethod `
      -Headers @{"Metadata-Flavor" = "Google"} `
      -Uri "http://metadata.google.internal/computeMetadata/v1/instance/hostname"
    

Le serveur de métadonnées renvoie le nom d'hôte de la VM dans l'un des formats suivants, qui indiquent le type de nom DNS interne utilisé par la machine virtuelle:

  • DNS zonal : VM_NAME.ZONE.c.PROJECT_ID.internal
  • DNS global : VM_NAME.c.PROJECT_ID.internal

Dans le résultat :

  • VM_NAME : nom de la VM
  • ZONE : zone où se trouve la VM
  • PROJECT_ID : projet auquel appartient la VM.

Accéder aux VM par nom DNS interne

Pour accéder à la VM, utilisez le nom DNS interne à la place de l'adresse IP.

Dans l'exemple suivant, la commande ping sert à contacter une VM utilisant le DNS zonal. Cette méthode fonctionne à condition que vous ayez créé une règle de pare-feu autorisant le trafic ICMP entrant sur l'instance.

$ ping VM_NAME.ZONE.c.PROJECT_ID.internal -c 1

PING VM_NAME.ZONE.c.PROJECT_ID.internal (10.240.0.17) 56(84) bytes of data.
64 bytes from VM_NAME.ZONE.c.PROJECT_ID.internal (10.240.0.17): icmp_seq=1 ttl=64 time=0.136 ms

Remplacez les éléments suivants :

  • VM_NAME : nom de la VM
  • ZONE : zone où se trouve la VM
  • PROJECT_ID : projet auquel appartient la VM.

Étapes suivantes