Como criar um registro PTR para uma instância de VM


Os registros PTR configuráveis permitem definir o registro DNS reverso associado ao endereço IP externo de uma instância de VM para que os aplicativos que dependem desses registros funcionem conforme esperado.

Alguns aplicativos requerem registros DNS reversos (registros PTR) a fim de resolver endereços IP para nomes de domínio. Por exemplo, aplicativos que usam SMTP requerem um registro PTR que aponte para o domínio de onde um e-mail é enviado. Sem esse registro, os filtros de spam podem marcar e-mails com pouca reputação, o que faz com que o e-mail acabe em pastas de spam ou não seja nem enviado.

É possível adicionar registros PTR somente à interface de rede principal de uma instância de VM. Os registros PTR não estão disponíveis para front-ends do balanceador de carga, para o Cloud NAT ou para outros endereços IP que não são de VM.

Os registros PTR do IPv6 só estarão disponíveis se a interface de rede principal da instância estiver conectada a uma sub-rede de pilha dupla que tenha um intervalo de endereços IPv6 externo. Nesse caso, é possível ter registros PTR IPv4 e IPv6 separados.

Para criar registros PTR personalizados que substituem os nomes PTR do DNS interno criados automaticamente, consulte Zonas de pesquisa reversa gerenciadas.

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

Confirmar a propriedade do domínio

Antes de criar uma VM com um registro PTR personalizado, confirme se você é o proprietário do nome do domínio. Isso é uma medida de segurança para provar ao Google que você é o proprietário do domínio.

Você pode verificar o nome de domínio de duas maneiras:

  • Se você tiver uma Conta do Google, use o Search Console para fazer a verificação.
  • Se você tiver uma conta do Google ou uma que não seja do Google, faça a verificação adicionando o endereço IP da sua VM à configuração de DNS.

Verificar usando o Search Console

  1. Abra o Search Console e faça login com a Conta do Google Cloud que você usará para adicionar um registro PTR à instância. É possível confirmar a propriedade do domínio com várias contas.
  2. Digite o nome de domínio PTR.
  3. Clique em Continuar.
  4. Siga as instruções e clique em Ir para Propriedade.
  5. Clique em Configurações (no menu à esquerda, perto da parte inferior) e, em seguida, clique em Verificação de propriedade.

Depois de verificar a propriedade do domínio, no painel Configurações, clique em Usuários para ver outros proprietários verificados. Para adicionar registros PTR em outros domínios, clique no seletor de propriedade à esquerda que exibe seu domínio atual. Clique em Adicionar uma propriedade para adicionar esses domínios.

Se a propriedade de seu nome de domínio não for confirmada imediatamente, use o Método recomendado para receber a confirmação.

Verificar adicionando o endereço IP da VM à configuração de DNS

  1. Se a VM ainda não existir, reserve um endereço IP externo estático regional e use-o posteriormente durante a criação da VM.
  2. Adicione um registro "A" com o endereço IP externo da VM à configuração de DNS do seu domínio.

Criar instâncias de VM com registros PTR

É possível especificar registros PTR ao criar novas instâncias. Para adicionar um registro PTR a uma instância atual, consulte Adicionar registros PTR.

Console

  1. No console do Google Cloud, acesse a página Criar uma instância.

    Acesse "Criar uma instância"

  2. Especifique os detalhes da VM.

  3. Expanda a seção Opções avançadas e faça o seguinte:

    1. Expanda a seção Rede.
    2. Crie uma ou mais interfaces de rede para usar com a VM. Se preferir, use a interface de rede padrão.
    3. Na seção Interfaces de rede, expanda a primeira interface de rede, que é a principal.
    4. Na seção Registro PTR do DNS público, selecione cada tipo de registro PTR que você quer adicionar.
    5. No campo Nome de domínio PTR, insira um nome de domínio para cada tipo de registro PTR que você quer adicionar.
    6. No campo Endereço IPv4 externo ou Endereço IPv6 externo, escolha o endereço IP reservado anteriormente. Se você verificou o endereço IP da sua VM pela configuração de DNS, especifique esse endereço.
    7. Para confirmar as configurações da interface de rede, clique em Concluído.
  4. Configure as outras propriedades da nova VM.

  5. Na parte inferior da página, clique em Criar.

Depois que a VM entrar em funcionamento, será possível executar uma pesquisa DNS reversa no endereço IP externo da VM para confirmar que o registro PTR está funcionando como esperado.

gcloud

  • Para criar uma nova instância com um registro PTR IPv4 associado, use o comando gcloud instances create.

    gcloud compute instances create INSTANCE_NAME \
        --image-family IMAGE_FAMILY \
        --image-project IMAGE_PROJECT \
        --public-ptr \
        --public-ptr-domain DOMAIN_NAME \
        --address=IP_ADDRESS
    

    Substitua:

    • INSTANCE_NAME: o nome da nova instância de VM.
    • IMAGE_FAMILY: uma das famílias de imagens disponíveis.
    • IMAGE_PROJECT: o projeto do Google Cloud em que todas as referências de imagens e famílias de imagens são resolvidas. Se você não atribuir um nome ao projeto, o projeto padrão atual será usado.
    • DOMAIN_NAME: o nome de domínio a ser adicionado à instância.
    • IP_ADDRESS: o endereço IP reservado anteriormente. Se você verificou o endereço IP da sua VM pela configuração de DNS, especifique esse endereço.
  • Para criar uma nova instância com um registro PTR IPv6 associado, faça o seguinte:

    1. Crie uma VM de pilha dupla.
    2. Adicione um registro PTR IPv6.

REST

  • Para criar uma nova instância com um registro PTR do IPv4, faça uma solicitação POST para o método instances.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    {
      "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
      "name": "INSTANCE_NAME",
      "disks": [
        {
          "initializeParams": {
            "sourceImage": "projects/debian-cloud/global/images/family/debian-10"
          },
          "boot": true
        }
      ],
      "networkInterfaces": [
        {
          "network": "NETWORK",
          "accessConfigs": [
            {
              "type": "ONE_TO_ONE_NAT",
              "name": "External NAT",
              "natIP": "IP_ADDRESS",
              "publicPtrDomainName": "DOMAIN_NAME",
              "setPublicPtr": true
            }
          ]
        }
      ]
    }
    

    Substitua:

    • PROJECT_ID: ID do projeto.
    • ZONE: a zona da instância.
    • MACHINE_TYPE: o tipo de máquina.
    • INSTANCE_NAME: o nome da instância.
    • NETWORK: o URL da rede.
    • IP_ADDRESS: o endereço IP reservado anteriormente. Se você verificou o endereço IP da sua VM pela configuração de DNS, especifique esse endereço.
    • DOMAIN_NAME: o nome de domínio a ser adicionado.
  • Para criar uma nova instância com um registro PTR do IPv6, faça o seguinte:

    1. Crie uma VM de pilha dupla.
    2. Adicione um registro PTR IPv6.

Adicionar registros PTR

É possível adicionar registros PTR atualizando a configuração de acesso na interface de rede principal, nic0, de uma instância de VM.

Console

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Clique na instância que você quer editar.

  3. Clique em Editar.

  4. Na seção Interfaces de rede, clique na interface de rede principal.

  5. Na seção Registro PTR do DNS público, selecione cada tipo de registro PTR que você quer adicionar.

  6. No campo Nome de domínio PTR, insira um nome de domínio para cada tipo de registro PTR que você quer adicionar.

  7. Clique em Concluído e depois em Salvar.

gcloud

  1. Se a VM não tiver uma configuração de acesso, adicione uma usando o comando gcloud compute instances add-access-config.

    gcloud compute instances add-access-config INSTANCE_NAME
    

    Substitua INSTANCE_NAME pelo nome da instância.

  2. Atualize a configuração de acesso para adicionar o registro PTR usando o comando gcloud compute instances update-access-config. Para adicionar registros PTR do IPv4 e IPv6, use os comandos a seguir individualmente.

    • Para IPv4:

      gcloud compute instances update-access-config INSTANCE_NAME \
          --public-ptr \
          --public-ptr-domain DOMAIN_NAME
      
    • Para IPv6:

      gcloud compute instances update-access-config INSTANCE_NAME \
          --ipv6-public-ptr-domain=DOMAIN_NAME
      

    Substitua:

    • INSTANCE_NAME: o nome da instância a ser atualizada.
    • DOMAIN_NAME: o nome de domínio a ser adicionado.

REST

  1. Se a VM não tiver uma configuração de acesso, adicione uma fazendo uma solicitação POST para o método instances.addAccessConfig.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addAccessConfig?networkInterface="nic0"
    
  2. Atualize a configuração de acesso para adicionar o registro PTR fazendo uma solicitação POST ao método instances.updateAccessConfig. Para adicionar registros PTR IPv4 e IPv6, faça as solicitações a seguir individualmente.

    • Para IPv4:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateAccessConfig?networkInterface=nic0
      {
        "setPublicPtr": true,
        "publicPtrDomainName": "DOMAIN_NAME",
        "type": "ONE_TO_ONE_NAT"
      }
      
    • Para IPv6:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateAccessConfig?networkInterface=nic0
      {
        "publicPtrDomainName": "DOMAIN_NAME",
        "type": "DIRECT_IPV6"
      }
      

    Substitua:

    • PROJECT_ID: o ID do projeto.
    • ZONE: a zona da instância.
    • INSTANCE_NAME: o nome da instância.
    • DOMAIN_NAME: o nome de domínio a ser adicionado.

Remover registros PTR

Para remover os registros PTR, atualize a configuração de acesso na interface de rede principal (nic0) de uma instância de VM. Ao remover um registro PTR, o Google Cloud responde a pesquisas DNS reversas com um nome de domínio totalmente qualificado googleusercontent.com.

Console

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Clique na instância que você quer editar.

  3. Clique em Editar.

  4. Na seção Interfaces de rede, clique na interface de rede principal.

  5. Na seção Registro PTR do DNS público, desmarque a caixa de seleção de cada tipo de registro PTR que você quer remover.

  6. Clique em Concluído e depois em Salvar.

gcloud

Para remover um registro PTR, use o comando gcloud compute instances update-access-config. Para remover os registros PTR IPv4 e IPv6, use os comandos a seguir separadamente.

  • Para IPv4:

    gcloud compute instances update-access-config INSTANCE_NAME \
        --no-public-ptr
    
  • Para IPv6:

    gcloud compute instances update-access-config INSTANCE_NAME \
        --no-ipv6-public-ptr
    

Substitua INSTANCE_NAME pelo nome da instância a ser atualizada.

REST

Para remover um registro PTR, faça uma solicitação POST para o método instances.updateAccessConfig. Para remover os registros PTR IPv4 e IPv6, faça as solicitações a seguir individualmente.

  • Para IPv4:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateAccessConfig?networkInterface=nic0
    {
      "setPublicPtr": false,
      "type": "ONE_TO_ONE_NAT"
    }
    
  • Para IPv6:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateAccessConfig?networkInterface=nic0
    {
      "publicPtrDomainName": "",
      "type": "DIRECT_IPV6"
    }
    

Substitua:

  • PROJECT_ID: o ID do projeto.
  • ZONE: a zona da instância.
  • INSTANCE_NAME: o nome da instância.

Limitações

  • Quando uma VM é migrada para outro host como parte do processo de migração em tempo real durante eventos de manutenção, a lógica de registro PTR não lida com alguns casos extremos corretamente e reverte os registros PTR de DNS para o nome de domínio totalmente qualificado (FQDN, na sigla em inglês) googleusercontent.com. Para restaurar a funcionalidade, aplique o registro PTR novamente.

  • Quando você interrompe uma VM que tem um registro PTR do IPv6, o registro PTR do IPv6 é registrado temporariamente e não fica visível na VM. O registro é adicionado de volta automaticamente quando a VM é reiniciada.

A seguir