Aplicar políticas de servidor do Cloud DNS

Nesta página, você verá como configurar políticas de servidor do Cloud DNS e usá-las com redes de nuvem privada virtual (VPC). Antes de usar esta página, consulte a visão geral das políticas do servidor DNS.

Antes de começar

A API Cloud DNS exige que você crie um projeto do Google Cloud e depois ative-a.

Se você estiver criando um aplicativo que usa a API REST, também precisará criar um ID do cliente do OAuth 2.0.

  1. Crie uma Conta do Google se ainda não tiver uma.
  2. Ative a API do Cloud DNS no console do Google Cloud. É possível escolher um projeto atual do Compute Engine ou App Engine, ou criar um projeto novo.
  3. Se você precisar fazer solicitações para a API REST, será necessário criar um ID do OAuth 2.0. Veja as instruções em Como configurar o OAuth 2.0.
  4. No projeto, observe as seguintes informações que serão necessárias nas próximas etapas:
    • O ID do cliente (xxxxxx.apps.googleusercontent.com).
    • O ID do projeto que você quer usar. Esse ID está na parte superior da página Visão geral no console do Google Cloud. Se preferir, peça ao usuário que forneça o nome do projeto a ser usado no seu app.

Se você ainda não executou a CLI do Google Cloud, execute o comando a seguir para especificar o nome do projeto e autenticar com o Console do Google Cloud:

gcloud auth login

Para escolher um projeto diferente daquele que você escolheu anteriormente, especifique a opção --project na linha de comando.

Criar políticas de servidor DNS

Cada objeto de política de servidor DNS pode definir qualquer uma das seguintes políticas de servidor:

Cada rede VPC não pode fazer referência a mais de uma política de servidor DNS. Se você precisar definir o encaminhamento de entrada e de saída para uma rede VPC, crie uma política que defina uma política de entrada e de saída.

Criar uma política de servidor de entrada

Para criar uma política de servidor de entrada, siga as instruções. O Cloud DNS cria um conjunto de endereços IP de encaminhamento de entrada em cada rede VPC em que a política se aplica. Depois de criar a política, é possível listar os pontos de entrada criados pelo Cloud DNS.

gcloud

Para criar uma política de servidor de entrada, execute o comando dns policies create:

gcloud dns policies create NAME \
    --description=DESCRIPTION \
    --networks=VPC_NETWORK_LIST \
    --enable-inbound-forwarding

Substitua:

  • NAME: um nome para a política.
  • DESCRIPTION: uma descrição da política.
  • VPC_NETWORK_LIST: uma lista delimitada por vírgulas de redes VPC em que os endereços de encaminhamento de entrada precisam ser criados.

Terraform

resource "google_dns_policy" "default" {
  name                      = "example-inbound-policy"
  enable_inbound_forwarding = true

  networks {
    network_url = google_compute_network.default.id
  }
}

resource "google_compute_network" "default" {
  name                    = "network"
  auto_create_subnetworks = false
}

Criar uma política de servidor de saída

É possível criar uma política de servidor de saída para modificar o pedido de resolução de nomes de uma rede VPC direcionando todas as consultas DNS para um servidor de nomes alternativo. Para fazer isso, siga estas instruções: Antes de começar, entenda as diferenças entre o roteamento padrão e o particular e os requisitos de rede para servidores de nomes alternativos.

gcloud

Para criar uma política de servidor de saída, execute o comando dns policies create:

gcloud dns policies create NAME \
    --description=DESCRIPTION \
    --networks=VPC_NETWORK_LIST \
    --alternative-name-servers=ALTERNATIVE_NAMESERVER_LIST \
    --private-alternative-name-servers=PRIVATE_ALTERNATIVE_NAMESERVER_LIST

Substitua:

  • NAME: um nome para a política.
  • DESCRIPTION: uma descrição da política.
  • VPC_NETWORK_LIST: uma lista de redes VPC delimitada por vírgulas que consultam os servidores de nomes alternativos.
  • ALTERNATIVE_NAMESERVER_LIST: uma lista delimitada por vírgulas de endereços IP que podem ser usados como servidores de nomes alternativos. O roteamento particular é usado apenas para servidores de nomes alternativos que tenham endereços RFC 1918.
  • PRIVATE_ALTERNATIVE_NAMESERVER_LIST: uma lista delimitada por vírgulas de endereços IP que podem ser usados como servidores de nomes alternativos, acessados usando o roteamento particular.

Terraform

resource "google_dns_policy" "default" {
  name = "example-outbound-policy"

  alternative_name_server_config {
    target_name_servers {
      ipv4_address    = "172.16.1.10"
      forwarding_path = "private"
    }
    target_name_servers {
      ipv4_address = "172.16.1.20"
    }
  }

  networks {
    network_url = google_compute_network.default.id
  }
}

resource "google_compute_network" "default" {
  name                    = "network"
  auto_create_subnetworks = false
}

Criar uma política de servidor para ambas

gcloud

Para criar uma política de servidor DNS para encaminhamento de entrada e saída, execute o comando dns policies create:

gcloud dns policies create NAME \
    --description=DESCRIPTION \
    --networks=VPC_NETWORK_LIST \
    --alternative-name-servers=ALTERNATIVE_NAMESERVER_LIST \
    --private-alternative-name-servers=PRIVATE_ALTERNATIVE_NAMESERVER_LIST \
    --enable-inbound-forwarding

Substitua:

  • NAME: um nome para a política.
  • DESCRIPTION: uma descrição da política.
  • VPC_NETWORK_LIST: uma lista de redes VPC delimitada por vírgulas em que os endereços de encaminhamento de entrada precisam ser criados e consultar os servidores de nomes alternativos.
  • ALTERNATIVE_NAMESERVER_LIST: uma lista delimitada por vírgulas de endereços IP que podem ser usados como servidores de nomes alternativos. O roteamento particular é usado apenas para servidores de nomes alternativos que têm endereços RFC 1918.
  • PRIVATE_ALTERNATIVE_NAMESERVER_LIST: uma lista delimitada por vírgulas de endereços IP que podem ser usados como servidores de nomes alternativos, acessados usando o roteamento particular.

Terraform

resource "google_dns_policy" "example_policy" {
  name                      = "example-policy"
  enable_inbound_forwarding = true

  enable_logging = true

  alternative_name_server_config {
    target_name_servers {
      ipv4_address    = "172.16.1.10"
      forwarding_path = "private"
    }
    target_name_servers {
      ipv4_address = "172.16.1.20"
    }
  }

  networks {
    network_url = google_compute_network.network_1.id
  }
  networks {
    network_url = google_compute_network.network_2.id
  }
}

resource "google_compute_network" "network_1" {
  name                    = "network-1"
  auto_create_subnetworks = false
}

resource "google_compute_network" "network_2" {
  name                    = "network-2"
  auto_create_subnetworks = false
}

Listar pontos de entrada do encaminhador de entrada

Quando uma política de servidor de entrada se aplica a uma rede VPC, o Cloud DNS cria um conjunto de endereços IP internos regionais que servem como destinos para onde seus sistemas locais ou resolvedores de nomes podem enviar solicitações de DNS. Esses endereços servem como pontos de entrada para o pedido de resolução de nome da sua rede VPC.

As regras de firewall do Google Cloud não se aplicam aos endereços internos regionais que agem como pontos de entrada para encaminhadores de entrada. O Cloud DNS aceita tráfego TCP e UDP na porta 53 automaticamente.

Cada encaminhador de entrada aceita e recebe consultas de túneis do Cloud VPN ou anexos do Cloud Interconnect (VLANs) na mesma região do endereço IP interno regional. As instâncias de VM podem acessar o encaminhador de entrada usando qualquer um dos endereços IP internos na mesma rede VPC. Para isso, a interface de rede precisa ter um endereço IP externo ou uma sub-rede da placa de rede (NIC, na sigla em inglês) precisa ter o Acesso privado do Google ativado.

gcloud

Para listar o conjunto de endereços IP internos regionais que servem como pontos de entrada para encaminhamento de entrada, execute o comando compute addresses list:

gcloud compute addresses list \
    --filter='purpose = "DNS_RESOLVER"' \
    --format='csv(address, region, subnetwork)'

Atualizar políticas de DNS

Nas seções a seguir, você encontra informações sobre como alterar redes VPC e ativar ou desativar o encaminhamento de entrada.

Alterar redes VPC

A lista a seguir descreve o que acontece quando você altera a lista de redes VPC às quais uma política de DNS é aplicada:

  • Se a política especificar uma política de entrada, os pontos de entrada para encaminhadores de entrada serão criados em redes VPC conforme necessário.
  • Se a política especificar uma política de saída, o pedido de resolução de nome de cada rede VPC será atualizado para direcionar todas as solicitações para um servidor de nomes alternativo.

gcloud

Para modificar a lista de redes às quais uma política de servidor DNS se aplica, execute o comando dns policies update:

gcloud dns policies update NAME \
    --networks=VPC_NETWORK_LIST

Substitua:

  • NAME: um nome para a política.
  • VPC_NETWORK_LIST: uma lista delimitada por vírgulas de redes VPC às quais a política se aplica. A lista de redes VPC especificadas substitui a lista anterior.

Ativar ou desativar o encaminhamento de entrada

É possível ativar o encaminhamento de entrada para uma política de servidor DNS que defina apenas uma política de saída (servidor de nomes alternativo). Também é possível desativar o encaminhamento de entrada para uma política de DNS atual.

gcloud

Para ativar o encaminhamento de entrada para uma política de servidor DNS, execute o comando dns policies update:

gcloud dns policies update NAME \
    --enable-inbound-forwarding

Para desativar o encaminhamento de entrada de uma política de servidor DNS, execute o comando dns policies update:

gcloud dns policies update NAME \
    --no-enable-inbound-forwarding

Substitua NAME pelo nome da política.

Listar políticas de DNS

gcloud

Para listar as políticas do servidor DNS no seu projeto, execute o comando dns policies list:

gcloud dns policies list

Excluir uma política de DNS

gcloud

Para excluir uma política de servidor, execute o comando dns policies delete:

gcloud dns policies delete NAME

Substitua NAME pelo nome da política a ser excluída.

Requisitos de rede do servidor de nomes alternativo

Quando o Cloud DNS envia solicitações para servidores de nomes alternativos, ele envia pacotes com os intervalos de origem listados na tabela a seguir.

Tipo de servidor de nomes alternativos Intervalos de origem

Servidor de nomes do tipo 1

Um endereço IP interno de uma VM do Google Cloud na mesma rede VPC com a política de saída.

Servidor de nomes do tipo 2

Um endereço IP de um sistema local conectado à rede VPC com a política de saída usando o Cloud VPN ou o Cloud Interconnect.

Para mais informações sobre os endereços IP compatíveis, consulte Servidores de nomes alternativos e métodos de roteamento.

35.199.192.0/19

O Cloud DNS usa o intervalo de origem 35.199.192.0/19 para todos os clientes. Esse intervalo é acessível apenas a partir de uma rede VPC do Google Cloud ou de uma rede local conectada a uma rede VPC.

Servidor de nome do tipo 3

Um endereço IP externo de um servidor de nomes de DNS acessível para a Internet ou o endereço IP externo de um recurso do Google Cloud. Por exemplo, o endereço IP externo de uma VM em outra rede VPC.

Intervalos de origem do DNS público do Google

Servidores de nomes alternativos de tipo 1 e 2

O Cloud DNS exige o seguinte para acessar um servidor de nomes alternativo de tipo 1 ou 2. Esses requisitos serão os mesmos se o servidor de nomes for um endereço IP RFC 1918 e você estiver usando o roteamento padrão ou se escolher o roteamento particular:

  • Configuração do firewall para 35.199.192.0/19

    Para servidores de nomes do tipo 1, crie uma regra de firewall de permissão de entrada para as portas TCP e UDP 53. Elas são aplicáveis aos seus servidores de nomes alternativos em cada rede VPC configurada para usar uma política de saída que especifica o servidor de nomes. Para servidores de nomes do Tipo 2, configure um firewall de rede local e equipamentos semelhantes para permitir a porta TCP e UDP 53.

  • Rotear para o servidor de nomes alternativo

    Para os servidores de nomes do tipo 1, o Cloud DNS usa uma rota de sub-rede para acessar o servidor de nomes na rede VPC configurada para usar uma política de saída que especifique o servidor de nomes. Para os servidores de nomes do tipo 2, o Cloud DNS usa rotas estáticas personalizadas ou dinâmicas para acessar o servidor de nomes. Com exceção das rotas estáticas com tags.

  • Retornar rota para 35.199.192.0/19 por meio da mesma rede VPC

    Para os servidores de nomes do tipo 1, o Google Cloud adiciona automaticamente uma rota de retorno especial para o destino 35.199.192.0/19. Para servidores de nomes do tipo 2, sua rede local precisa ter uma rota para o destino 35.199.192.0/19, que tem o próximo salto na mesma rede VPC e região em que a solicitação foi originada, por meio de um Túnel do Cloud VPN ou anexo do Cloud Interconnect (VLAN). Para mais informações sobre como atender a esse requisito, consulte Retornar estratégias de rota para os servidores de nomes do tipo 2.

  • Resposta direta do servidor de nomes alternativo

    O Cloud DNS requer que o servidor de nomes alternativo que recebe pacotes seja o mesmo que envia respostas para 35.199.192.0/19. Se o servidor de nomes enviar a solicitação para um servidor de nomes diferente e esse outro servidor de nomes responder a 35.199.192.0/19, o Cloud DNS ignorará a resposta. Por motivos de segurança, o Google Cloud espera que o endereço de origem da resposta DNS do servidor de nomes alternativo corresponda ao endereço IP do servidor de nomes alternativo.

Retornar estratégias de rota para servidores de nomes do tipo 2

As respostas dos servidores de nomes do tipo 2 não podem ser enviadas pela Internet, por meio de uma rede VPC diferente ou para uma região diferente (mesmo na mesma rede VPC). As respostas precisam retornar à mesma região e rede VPC, embora seja possível usar qualquer túnel do Cloud VPN ou um anexo do Cloud Interconnect (VLAN) nessa mesma região e rede.

  • Para túneis do Cloud VPN que usam roteamento estático, crie manualmente uma rota na rede local em que o destino seja 35.199.192.0/19 e o próximo salto seja o túnel do Cloud VPN. Para túneis do Cloud VPN que usam roteamento baseado em políticas, configure o seletor de tráfego local do Cloud VPN e o seletor de tráfego remoto do gateway da VPN para incluir 35.199.192.0/19.
  • Para túneis do Cloud VPN que usam roteamento dinâmico ou o Cloud Interconnect, configure uma divulgação de rota personalizada para 35.199.192.0/19 na sessão do BGP do Cloud Router que gerencia o túnel ou o anexo da VLAN.

Servidores de nomes alternativos do tipo 3

Quando o Cloud DNS usa o roteamento padrão para acessar um endereço IP externo, ele espera que o servidor de nomes alternativo seja um sistema na Internet, seja acessível ao público ou que seja um endereço IP externo de um recurso do Google Cloud.

Por exemplo, um servidor de nomes alternativo de tipo 3 inclui o endereço IP externo de uma VM em uma rede VPC diferente.

O roteamento privado para servidores de nomes alternativos do Tipo 3 não é compatível.

A seguir