Acessar VMs usando DNS interno


As VMs na mesma rede de nuvem privada virtual podem acessar umas às outras usando nomes DNS internos em vez de endereços IP.

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine da seguinte maneira.

    Selecione a guia para como planeja usar as amostras nesta página:

    Console

    Quando você usa o console do Google Cloud para acessar os serviços e as APIs do Google Cloud, não é necessário configurar a autenticação.

    gcloud

    1. Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init
    2. Defina uma região e uma zona padrão.

    REST

    Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.

      Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init

Determinar o nome DNS interno de uma VM

Use o procedimento a seguir para ler o nome DNS interno atribuído a uma instância de VM. É possível conseguir o nome DNS interno consultando a entrada de metadados hostname.

  1. Conecte-se à VM.
  2. Consulte os metadados hostname:

    VMs do Linux

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

    VM do Windows

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

O servidor de metadados retorna o nome do host da VM em um dos formatos a seguir, que mostra o tipo de nome DNS interno que a VM usa:

  • DNS por zona: VM_NAME.ZONE.c.PROJECT_ID.internal
  • DNS global: VM_NAME.c.PROJECT_ID.internal

Na saída:

  • VM_NAME: o nome da VM
  • ZONE: é a zona em que a VM está localizada
  • PROJECT_ID: o projeto que contém a VM.

Acessar VMs por nome DNS interno

Para acessar a VM, use o nome DNS interno no lugar do endereço IP.

O exemplo a seguir usa ping para conectar uma VM que usa DNS por zona. Esse método funciona desde que você tenha criado uma regra de firewall que permita o tráfego ICMP de entrada para a instância.

$ 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

Substitua:

  • VM_NAME: o nome da VM
  • ZONE: é a zona em que a VM está localizada
  • PROJECT_ID: o projeto que contém a VM.

A seguir