Encaminhamento de DNS de saída FQDN do Cloud DNS

1. Introdução

ef2d068c413a15bd.png

Este codelab vai orientar você na configuração de zonas de encaminhamento de saída do Cloud DNS usando um nome de domínio totalmente qualificado (FQDN) como destino de encaminhamento. Com esse recurso, é possível direcionar o tráfego de DNS para endereços IP resolvidos de um nome de DNS, em vez de codificar endereços IP na configuração da zona de encaminhamento. Isso é especialmente útil quando os endereços IP do resolvedor de DNS de back-end mudam, já que é possível atualizar o registro DNS do FQDN, e o Cloud DNS detecta as mudanças automaticamente.

Ao final deste codelab, você vai saber como configurar zonas de encaminhamento do Cloud DNS que usam o seguinte:

  • Um destino FQDN que corresponde a uma zona particular com registros A/AAAA.
  • Um destino de FQDN com suporte de políticas de roteamento do Cloud DNS (geolocalização ou round-robin ponderado) para afinidade regional ou distribuição de tráfego.

Visão geral do encaminhamento de FQDN

O encaminhamento do Cloud DNS permite resolver nomes DNS particulares hospedados fora do Google Cloud Platform (por exemplo, no local ou em outras nuvens) de recursos do Google Cloud Platform. Tradicionalmente, isso oferecia suporte ao encaminhamento para uma lista de endereços IP de destino. O encaminhamento de FQDN estende isso, permitindo que você especifique um FQDN como um destino de encaminhamento em uma zona de encaminhamento.

Quando um FQDN é especificado, o Cloud DNS o resolve em endereços IP usando uma pesquisa interna, que usa a lógica de resolução da rede de origem. Isso significa que o destino FQDN pode corresponder a uma zona particular, uma política de roteamento de DNS (geolocalização ou round-robin ponderado) ou até mesmo um nome de domínio público da Internet. Em seguida, o Cloud DNS encaminha a consulta para o IP de destino resolvido.

O que você vai criar

Encaminhamento regional de FQDN com uma nova zona particular

Você vai criar uma configuração que alcança afinidade regional para o tráfego de DNS. Isso envolve criar uma zona de DNS particular e configurar uma política de roteamento de geolocalização nela. Em seguida, vincule uma zona de encaminhamento a esse destino de FQDN. Isso garante que o tráfego de uma região específica (por exemplo, us-east1) seja encaminhado para um servidor DNS regional correspondente.

Encaminhamento de FQDN com uma zona particular atual

Você vai aprender a criar uma zona de encaminhamento que segmenta um FQDN com suporte de um registro A/AAAA em uma zona de DNS particular. Isso demonstra o encaminhamento de consultas para endereços IP definidos estaticamente e resolvidos usando um destino de encaminhamento de FQDN.

O que você vai aprender

O conceito de encaminhamento de FQDN

Você vai entender que o encaminhamento de FQDN estende o encaminhamento de DNS, permitindo especificar um destino de encaminhamento de FQDN em vez de apenas endereços IP como destinos de encaminhamento para consultas de saída.

Benefícios do encaminhamento de FQDN

Você vai aprender que esse recurso elimina a necessidade de atualizações manuais quando os endereços IP do resolvedor de DNS de back-end mudam, já que o Cloud DNS detecta automaticamente as mudanças no registro DNS do FQDN. Ele também permite um escalonamento mais flexível da infraestrutura de DNS, permitindo que os servidores DNS fiquem atrás de um nome compartilhado ou sejam escalonados dinamicamente.

Integração com políticas de roteamento do Cloud DNS

Você vai aprender como o encaminhamento de FQDN pode ser combinado com as políticas de roteamento do Cloud DNS (geolocalização ou round-robin ponderado) para alcançar afinidade regional, otimizar o desempenho de implantações geograficamente diversas e distribuir o tráfego com base em ponderações configuradas.

Sintaxe de comando da CLI do Google Cloud

Você vai conhecer o comando gcloud dns managed-zones create e as flags relevantes (--forwarding-targets, --private-forwarding-targets) para configurar zonas de encaminhamento de FQDN.

Pré-requisitos

Para concluir este codelab, você precisa do seguinte:

2. Etapas da configuração

Entenda os cenários de encaminhamento de FQDN

O encaminhamento de FQDN do Cloud DNS é compatível com vários cenários de uso:

  • Zona particular com registro A/AAAA: se o FQDN corresponder a um registro A/AAAA em uma zona particular, os endereços IP resolvidos serão adicionados à lista de encaminhamento, e o comportamento será idêntico ao encaminhamento direto para endereços IP de destino.
  • Zona particular com política de geolocalização: as políticas de geolocalização permitem especificar a geolocalização de origem e fornecer respostas correspondentes, verificando a distribuição de tráfego com base na geografia. Isso é fundamental para o encaminhamento e a afinidade de DNS regional.
  • Zona particular com política de round-robin ponderado (WRR): as políticas de WRR permitem especificar ponderações diferentes por endereço IP para um nome DNS, verificando se o tráfego é distribuído de acordo com as ponderações configuradas.
  • Zona pública com registro A/AAAA: se o FQDN não corresponder a nenhum nome particular visível para a mesma rede, o Cloud DNS tentará resolver usando a Internet pública.

Entender o comando da CLI do Google Cloud para encaminhamento de FQDN

Para criar uma zona de encaminhamento com um destino de encaminhamento de FQDN usando comandos da CLI gcloud, use o comando gcloud dns managed-zones create. As flags principais para especificar um destino de FQDN são --forwarding-targets ou --private-forwarding-targets. Consulte o documento para mais detalhes sobre os métodos de roteamento padrão e particular.

  • --forwarding-targets: lista de endereços IPv4/IPv6 ou um nome de domínio do servidor de nomes de destino para onde a zona vai encaminhar as consultas. Ignorado para visibilidade pública. Endereços não RFC1918 serão encaminhados para o destino pela Internet. Os endereços RFC1918 serão encaminhados pela VPC.
  • --private-forwarding-targets: lista de endereços IPv4/IPv6 ou um nome de domínio do servidor de nomes de destino para onde a zona vai encaminhar as consultas. Ignorado para visibilidade pública. Todos os endereços especificados para esse parâmetro serão acessados pela VPC.

Exemplo de sintaxe:

gcloud dns managed-zones create NAME \
    --description=DESCRIPTION \
    --dns-name=DNS_SUFFIX \
    --networks=VPC_NETWORK_LIST \
    --forwarding-targets=DEFAULT_FQDN_TARGET \
    --visibility=private

É possível especificar --private-forwarding-targets em vez de --forwarding-targets.

Configurar seu projeto do Google Cloud Platform

Faça login na CLI gcloud.

gcloud auth login

Criar um projeto

gcloud projects create my-codelab-project

Ative a API Cloud DNS. Pode levar alguns minutos para que isso entre em vigor.

gcloud services enable dns.googleapis.com

Este codelab usa a rede VPC padrão criada com um novo projeto. Você também pode criar uma rede para usar no lugar.

3. Configurar o encaminhamento regional de FQDN (com uma nova zona privada)

Este cenário demonstra como fazer o encaminhamento regional de DNS, garantindo que o tráfego de uma região específica seja encaminhado para um servidor DNS dentro dessa mesma região.

Criar uma zona de DNS particular

Primeiro, crie uma zona de DNS particular (por exemplo, foo.com) que vai hospedar seu FQDN e a política de roteamento de geolocalização associada. Essa zona precisa estar visível para sua rede padrão.

gcloud dns managed-zones create my-zone \
    --description="Private Zone for FQDN outbound DNS forwarding." \
    --dns-name=foo.com. \
    --networks=default \
    --visibility=private

Criar um conjunto de registros de política de roteamento geográfico na zona particular

Em seguida, crie um conjunto de registros (por exemplo, geo.foo.com) em my-zone e aplique uma política de roteamento de geolocalização. Este exemplo configura endereços IP para asia-east1 e asia-west1.

gcloud dns record-sets create geo.foo.com. \
    --ttl="30" \
    --type="A" \
    --zone="my-zone" \
    --routing-policy-type="GEO" \
    --routing-policy-data="asia-east1=192.168.0.1;us-central1=192.168.0.2"

Observação: se o geofencing estiver desativado (padrão e recomendado), as consultas serão direcionadas para a região íntegra mais próxima se um destino na região original não estiver íntegro.

Criar uma zona de encaminhamento com o destino FQDN

Crie uma zona de encaminhamento (geo.test.com.) visível na mesma rede padrão e defina geo.foo.com. (o FQDN com a política de roteamento de geolocalização) como destino de encaminhamento.

gcloud dns managed-zones create my-geo-fwd-zone \
    --description="Forwarding zone for FQDN outbound DNS forwarding for routing policy." \
    --dns-name=geo.test.com. \
    --networks=default \
    --private-forwarding-targets=geo.foo.com. \
    --visibility=private

Qualquer consulta DNS que corresponda a geo.test.com agora é encaminhada para o IP resolvido (por exemplo, 192.168.0.1 ou 192.168.0.2) de geo.foo.com, com base na região de origem da consulta.

4. Configurar o encaminhamento de FQDN (com uma zona particular atual)

Ter uma zona de DNS particular existente

Suponha que você já tenha uma zona de DNS particular chamada my-zone (foo.com.) visível para a rede default.

Criar um registro de recurso DNS nessa zona particular

Crie um registro do tipo A para a.foo.com. na my-zone.

gcloud dns record-sets create a.foo.com. \
    --ttl="30" \
    --type="A" \
    --zone="my-zone" \
    --rrdatas=1.2.3.4

Criar uma zona de encaminhamento e especificar o destino do FQDN

Semelhante ao cenário de FQDN regional, crie uma zona de encaminhamento e especifique a.foo.com. como o destino de encaminhamento.

gcloud dns managed-zones create my-a-fwd-zone \
    --description="Forwarding zone for FQDN outbound DNS forwarding for A record." \
    --dns-name=a.test.com. \
    --networks=default \
    --private-forwarding-targets=a.foo.com. \
    --visibility=private

Qualquer consulta DNS que corresponda a a.test.com. será encaminhada para os endereços IP resolvidos 1.2.3.4 de a.foo.com.

5. Limpar

Antes de excluir uma zona particular, todos os ResourceRecordSets nela precisam ser excluídos, exceto os registros NS e SOA, que são gerados automaticamente e precisam sempre existir na zona particular.

Exclua a política de roteamento por geolocalização na zona particular.

gcloud dns record-sets delete "geo.foo.com." --type="A" --zone="my-zone"

Exclua o registro A na zona particular.

gcloud dns record-sets delete "a.foo.com." --type="A" --zone="my-zone"

Exclua a zona particular.

gcloud dns managed-zones delete "my-zone"

Exclua a zona de encaminhamento da política de roteamento de geolocalização.

gcloud dns managed-zones delete "my-geo-fwd-zone"

Exclua a zona de encaminhamento do registro A.

gcloud dns managed-zones delete "my-a-fwd-zone"

6. Parabéns

Parabéns! Você aprendeu a usar o encaminhamento de DNS de saída de FQDN.

Leitura adicional

Documentos de referência