Gerenciar políticas de roteamento DNS

As políticas de roteamento de DNS direcionam o tráfego com base na consulta (por exemplo, round-robin ou geolocalização). Para configurar políticas de roteamento, crie ResourceRecordSets especiais (no sentido de coleta) com valores especiais de política de roteamento.

Nesta página, você encontra informações sobre como criar, editar e excluir políticas de roteamento de DNS usando o Cloud DNS. Antes de usar esta página, familiarize-se com a visão geral das políticas de DNS.

Para usar políticas de roteamento de DNS, crie um ResourceRecordSet e escolha uma das seguintes políticas de roteamento de DNS para aplicar ao ResourceRecordSet:

  • Política de roteamento de round-robin ponderado (WRR): use o WRR para especificar ponderações diferentes por ResourceRecordSet do nome DNS. As políticas de roteamento de DNS garantem que o tráfego seja distribuído de acordo com as ponderações configuradas. Não é possível combinar uma política de roteamento de WRR com uma política de roteamento de geolocalização.

  • Política de roteamento de geolocalização (GEO): use a GEO para especificar geolocalizações de origem e fornecer respostas correspondentes a essas regiões geográficas. A política de roteamento de geolocalização aplica uma correspondência mais próxima para o local de origem quando a origem do tráfego não corresponde exatamente a nenhum item de política.

    A GEO mapeia a origem para DNS público e privado das seguintes maneiras:

    • Para DNS público, será usado o endereço IP de origem ou a subrede do cliente do mecanismo de extensão para DNS (EDNS) da consulta.
    • Para DNS particular: o local onde a consulta é recebida. Por exemplo, a região da VM de consulta ou o local em que a consulta encaminhada de entrada é recebida.

    Quando os sistemas locais enviam consultas DNS ao Cloud DNS usando um ponto de entrada da política do servidor de entrada, o Cloud DNS define o local de origem como a região que contém o túnel da VPN do Cloud ou o anexo de interconexão do Cloud (VLAN) que processou o pacote recebido. O local de origem é definido dessa maneira, independentemente da região do endereço IP interno que serve como ponto de entrada da política do servidor de entrada.

    Por exemplo, se um sistema local enviar uma consulta para um ponto de entrada de política de servidor de entrada cujo endereço IP esteja na região us-west1, mas o pacote é processado por um túnel da VPN do Cloud ou um anexo de interconexão do Cloud (VLAN) localizado na região us-east1, a região de origem é us-east1 porque essa é a região em que o pacote de entrada foi processado.

As políticas de roteamento de DNS também são compatíveis com vários endereços IP para cada localização geográfica. Quando especificados para uma determinada localização geográfica, vários endereços IP são retornados de acordo com uma política de WRR de ponderação igual. Não é possível combinar uma política de roteamento baseada em área geográfica com uma política de WRR de ponderação personalizada.

Antes de começar

Você já precisa ter criado uma zona gerenciada e concluído os pré-requisitos para criar uma zona.

Criar políticas de roteamento de DNS

Para criar um ResourceRecordSet e aplicar uma política de roteamento a ele, siga estas etapas.

Console

  1. No Console do Google Cloud, acesse a página Zonas do Cloud DNS.

    Acessar zonas do Cloud DNS

  2. Clique no nome da zona gerenciada a que você quer adicionar o registro.

  3. Na página Detalhes da zona, clique em Adicionar conjunto de registros.

  4. Na página Criar conjunto de registros, no campo Nome do DNS, insira o subdomínio da zona DNS, por exemplo, mail. O ponto é adicionado automaticamente no final.

  5. Selecione o Tipo de registro de recurso, por exemplo, A.

  6. No campo TTL, insira um valor numérico para o time to live (TTL) do registro de recursos, que é o tempo que ele pode ser armazenado em cache. Esse valor precisa ser um número inteiro positivo.

  7. No menu Unidade TTL, selecione a unidade de tempo. Por exemplo, 30 minutes.

  8. Selecione a Política de roteamento. Você pode selecionar Round-robin ponderado ou Com base em localização geográfica. Se você não quiser anexar uma política de roteamento ao registro, selecione Tipo de registro padrão.

  9. Se você selecionou Round-robin ponderado, na seção Novos rrdata gerenciados, faça o seguinte:

    1. Insira a ponderação correspondente a esta subseção dos dados do registro de recurso (RR, na sigla em inglês). Essa ponderação precisa ser um número não negativo de 0,0 a 1000,0. A proporção de tráfego roteado para o destino é calculada a partir da proporção da ponderação individual sobre o total em todas as ponderações.
    2. Com base no tipo de registro selecionado, insira os detalhes relevantes no próximo campo. Por exemplo, se o tipo de registro for A, no campo Endereço IPv4, digite o endereço IP numérico do host, como 203.0.113.1. Para um registro AAAA, insira o endereço IPv6 do host e assim por diante.
  10. Se você selecionou Com base em localização geográfica, na seção Novos dados gerenciados, faça o seguinte:

    1. Insira uma região de origem válida do Google Cloud, como asia-east1.
    2. Com base no tipo de registro selecionado, insira os detalhes relevantes no próximo campo. Por exemplo, se o tipo de registro for A, no campo Endereço IPv4, digite o endereço IP numérico do host, como 203.0.113.1. Para um registro AAAA, insira o endereço IPv6 do host e assim por diante.
  11. Para inserir dados adicionais, dependendo do tipo de registro selecionado, clique em Adicionar item. A tabela a seguir especifica o tipo de registro e os dados adicionais que podem ser inseridos.

    Tipo de registro Insira dados adicionais
    A Endereços IPv4
    AAAA Endereços IPv6
    CNAME Nomes canônicos
    MX Registros de troca de e-mails
    SRV Host/port (<aclass="external" l10n-attrs-original-order="href,class" l10n-encrypted-href="fbj0fi6rS3pPqxfn3YD3etONK6A9Q8tQ5MUfKCg7jl5ONxJ2KV+27oDWYJ43g//U">RFC 2782) </aclass="external">S
    TXT Dados de texto
  12. Para inserir outros dados de RR gerenciados, clique em Adicionar rrdata gerenciados.

  13. Clique em Criar.

gcloud

Execute o comando gcloud dns record-sets create:

gcloud dns record-sets create RRSET_NAME \
    --ttl=TTL \
    --type=RRSET_TYPE \
    --zone=MANAGED_ZONE \
    --routing-policy-type=ROUTING_POLICY_TYPE \
    --routing-policy-data=ROUTING_POLICY_DATA

Substitua:

  • RRSET_NAME: o nome de DNS que corresponde às consultas recebidas com o nome DNS desta zona como seu sufixo, por exemplo, service.example.com
  • TTL: o TTL em segundos que o resolvedor armazena essa ResourceRecordSet em cache, como 30
  • RRSET_TYPE: o tipo de registro de recurso desse ResourceRecordSet, como A.

    Para ver uma lista de tipos de registro compatíveis, consulte Selecionar tipos de registro de recurso.

  • MANAGED_ZONE: a zona gerenciada à qual este ResourceRecordSet está afiliado, como service-zone; o nome deste ResourceRecordSet precisa ter o nome DNS da zona gerenciada como sufixo

  • ROUTING_POLICY_TYPE: o tipo de política de roteamento

    Insira WRR para o round-robin ponderado ou GEO para a localização geográfica. Não é possível modificar esse campo depois que uma política tem um tipo escolhido. Você só pode excluir a política e adicionar uma nova com o tipo diferente.

  • ROUTING_POLICY_DATA: os dados da política de roteamento

    • Para --routing-policy-type=WRR, insira uma lista delimitada por ponto e vírgula do formato ${weight_percent}=${rrdatas}, como .8=10.128.1.1;.2=10.130.1.1. Especifique a ponderação como qualquer decimal não negativo.
    • Para --routing-policy-type=GEO, insira uma lista delimitada por ponto e vírgula do formato ${region}=${rrdatas}, como asia-east1=10.128.1.1;us-central1=10.130.1.1. É possível especificar vários endereços IP para uma única região repetindo a região.

API

Use o método resourceRecordSets.create.

Para a política GEO, use o seguinte método:

POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
        "name": "RRSET_NAME.",
        "type": "RRSET_TYPE",
        "ttl": TTL,
        "routingPolicy": {
          "geoPolicy": {
              "item": [
                    {
                        "location": "LOCATION",
                        "rrdatas": ["RR_DATA"]
                    },
                    {
                        "location": "LOCATION",
                        "rrdatas": ["RR_DATA"]
                     }
               ],
            }
      }
}

Para a política WRR, use o seguinte método:

POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
        "name": "RRSET_NAME.",
        "type": "RRSET_TYPE",
        "ttl": TTL,
        "routingPolicy": {
          "wrrPolicy": {
              "item": [
                    {
                        "weight": "WEIGHT",
                        "rrdatas": ["RR_DATA"]
                    },
                    {
                        "weight": "WEIGHT",
                        "rrdatas": ["RR_DATA"]
                     }
               ],
            }
      }
}

Substitua:

  • PROJECT_ID: o ID do projeto
  • MANAGED_ZONE: a zona gerenciada à qual este ResourceRecordSet está afiliado, como service-zone; o nome deste ResourceRecordSet precisa ter o nome DNS da zona gerenciada como sufixo
  • RRSET_NAME: o nome de DNS que corresponde às consultas recebidas com o nome DNS desta zona como seu sufixo, por exemplo, service.example.com
  • RRSET_TYPE: o tipo de registro de recurso desse ResourceRecordSet, como A.
  • TTL: o TTL em segundos que o resolvedor armazena essa ResourceRecordSet em cache, como 30
  • LOCATION: para políticas de GEO, a geolocalização para que você precisa criar a política, como asia-east
  • WEIGHT: para políticas WRR, insira uma lista delimitada por ponto e vírgula do formato ${weight_percent}=${rrdatas}, como .8=10.128.1.1;.2=10.130.1.1. Especifique a ponderação como qualquer decimal não negativo.
  • RR_DATA: um valor arbitrário associado ao conjunto de registros de recursos, como 198.51.100.5; também é possível inserir vários valores, rrdata1 rrdata2 rrdata3, como 198.51.100.1 203.0.113.1...

Atualizar políticas de roteamento de DNS

Para atualizar a política de roteamento de um ResourceRecordSet, siga estas etapas.

Console

  1. No Console do Cloud, acesse a página de zonas do Cloud DNS.

    Acessar zonas do Cloud DNS

  2. Clique na zona para a qual você quer atualizar a política de roteamento do ResourceRecordSet.

  3. Na página Detalhes da zona, ao lado do ResourceRecordSet que você quer atualizar, clique em Editar.

  4. Depois de fazer as atualizações necessárias, clique em Salvar.

gcloud

Execute o comando gcloud dns record-sets update:

gcloud dns record-sets update RRSET_NAME \
    --ttl=TTL \
    --type=RRSET_TYPE \
    --zone=MANAGED_ZONE \
    --routing-policy-type=ROUTING_POLICY_TYPE \
    --routing-policy-data=ROUTING_POLICY_DATA

Substitua:

  • RRSET_NAME: o nome de DNS que corresponde às consultas recebidas com o nome DNS desta zona como seu sufixo, por exemplo, service.example.com
  • TTL: o TTL em segundos que o resolvedor armazena essa ResourceRecordSet em cache, como 30
  • RRSET_TYPE: o tipo de registro de recurso desse ResourceRecordSet, como A.

    Para ver uma lista de tipos de registros compatíveis, consulte Como selecionar tipos de registro de recurso.

  • MANAGED_ZONE: a zona gerenciada à qual este ResourceRecordSet está afiliado, como service-zone; o nome deste ResourceRecordSet precisa ter o nome DNS da zona gerenciada como sufixo

  • ROUTING_POLICY_TYPE: o tipo de política

    Você pode inserir WRR para round-robin ponderado ou GEO para geolocalização. Não é possível modificar esse campo depois que uma política tiver um tipo escolhido. A única maneira de alterá-lo é excluindo a política e adicionando uma nova com o tipo diferente.

  • ROUTING_POLICY_DATA: os dados da política de roteamento

    • Para --routing-policy-type=WRR, insira uma lista delimitada por ponto e vírgula do formato ${weight_percent}:${rrdatas}, como .8=203.0.113.1;.2=198.51.100.1. Especifique a ponderação como qualquer decimal não negativo.
    • Para --routing-policy-type=GEO, insira uma lista delimitada por ponto e vírgula do formato ${region}=${IP_address}, como asia-east1=198.51.100.1;us-central1=203.0.113.1. É possível especificar vários endereços IP para uma única região repetindo a região.

API

Use o método resourceRecordSets.patch. Especifique apenas rrset.rrdatas ou rrset.routingPolicy. Se você especificar routingPolicy, será necessário especificar o novo campo routingPolicy inteiro.

Para políticas GEO, use o seguinte método:

PATCH https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
        "name": "RRSET_NAME.",
        "type": "RRSET_TYPE",
        "ttl": TTL,
        "routingPolicy": {
          "geoPolicy": {
              "item": [
                    {
                        "location": "LOCATION",
                        "rrdatas": ["RR_DATA"]
                    },
                    {
                        "location": "LOCATION",
                        "rrdatas": ["RR_DATA"]
                     }
               ],
               "failover": [
                     {
                         "location": "LOCATION",
                         "rrdatas": ["RR_DATA"]
                     },
                     {
                         "location": "LOCATION",
                         "rrdatas": ["RR_DATA"]
                     }
               ],

            }
      }
}

Para políticas WRR, use o seguinte método:

PATCH https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets
{
        "name": "RRSET_NAME.",
        "type": "RRSET_TYPE",
        "ttl": TTL,
        "routingPolicy": {
          "wrrPolicy": {
              "item": [
                    {
                        "weight": "WEIGHT",
                        "rrdatas": ["RR_DATA"]
                    },
                    {
                        "weight": "WEIGHT",
                        "rrdatas": ["RR_DATA"]
                     }
               ],
            }
      }
}

Substitua:

  • PROJECT_ID: o ID do projeto
  • MANAGED_ZONE: a zona gerenciada à qual este ResourceRecordSet está afiliado, como service-zone; o nome deste ResourceRecordSet precisa ter o nome DNS da zona gerenciada como sufixo
  • RRSET_NAME: o nome de DNS que corresponde às consultas recebidas com o nome DNS desta zona como seu sufixo, por exemplo, service.example.com
  • RRSET_TYPE: o tipo de registro de recurso desse ResourceRecordSet, como A.
  • TTL: o TTL em segundos que o resolvedor armazena essa ResourceRecordSet em cache, como 30
  • LOCATION: para políticas de GEO, a geolocalização para que você precisa criar a política, como asia-east
  • WEIGHT: para políticas WRR, insira uma lista delimitada por ponto e vírgula do formato ${weight_percent}=${rrdatas}, como .8=10.128.1.1;.2=10.130.1.1. Especifique a ponderação como qualquer decimal não negativo.
  • RR_DATA: um valor arbitrário associado ao conjunto de registros de recursos, como 198.51.100.5; também é possível inserir vários valores, rrdata1 rrdata2 rrdata3, como 198.51.100.5 203.0.113.1...

Excluir políticas de roteamento de DNS

Para excluir uma política de roteamento, é necessário excluir o ResourceRecordSet que contém a política de roteamento. Para fazer isso, siga estas etapas.

Console

  1. No Console do Cloud, acesse a página de zonas do Cloud DNS.

    Acessar zonas do Cloud DNS

  2. Clique na zona da qual você quer excluir o ResourceRecordSet.

  3. Na página Detalhes da zona, ao lado do nome de DNS do ResourceRecordSet que você quer excluir, marque a caixa de seleção.

  4. Clique em Excluir conjuntos de registros.

gcloud

Execute o comando gcloud dns record-sets delete:

gcloud dns record-sets delete RRSET_NAME \
    --type=RRSET_TYPE \
    --zone=MANAGED_ZONE \

Substitua:

  • RRSET_NAME: o nome de DNS que corresponde às consultas recebidas com o nome DNS desta zona como seu sufixo, por exemplo, service.example.com
  • RRSET_TYPE: o tipo de registro de recurso desse ResourceRecordSet, como A.

    Para ver uma lista de tipos de registros compatíveis, consulte Como selecionar tipos de registro de recurso.

  • MANAGED_ZONE: a zona gerenciada à qual este ResourceRecordSet está afiliado, como service-zone; o nome deste ResourceRecordSet precisa ter o nome DNS da zona gerenciada como sufixo

API

Use o método resourceRecordSets.delete.

DELETE https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets/RRSET_NAME/RRSET_TYPE

Substitua:

  • PROJECT_ID: o ID do projeto
  • MANAGED_ZONE: a zona gerenciada à qual este ResourceRecordSet está afiliado, como my-zone-name; o nome deste ResourceRecordSet precisa ter o nome DNS da zona gerenciada como sufixo
  • RRSET_NAME: o nome de DNS que corresponde às consultas recebidas com o nome DNS desta zona como seu sufixo, por exemplo, test.example.com
  • RRSET_TYPE: o tipo de registro de recurso desse ResourceRecordSet, como A.

A seguir