DNS · 11 min read · Oct 03, 2025
Solução de Problemas Comuns de Erros de Configuração de DNS
Solução de Problemas Comuns de Erros de Configuração de DNS
DNS (Sistema de Nomes de Domínio) pode não ser conhecido pela maioria das pessoas que usam a Internet, mas é a verdadeira força invisível que impulsiona a Internet, sem a qual todos estariam vendo números e IPs. Todo o significado dos nomes de domínio existe hoje apenas por causa do DNS.
Introdução
A maneira mais simples de explicar o DNS em uma linha é mapear o nome do domínio para o endereço IP. Não tenho certeza de quantos saberiam que, quando alguém digita um nome de domínio no IE/firefox, o navegador encaminha a solicitação DNS pedindo o endereço IP do resolvedor do ISP (Provedor de ISP) e o resolvedor contata os servidores raiz e, em seguida, recupera sistematicamente o endereço IP em questão de alguns milissegundos.
Entender o DNS e seu funcionamento é um dos assuntos mais difíceis da engenharia de computadores e, ainda assim, os administradores de rede mais experientes lutam com esse tópico quando se trata da escrita de arquivos de zona DNS.
Antes de prosseguir com este artigo, os seguintes pontos são os MAIS IMPORTANTES que você deve lembrar, caso contrário, você não entenderá nada.
Pontos a Lembrar
- Um Registro A deve SEMPRE conter o endereço IP (mapear host para IP)
Sempre que você especificar um registro A, ele deve conter o endereço IP no lado direito. O registro A é tão importante no DNS, sem o qual o significado de mapear nomes de host para IP seria absurdo. Então, lembre-se disso!
CNAME (Alias) deve conter nomes de host. Nenhum IP aqui
Registros NS e MX devem conter nomes de host. Nenhum IP permitido.
Use o PONTO no final, sempre que você especificar um nome de domínio no arquivo de zona DNS. Este PONTO é tão importante e, se você esquecer, terá pesadelos com sua configuração de DNS.
Por exemplo
example.com. IN NS ns1.example.com.
Por que o PONTO? simplesmente porque ele indica que a consulta deve começar a partir dos servidores raiz (denotado pelo ponto)
- Registros MX (para servidores de e-mail) devem conter nomes de host, NÃO IPs.
Termos Comuns de DNS e seus Significados
(i) Registros Glue
Registros glue são registros A que estão associados a registros NS para fornecer informações de “bootstrap” aos registros de nameserver NS. (veja a seção 2.3 do RFC 1912)
domain.com. IN NS ns1.domain.com.
domain.com. IN NS ns2.domain.com.
ns1 IN A 11.33.55.77
s2 IN A 22.44.66.88
No exemplo acima, estamos mapeando cada registro NS para o endereço IP (registro A), assim vinculando os nameservers ao IP (ou seja, colando-os).
(ii) Delegação de Nameserver LAME
Um nameserver que dá resposta não autoritativa é geralmente chamado de ‘LAME’. Todo domínio deve ter pelo menos 2 nameservers e, se eu perguntar a cada um deles, e se eles tiverem informações da zona do domínio, eu obterei uma resposta autoritativa. Se não, é uma ‘delegação lame’. Consulte a seção 2.8 do RFC 1912.
Um exemplo de delegação lame é
domain.com IN NS ns1.domain.com
domain.com IN NS ns2.example-server.net
ns1.domain.com está configurado para ter informações da zona sobre o domínio, mas ns2.exserver.net não foi configurado corretamente e não tem nenhuma informação sobre o domínio. Portanto, ns1 responderá autoritativamente, enquanto ns2 não, o que será ‘lame’ até que seja configurado corretamente.
Para obter uma compreensão mais aprofundada, vamos usar a ferramenta dig para example.com.
- Primeiro, encontramos os nameservers de example.com:
dig example.com NS;; SEÇÃO DE RESPOSTA:
example.com. 158240 IN NS a.iana-servers.net.
example.com. 158240 IN NS b.iana-servers.net.
- Como recebemos 2 nameservers, perguntamos a cada um deles se eles dão resposta autoritativa. Se for autoritativa, a flag ‘aa’ no cabeçalho será definida na resposta recebida (‘aa’ é resposta autoritativa).
dig @b.iana-servers.net example.com NS
dig @a.iana-servers.net example.com NS
;; Obteve resposta:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60896
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; SEÇÃO DE PERGUNTA:
;example.com. IN NS
;; SEÇÃO DE RESPOSTA:
example.com. 172800 IN NS a.iana-servers.net.
example.com. 172800 IN NS b.iana-servers.net.
Olhe nas flags.
flags: qr aa rd
Como ‘aa’ está definido na resposta, então ambos os nameservers de example.com fornecem resposta autoritativa. Se for uma delegação lame, você não obterá a resposta autoritativa.
CUIDADO:
Você não deve usar CNAME (alias) junto com registros NS e isso muitas vezes confunde a maioria dos resolvedores, causando loops e muitas vezes leva a ‘delegação lame’.
domain.com. IN NS ns1.domain.com.
domain.com. IN NS ns2.domain.com.
domain.com. In CNAME ns9.example-server.net
Então, nunca use CNAME junto com registros NS.
(iii) Nameservers Stealth
Nameservers Stealth (ou nameservers ocultos) são nameservers conflitantes/desajustados que existem no nível raiz em relação aos nameservers no domínio.
Para ilustrar isso, quando pergunto aos servidores pai sobre seu domínio para registros NS no nível raiz, eu obtenho
ns0.domain.com
ns2.domain.com
ns3.domain.com
mas quando consulto os nameservers do seu domínio para os registros NS, eles não são os mesmos e aparecem como
ns0.domain.com
ns2.domain.com
ns.example-dns.net
Como ns.example-dns.net e ns3.domain.com estão ocultos, ambos são ‘nameservers stealth’. Embora não haja nada de errado nisso, é aconselhável não ter nenhum nameserver stealth tanto no nível raiz quanto no seu servidor DNS.
Você pode usar o comando dig para procurar registros NS no nível do servidor raiz.
dig +trace @K.root-servers.net example.com NSe para perguntar a um dos nameservers do domínio.
dig @ns0.domain.com example.com NSProcure qualquer discrepância de NS entre as duas consultas. Se houver um nameserver faltando no nível raiz, adicione o nameserver ausente ao seu registrador de domínio. Se o nameserver estiver faltando no nível do domínio, adicione o nameserver ao arquivo de zona do domínio e atualize todos os seus nameservers secundários.
(iv) Servidor DNS Aberto
Executar o servidor DNS ‘aberto’ é um grande risco de segurança, pois ele responde a consultas recursivas tanto de dentro quanto de fora da sua rede. Isso significa que qualquer um pode consultar seu servidor para obter o endereço IP e seu servidor DNS responderá.
Para ilustrar isso, temos dois nameservers executando bind para o domínio example.com.
ns1.example.com
ns2.example.com
Perguntamos ao ns1.example para resolver o domínio externo google.com e, se obtivermos o endereço IP (registro A) na seção de resposta, então significa que é um ‘servidor DNS aberto’.
dig @ns1.example.com google.com
dig @ns2.example.com google.com
;; opções globais: printcmd
;; Obteve resposta:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 12107
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; SEÇÃO DE PERGUNTA:
;google.com. IN A
;; Tempo de consulta: 32 mseg
Como não há seção de RESPOSTA ou endereço IP, ambos os nameservers não constituem um servidor DNS aberto.
Se você estiver executando bind8 ou posterior, tudo o que você precisa fazer é definir ‘recursion no’ dentro das opções para desabilitar o servidor DNS respondendo a consultas recursivas.
options {
….
recursion no;
}
(v) Transferências de Zona (solicitação AXFR)
As transferências de zona são feitas por nameservers secundários para recuperar as informações de zona mais recentes e atualizadas para o domínio do nameserver mestre ou primário. As transferências de zona devem ser disponibilizadas apenas para nameservers secundários e não para o mundo aberto, pois é um grande risco de segurança e pode expor os internos da sua rede ao atacante.
Para solicitar uma transferência de zona para example.com, precisamos perguntar primeiro ao nameserver mestre. Veja o exemplo abaixo com dig.
dig @ns1.example.com example.comSe você ver a saída com o arquivo de zona completo, então você deve desabilitar a transferência de zona. Na maioria dos casos, você verá conexão falhou ou RECUSADA, o que significa que a transferência de zona não é permitida e é uma boa coisa.
Erros Comuns de DNS na Escrita de Arquivos de Zona
1. Nenhum CNAME apontando para registros NS
domain.com. IN NS ns1.domain.com.
domain.com. IN NS ns2.domain.com.
domain.com. In CNAME ns9.example-server.net —–> ERRADO
Colocar CNAME junto com NS fará com que todos os nameservers falhem e resultará em delegação lame. Não faça isso!
Consulte RFC1912 2.4 e RFC2181 10.3.
2. Evite executar servidores DNS em IPs na mesma sub-rede (/24) ou no mesmo servidor.
O objetivo de todo o DNS é que os nameservers estejam espalhados por diferentes locais geográficos, para que, se um DNS falhar, o outro funcione. Embora seja uma prática muito comum executar ambos os nameservers no mesmo servidor ou sub-rede, isso não proporcionaria tolerância a falhas. Se o servidor falhar, seus nameservers falharão e seu site não carregará.
ns1 IN A 75.33.22.xx —–> mesma sub-rede /24
ns2 IN A 75.33.22.xx —–> mesma sub-rede /24
3. GLUE Adequado
Sempre adicione glue aos seus registros NS aos endereços IP usando o registro A, caso contrário, um de seus nameservers falhará.
domain.com. IN NS ns1.domain.com.
domain.com. IN NS ns2.domain.com.
ns1 IN A 1.2.3.4 —–> GLUE
ns2 IN A 2.4.6.9 —–> GLUE
Consulte RFC1912.
4. Nenhum registro MX duplicado
domain.com. IN MX mail.domain.com.
domain.com. IN MX mail.domain.com —-> DUPLICADO
5. Permitir Porta 53 para conexões UDP e TCP
Se você usar firewall, certifique-se de não bloquear a porta 53 para solicitações DNS tcp e udp. Por padrão, as consultas DNS usam o protocolo UDP, enquanto as transferências de zona e notificações usam o protocolo TCP da porta 53.
Porta 53 UDP = Solicitações Dns
Porta 53 TCP = Transferências de zona
6. CNAMEs não podem coexistir com hosts MX.
Não especifique CNAME ou aliases apontando para registros MX.
domain.com. IN MX 10 mail.domain.com.
mail IN CNAME domain.com. ———-> ERRADO
Em vez disso, use o registro A para mapear diretamente para o endereço IP.
mail IN A 11.33.55.77 —> CORRETO
Consulte RFC1912.
7. Registros MX não devem conter endereços IP
domain.com. IN 10 MX mail.domain.com. —-> CORRETO
domain.com. IN 20 MX 11.22.33.44 —–> ERRADO
A maneira correta de fazer isso é colar o host mx ao registro A.
domain.com. IN MX 10 mail.domain.com. —–> CORRETO
mail IN A 11.33.55.77 ———-> CORRETO
8. Registros NS NÃO devem conter endereços IP
Sempre especifique nameservers para seu domínio com registros NS. Deve ser um nome e não um endereço IP.
domain.com. IN NS dns0.domain.com. —–> CORRETO
domain.com. IN NS 75.xx.xx.xx ———–> ERRADO
DNS REVERSO PARA ENTREGA DE E-MAIL
Para uma entrega de e-mail adequada, os seguintes métodos anti-spam são muito importantes para garantir que o e-mail seja entregue na caixa de entrada dos usuários. A maioria dos provedores de serviços de e-mail públicos, como yahoo, hotmail e gmail, utiliza esses parâmetros para sinalizar se o e-mail é spam ou não.
(i) Configurar IP Reverso para seu servidor de e-mail com PTR no DNS (necessita de IP Dedicado)
(ii) Configurar Registro SPF no seu DNS
(iii) Configurar Chaves de Domínio
Eu vi em muitas ocasiões que, se você usar um plano de hospedagem compartilhada, a maioria dos e-mails acaba na pasta de spam/bulk na caixa de entrada dos usuários. Portanto, use um servidor dedicado.
Configurar IPs reversos para IPs de Servidor de E-mail
Para configurar IP reverso, primeiro você precisará fazer um pedido ao seu provedor de hospedagem (já que eles possuem o endereço IP) e pedir que eles configurem um IP reverso para seu servidor de e-mail. Uma vez feito isso, você deve colocar uma linha usando PTR no seu arquivo de zona de domínio.
Para testar a consulta de IP reverso:
host mostrará a saída do dns reverso.
Configurar registro SPF
O registro SPF é configurado usando o registro TXT no seu arquivo de zona DNS. Ele se parece com o que é mostrado abaixo. Visite http://openspf.org para mais informações sobre configuração e configuração.
domain.com. IN TXT “v=spf1 a mx ip4:11.33.55.77 -all”
Para consultar o registro SPF usando dig:
dig domain.com TXTChaves de Domínio
Basicamente, contém 2 registros (com e sem seletor) colocados sob TXT usando sublinhado junto com a chave pública gerada.
O ‘sel’ é um seletor e pode ser o nome do seletor.
Como configurar nameservers DNS para seu domínio usando BIND9
Basta ir ao seu console Linux e digitar os seguintes comandos.
yum install bindCrie um novo arquivo de zona para seu domínio e insira o arquivo de zona de exemplo (veja abaixo). Você deve alterar os parâmetros domain.com, serial e email.
nano /var/named/domain.com.db
Abra /etc/named.conf e coloque as seguintes linhas:
zone “domain.com” {
type master;
file “/var/named/domain.com.com.db”;
};
Salve as alterações no arquivo e reinicie o bind.
service named restart Exemplo de Arquivo de Zona DNS para BIND
Use este arquivo para configurar seus domínios e nameservers no BIND9:
;=================================================================
;ARQUIVO DE ZONA DNS BIND DE EXEMPLO
;para QUALQUER Domínio (Basta mudar domain.com para seu site)
;================================================================
; Antes de começar, NÃO ESQUEÇA O PONTO E O INCREMENTO SERIAL
$TTL 14400
$ORIGIN domain.com.
; Registro SOA
; Especifique o nameserver primário ns1.domain.com
; O serial deve ser incrementado a cada atualização
@ 14400 IN SOA ns1.domain.com. webmaster.domain.com. ( 2009092902 ; Serial em AAAAMMDDXX (XX é incremento)
10800; segundos de atualização
3600; tentar
604800; expirar
38400; mínimo
);
; Endereço IP do site especificado no registro A
IN A xx.xx.xx.xx
; Mínimo 2 nomes de nameserver DNS
IN NS ns1.domain.com.
IN NS ns2.domain.com.
; Mapeando todos os Nameservers e seus IPs correspondentes (GLUE)
ns1 IN A xx.xx.xx.xx
ns2 IN A xx.xx.xx.xx
; Especifique quaisquer subdomínios e entrada www aqui usando o registro CNAME
www IN CNAME domain.com.
ftp IN CNAME domain.com.
server IN CNAME domain.com.
webmail IN CNAME domain.com.
; Configurar registro MX (exchanger de e-mail com prioridade)
domain.com. IN MX 10 mail.domain.com.
; definir registro A para e-mail
mail IN A xx.xx.xx.xx;====================================
Sobre o Autor
Mr. Balakrishnan é um empreendedor da Internet e administrador Linux com interesses em programação PHP e aplicações Linux. Ele pode ser contatado em seu site de blog corpocrat.com ou em sua página do twitter.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.