Resolução de problemas do Cloud DNS

Este documento fornece orientações sobre a resolução de problemas com o Cloud DNS no Google Distributed Cloud (GDC) air-gapped. Abrange potenciais erros e problemas que pode encontrar ao realizar operações de gestão em configurações de DNS e fornece dicas e sugestões para depurar problemas com a resolução de DNS. O público-alvo deste documento são os administradores de plataformas e os operadores de aplicações responsáveis pela gestão de registos de DNS num projeto.

Resolva problemas de operações de gestão do Cloud DNS

Esta secção fornece informações de resolução de problemas para problemas comuns encontrados ao realizar operações de criação, leitura, atualização e eliminação (CRUD) em zonas e conjuntos de registos do Cloud DNS.

Resolução de problemas básica

  • Certifique-se de que tem as funções de IAM corretas, conforme descrito em Prepare as autorizações de IAM.
  • Se estiver a usar gdcloud, pode atualizar o token de autenticação executando o comando gdcloud auth login.

Validação e nomenclatura de recursos (RFC 1123)

Problema: a criação ou a atualização falha com argumentos inválidos ou erros de validação.

Detalhes:

  • Nomes de recursos: os nomes de zonas de DNS e conjuntos de registos têm de estar em conformidade com a RFC
    1. Têm de conter apenas carateres alfanuméricos em minúsculas ou - e têm de começar e terminar com um caráter alfanumérico.
  • Nomes de DNS: os valores de nomes de domínios e nomes de domínios totalmente qualificados (FQDNs) têm de ser nomes de domínios válidos.
  • Valores de enumeração: os valores como a visibilidade (PUBLIC ou PRIVATE) e os tipos de registos (por exemplo, A, CNAME) são sensíveis a maiúsculas e minúsculas e têm de corresponder à string esperada exata.

Não é possível eliminar zonas não vazias

Problema: não é possível eliminar uma zona gerida; a operação é rejeitada.

Detalhes: uma zona de DNS gerida tem de estar vazia de conjuntos de registos de recursos antes de poder ser eliminada. Primeiro, tem de eliminar todos os registos na zona.

Conflitos de nomenclatura e domínio

Problema: falha ao criar um recurso com um erro a indicar que o nome ou o domínio já está a ser usado.

Detalhes:

  • Nome do recurso do Kubernetes: o nome do objeto (por exemplo, o nome em metadata.name) tem de ser exclusivo no espaço de nomes do projeto específico.
  • Nome de DNS (FQDN): o nome do domínio real (por exemplo, dnsName para zonas ou registos) tem de ser exclusivo numa determinada visibilidade (PUBLIC ou PRIVATE). Não pode criar duas zonas ou dois registos com o mesmo nome de domínio no mesmo nível de visibilidade.

Resolva problemas de resolução de DNS

Esta secção ajuda os administradores de plataformas e os operadores de aplicações a resolver problemas de resolução de DNS ao aceder a serviços alojados no Google Distributed Cloud.

Aguarde pela propagação e limpe a cache de DNS

Quando os registos de DNS são criados ou atualizados, as alterações podem não ser visíveis instantaneamente. Normalmente, este atraso é causado por:

  1. Tempo de reconciliação: o sistema precisa de tempo para processar o pedido e atualizar a configuração do servidor DNS. Normalmente, este processo demora alguns minutos.
  2. Atraso na propagação de DNS (colocação em cache): os resolvedores de DNS e os clientes colocam registos em cache para acelerar as pesquisas. Os clientes podem continuar a usar o registo antigo até que o período de tempo de vida (TTL) tenha terminado.

Recomendações:

  • Aguarde: aguarde tempo suficiente para a reconciliação e a expiração da cache.
  • Limpe a cache: limpe a cache de DNS local para forçar uma nova pesquisa.

Valide a configuração do resolvedor local

Certifique-se de que o cliente está a usar os servidores DNS corretos. Se não souber o endereço IP correto, contacte a sua equipa de operações de infraestrutura (IO) para encontrar o IP do servidor DNS correto.

  • Linux/macOS: verifique o conteúdo de /etc/resolv.conf.
  • Windows: execute ipconfig /all e verifique os servidores DNS apresentados.

Teste a resolução com ferramentas padrão

Use ferramentas de linha de comandos padrão para testar a resolução e identificar onde ocorre a falha.

  • Pesquisa básica:

    dig <domain_name>
    

    ou

    nslookup <domain_name>
    
  • Consulte um servidor DNS específico: se souber o IP do servidor ManagedDNS público, consulte-o diretamente para ignorar os resolvedores locais:

    dig @<public_dns_server_ip> <domain_name>
    
  • Consulte um servidor de nomes público: para excluir problemas do resolvedor local, experimente consultar um resolvedor público, como o DNS da Google:

    dig @8.8.8.8 <domain_name>
    

Analise os códigos de resposta de DNS

Quando usar o dig ou o nslookup, verifique o código de estado na resposta:

  • NXDOMAIN: o nome do domínio não foi encontrado. Verifique se existem erros ortográficos ou valide se o registo existe.
  • SERVFAIL: o servidor não conseguiu processar a consulta. Normalmente, isto indica um problema no lado do servidor ou uma falha de comunicação entre os servidores DNS.
  • NOERROR: a consulta foi bem-sucedida, mas pode não haver respostas. Valide se o tipo de registo pedido (por exemplo, A, CNAME) existe.
  • RECUSADO: o servidor recusou-se a responder à consulta, provavelmente devido a definições de política ou controlo de acesso.

Verifique a conetividade de rede

Certifique-se de que o tráfego de rede para o servidor DNS não está bloqueado.

  • O DNS usa a porta 53 para UDP e TCP.
  • Teste a conetividade com o nc (netcat):

    nc -zv <dns_server_ip> 53
    
  • Valide se as regras de firewall permitem tráfego na porta 53.

Limpe a cache de DNS

A limpeza da cache de DNS remove todas as entradas da cache de DNS local. Isto força o sistema operativo a consultar novamente os servidores DNS para o nome do domínio, garantindo que recebe o registo mais atualizado em vez de um registo em cache desatualizado.

  • Windows: ipconfig /flushdns
    • O que faz: limpa a cache do resolvedor de DNS mantida pelo serviço Cliente DNS.
  • macOS: sudo killall -HUP mDNSResponder
    • O que faz: envia um sinal de desligamento (HUP) para o processo mDNSResponder, forçando-o a recarregar e limpar a respetiva cache.
  • Linux (systemd-resolved): sudo systemd-resolve --flush-caches ou sudo resolvectl flush-caches
    • O que faz: indica ao serviço systemd-resolved para descartar a respetiva cache de DNS interna.

Verifique o estado do recurso com a API ou o gdcloud

Se for um inquilino ou tiver acesso à API do GDC, pode verificar o estado dos recursos diretamente:

  • Verifique uma zona de DNS:

    kubectl describe manageddnszone <zone_name> -n <project_namespace>
    
  • Verifique um conjunto de registos de recursos:

    kubectl describe resourcerecordset <record_name> -n <project_namespace>
    

    Procure condições e eventos que possam indicar falhas no processo de reconciliação.

Se tiver acesso à linha de comandos gdcloud, pode usar o describe subcomando, conforme documentado em Liste registos de DNS ou Liste zonas de DNS.