Como gerar registros e monitorar

Nesta página, você verá informações sobre as métricas de geração de registros e monitoramento do Cloud DNS, incluindo zonas particulares e zonas de encaminhamento. Há também instruções sobre o monitoramento da propagação de suas alterações de DNS público.

Geração de registros de DNS particular

A geração de registros de DNS particular rastreia as consultas que são resolvidas pelos servidores de nomes para suas redes de nuvem privada virtual. As consultas de uma entidade externa feitas diretamente a uma zona pública não são registradas, porque são tratadas por um servidor de nomes público.

As consultas registradas podem vir de máquinas virtuais (VMs) do Compute Engine, contêineres do Google Kubernetes Engine na mesma rede VPC, zonas de peering ou de clientes locais usando encaminhamento de DNS de entrada. As consultas podem ser resolvidas por zonas de DNS particular, encaminhamento de zonas de DNS, servidor de nomes alternativo, zonas de DNS interno do GCP ou zonas de DNS externo.

Os registros gerados pertencem ao projeto que é proprietário da rede que transmitiu a solicitação. No caso da VPC compartilhada, os registros gerados pertencem ao projeto host porque ele é proprietário da rede.

Ativar e desativar a geração de registros

Use as políticas de DNS para ativar a geração de registros nas suas redes.

Ativar a geração de registros em uma rede que não tem uma política de DNS

gcloud dns policies create policy-name \
    --networks=network \
    --enable-logging \
    --description=description

Substitua as seguintes opções de comando:

  • networks: uma ou mais redes em uma lista separada por vírgulas
  • description: uma descrição da política.

Ative a geração de registros em uma rede que já tenha uma política de DNS

gcloud dns policies update policy-name \
    --networks=network \
    --enable-logging

Substitua a seguinte opção de comando:

  • networks: uma ou mais redes em uma lista separada por vírgulas

Desative a geração de registros

Isso desativa a geração de registros enquanto mantém a política em vigor. Se preferir, exclua toda a política.

gcloud dns policies update policy-name \
    --networks=network \
    --no-enable-logging

Substitua a seguinte opção de comando:

  • networks: uma ou mais redes em uma lista separada por vírgulas

Como ver registros

Acesse a página do visualizador de registros do Cloud DNS no Console do Google Cloud.
Ir para a página "Visualizador de registros"

Formato do registro

Cada entrada de registro tem os seguintes campos, se aplicável. Alguns dos campos também são compartilhados com métricas de monitoramento.

Campo Tipo de campo Descrição Usado em métricas
source_type String Fonte da consulta: 'inbound-forwarding', 'gce-vm' Sim
location String Região do GCP (por exemplo, us-east1) de onde a resposta foi entregue. Sim
project_id String ID do projeto do GCP da rede usada para receber a consulta Sim
target_type String Tipo de destino que resolve a consulta DNS: "private-zone", "zone-forwarding", "policy-forwarding", "internal-zone" e "external" Sim
target_name String O nome do destino, por exemplo, nome da zona, nome da política, nome da zona interna, nome de domínio externo. Sim
queryName String / DNS Nome da consulta DNS, RFC 1035 4.1.2. Não
queryType String / DNS Tipo de consulta de DNS, RFC 1035 4.1.2. Não
responseCode Número / DNS Código de resposta, RFC 1035 4.1.1. Não
rdata String / DNS Resposta de DNS no formato de apresentação, RFC 1035 5.1, truncado para 260 bytes Não
authAnswer Booleano / DNS Resposta autoritativa, RFC 1035 Não
sourceNetwork String / Origem Rede usada pela consulta para alcançar nosso sistema. Não
vmInstanceId número / Origem ID da instância da VM do Compute Engine, aplicável apenas a consultas iniciadas pelas VMs do Compute Engine. Não
vmInstanceName String / Origem Nome da instância da VM do Compute Engine, aplicável apenas a consultas iniciadas pelas VMs do Compute Engine. Não
vmProjectId String / Origem ID do projeto do GCP da rede de onde a consulta foi enviada, aplicável apenas a consultas iniciadas por VMs do Compute Engine. Não
vmZoneName String / Origem Nome da zona de VMs de onde a consulta foi enviada, aplicável apenas a consultas iniciadas por VMs do Compute Engine. Não
sourceIP String / Origem IP que gerou a consulta Não
destinationIP String / Destino IP de origem, aplicável somente a casos de encaminhamento. Não
protocol String / DNS 'TCP' | 'UDP' Não
egressError String Erro de proxy de saída, o erro real informado pelo proxy de saída como recebido do servidor DNS local. Esse campo pode ser usado para diferenciar um SERVFAIL real retornado pelo DNS local versus um erro de rede encontrado pelo proxy de saída. Não

Encaminhamento de saída

Se você receber registros contendo SERVFAIL sem determinados campos, como destinationIP, egressIP e egressError, consulte a seção relacionada na documentação de solução de problemas.

Como monitorar métricas

O Cloud DNS exporta métricas de monitoramento para o Cloud Monitoring.

É possível monitorar a taxa de consultas e respostas de DNS que segmentam zonas particulares, zonas de encaminhamento, encaminhamento de política, zonas internas do GCP e a Internet. O monitoramento está disponível no Cloud Monitoring e na API Monitoring.

Tipos de métricas e recursos

O DNS privado exporta a métrica delta dns.googleapis.com/query/response_count que contém o rótulo response_code para contar o número de consultas por código de resposta.

O rótulo response_code é do tipo string com os valores possíveis de: NOERROR, FORMERR, SERVFAIL, NXDOMAIN, NOTIMP e UNKNOWN. Consulte os RCODEs de DNS da IANA para definições desses códigos.

A métrica é exportada com o tipo de recurso dns_query, usando os campos aplicáveis do formato de registro.

Como monitorar a propagação de DNS

Quando você faz alterações usando a ferramenta de linha de comando ou a API REST, elas são inicialmente marcadas como pendentes até que a operação seja concluída. É possível verificar o status das alterações ou acessar um histórico de alterações usando a ferramenta de linha de comando gcloud ou a API REST.

Uma operação é concluída (status: done) quando o Cloud DNS atualizou com êxito o sistema que controla os servidores. Ainda pode levar um tempo antes que todos os servidores de nomes sejam atualizados.

Como listar as alterações de uma zona gerenciada

Linha de comando

gcloud dns record-sets changes list --zone="myzonename"

Python

def list_changes(project_id, zone_name):
    client = dns.Client(project=project_id)
    zone = client.zone(zone_name)

    changes = zone.list_changes()

    return [(change.started, change.status) for change in changes]

Como verificar a propagação do DNS

É possível usar os comandos watch e dig para monitorar e verificar se suas alterações foram detectadas pelo servidor de nomes de DNS. O exemplo a seguir mostra como procurar seu servidor de nomes e verificar se uma alteração no registro MX é feita por um dos servidores de nomes da sua zona gerenciada.

Procure os servidores de nomes da sua zona:

gcloud dns managed-zones describe zone-name

Substitua a seguinte opção de comando:

  • zone-name: o nome da sua zona do Cloud DNS

Verifique se os registros já estão disponíveis no seu servidor de nomes autoritativo. Substitua your-zone-nameserver por um dos servidores de nomes da zona gerenciada:

watch dig example.com in MX @your-zone-nameserver

O comando watch executa o comando dig a cada 2 segundos por padrão. É possível usar esse comando para determinar quando seu servidor de nomes autoritativo realiza a alteração, o que ocorre em até 120 segundos. Depois que o servidor de nomes autoritativo estiver com a alteração, os resolvedores DNS podem começar a coletar o novo registro. Os resolvedores que já têm o registro anterior armazenado em cache aguardam o valor TTL anterior do registro expirar.

É possível remover o @<address> do comando dig para executar esse comando com o servidor de nomes do seu sistema. Também será possível modificar o endereço para outros servidores de nome, se você quiser monitorar a propagação para outros servidores.

Próximas etapas