Aceda a VMs através do DNS interno

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

Antes de começar

  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Trusted Cloud by S3NS serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.

    gcloud

    1. Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init
    2. Set a default region and zone.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

    Para mais informações, consulte o artigo Autenticar para usar REST na Trusted Cloud documentação de autenticação.

Determine o nome DNS interno de uma VM

Use o procedimento seguinte para ler o nome DNS interno atribuído a uma instância de VM. Pode obter o nome DNS interno consultando a entrada de metadados hostname.

  1. Estabeleça ligação à VM.
  2. Consultar os metadados de hostname:

    VMs Linux

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

    VMs do Windows

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

O servidor de metadados devolve o nome do anfitrião da VM num dos seguintes formatos, que mostra o tipo de nome DNS interno que a VM usa:

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

No resultado:

  • VM_NAME: o nome da VM
  • ZONE: a zona onde a VM está localizada
  • PROJECT_ID: o projeto ao qual a VM pertence

Aceda às VMs pelo nome DNS interno

Para aceder à VM, use o nome DNS interno em vez do endereço IP.

O exemplo seguinte usa ping para contactar uma VM que usa DNS zonal. Este método funciona, desde que 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 o seguinte:

  • VM_NAME: o nome da VM
  • ZONE: a zona onde a VM está localizada
  • PROJECT_ID: o projeto ao qual a VM pertence

O que se segue?