Accede a las VMs mediante DNS interno


Las VMs de la misma red de nube privada virtual pueden acceder entre sí mediante nombres de DNS internos en lugar de direcciones IP.

Antes de comenzar

  • Configura la autenticación si aún no lo hiciste. La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud. Para ejecutar un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.

    Selecciona la pestaña para saber cómo planeas usar las muestras en esta página:

    Consola

    Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud, no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init
    2. Configura una región y una zona predeterminadas.

    REST

    Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

      Instala Google Cloud CLI y, luego, inicializa la ejecución del siguiente comando:

      gcloud init

Determina el nombre DNS interno para una VM

Usa el siguiente procedimiento para leer el nombre DNS interno asignado a una VM. Para obtener el nombre de DNS interno, consulta la entrada de metadatos hostname.

  1. Conéctate a la VM.
  2. Consulta los metadatos hostname:

    VM de Linux

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

    VMs de Windows

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

El servidor de metadatos muestra el nombre de host de la VM en uno de los siguientes formatos, que muestra el tipo de nombre de DNS interno que se usa en la VM:

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

En el resultado verás lo siguiente:

  • VM_NAME: El nombre de la VM
  • ZONE: La zona donde se ubica la VM.
  • PROJECT_ID: el proyecto al que pertenece la VM

Accede a las VMs por nombre de DNS interno

Para acceder a la VM, usa el nombre de DNS interno en lugar de la dirección IP.

En el siguiente ejemplo, se usa ping para comunicarse con una VM que utiliza DNS zonal. Este método funciona, siempre y cuando crees una regla de firewall que permita el tráfico de ICMP entrante a la instancia.

$ 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

Reemplaza lo siguiente:

  • VM_NAME: El nombre de la VM
  • ZONE: La zona donde se ubica la VM.
  • PROJECT_ID: el proyecto al que pertenece la VM

¿Qué sigue?