Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Solucionar erros de DNS no Bind9 no Rocky Linux 9

17 min de leitura  ·  Guia técnico

Solucionar erros de DNS no Bind9 no Rocky Linux 9 exige validar /etc/named.conf e os arquivos de zona, revisar os logs do serviço e testar consultas locais com dig. Na prática, a correção normalmente envolve identificar a linha com erro de sintaxe, ajustar recursão ou ACLs e recarregar a configuração com rndc.

  1. Verifique o status do serviço com systemctl status named
  2. Valide o arquivo de configuração principal com named-checkconf
  3. Valide cada arquivo de zona com named-checkzone
  4. Consulte os logs detalhados em journalctl -u named
  5. Teste a resolução local com dig @127.0.0.1 seudominio.com A
  6. Recarregue as zonas sem downtime com rndc reload

Pré-requisitos para solucionar erros de DNS no Bind9

  • Sistema operacional: Rocky Linux 9 (testado também no AlmaLinux 9)
  • Bind9 instalado: pacote bind e bind-utils via dnf
  • Acesso root ou sudo ao servidor
  • Ferramentas de diagnóstico: dig, nslookup e rndc disponíveis
  • Porta 53 liberada no firewall (TCP e UDP) para consultas DNS
  • Conhecimento básico da estrutura de arquivos de zona DNS (registros SOA, NS, A, MX)

Se você ainda não configurou o acesso ao seu servidor, consulte o guia Acessando servidores VPS Linux da AviraHost antes de prosseguir.

Diagnóstico inicial no Rocky Linux 9: verificando o estado do serviço named

O primeiro passo no diagnóstico de falhas no servidor DNS autoritativo é confirmar se o daemon named está em execução e identificar a causa raiz da falha antes de qualquer alteração.

Execute o comando abaixo para verificar o estado atual do serviço:

systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; enabled)
   Active: failed (Result: exit-code)
  Process: 12345 ExecStart=/usr/sbin/named -u named $OPTIONS (code=exited, status=1/FAILURE)

Quando o serviço aparece como failed, o próximo passo é examinar os logs completos do systemd para identificar a linha exata do erro:

journalctl -u named --since "1 hour ago" --no-pager
named[12345]: /etc/named.conf:42: missing ';' before '}'
named[12345]: loading configuration: failure
named[12345]: exiting (due to fatal error)

O Bind9 no Rocky Linux 9 registra erros com o número de linha exato do arquivo problemático. Anote essa informação antes de prosseguir para a validação dos arquivos de configuração.

Verifique também se o processo está escutando na porta 53:

ss -tulnp | grep :53
udp   UNCONN 0      0      127.0.0.1:53   0.0.0.0:*   users:(("named",pid=12346,fd=20))
tcp   LISTEN 0      10     127.0.0.1:53   0.0.0.0:*   users:(("named",pid=12346,fd=21))

Se nenhuma linha aparecer, o serviço não está em execução ou está vinculado a uma interface incorreta.

Validando a configuração do Bind9 no Rocky Linux 9 com named-checkconf e named-checkzone

A validação da sintaxe do arquivo de configuração principal é a etapa mais crítica no processo de resolução de problemas do servidor de nomes. O named-checkconf analisa o named.conf e todos os arquivos incluídos via diretiva include.

named-checkconf /etc/named.conf
(sem saída = configuração válida)

Se houver erro, a saída será semelhante a:

/etc/named.conf:15: unknown option 'recusion'

Neste caso, a opção recusion está com erro de digitação — o correto é recursion. Corrija o arquivo com um editor de texto:

vi /etc/named.conf

Após corrigir o named.conf, valide cada arquivo de zona individualmente. A sintaxe do named-checkzone exige o nome da zona e o caminho do arquivo:

named-checkzone seudominio.com /var/named/seudominio.com.zone
zone seudominio.com/IN: loaded serial 2024010101
OK

Se houver erro no arquivo de zona:

/var/named/seudominio.com.zone:8: no owner
zone seudominio.com/IN: loading from master file /var/named/seudominio.com.zone failed: no owner
zone seudominio.com/IN: not loaded due to errors.

O erro no owner indica que um registro está sem o nome do host na coluna correta. Verifique a linha 8 do arquivo de zona e certifique-se de que cada registro tem o campo de nome preenchido ou usa @ para representar a raiz da zona.

Para referência sobre como configurar registros DNS corretamente, consulte o artigo Como Configurar DNS Personalizado para Seu Domínio na AviraHost.

Estrutura correta de um arquivo de zona no Bind9

Erros de sintaxe em registros de zona são a causa mais frequente de falhas no servidor DNS autoritativo. Um arquivo de zona bem formado no Rocky Linux 9 segue esta estrutura:

$TTL 86400
@   IN  SOA ns1.seudominio.com. admin.seudominio.com. (
            2024010101  ; Serial
            3600        ; Refresh
            1800        ; Retry
            604800      ; Expire
            86400 )     ; Minimum TTL

@       IN  NS  ns1.seudominio.com.
@       IN  NS  ns2.seudominio.com.
ns1     IN  A   203.0.113.10
ns2     IN  A   203.0.113.11
@       IN  A   203.0.113.10
www     IN  A   203.0.113.10
mail    IN  A   203.0.113.12
@       IN  MX  10 mail.seudominio.com.

Pontos críticos que causam erros com frequência:

  • Ponto final ausente: FQDNs como ns1.seudominio.com sem o ponto final são interpretados como relativos à zona, gerando ns1.seudominio.com.seudominio.com
  • Serial desatualizado: após qualquer alteração, o número serial do SOA deve ser incrementado; caso contrário, servidores secundários não sincronizam
  • Tabulação vs. espaço: o Bind9 aceita ambos, mas misturar pode causar erros de parsing em algumas versões
  • Registro SOA incompleto: parênteses não fechados no bloco SOA causam falha imediata no carregamento da zona

Após corrigir o arquivo de zona, sempre execute named-checkzone antes de recarregar o serviço.

Testando a resolução DNS com dig e nslookup

Após confirmar que a configuração está sintaticamente correta, o próximo passo é verificar se o servidor de nomes está respondendo consultas DNS de forma funcional. O utilitário dig é a ferramenta mais precisa para este diagnóstico.

Consulte diretamente o servidor local para um registro A:

dig @127.0.0.1 seudominio.com A
; <<>> DiG 9.16.23-RH <<>> @127.0.0.1 seudominio.com A
;; ANSWER SECTION:
seudominio.com.     86400   IN  A   203.0.113.10

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; MSG SIZE  rcvd: 56
;; status: NOERROR

O campo status: NOERROR confirma que o Bind9 está respondendo corretamente. Teste também registros MX e NS:

dig @127.0.0.1 seudominio.com MX
dig @127.0.0.1 seudominio.com NS

Para verificar a recursão (resolução de domínios externos), teste com um domínio público:

dig @127.0.0.1 google.com A

Se a recursão falhar, verifique se a opção recursion yes está habilitada no bloco options do named.conf e se os forwarders estão acessíveis:

options {
    directory "/var/named";
    recursion yes;
    allow-query { localhost; 192.168.0.0/24; };
    forwarders {
        8.8.8.8;
        1.1.1.1;
    };
    forward only;
};

Atenção: a diretiva allow-query restringe quais clientes podem fazer consultas ao servidor. Se estiver muito restritiva, clientes legítimos receberão REFUSED. Ajuste o bloco para incluir as redes que devem ter acesso.

Verifique a acessibilidade dos forwarders a partir do servidor:

dig @8.8.8.8 google.com A
;; status: NOERROR
;; Query time: 12 msec

Se este comando falhar, o problema está na conectividade de rede do servidor, não no Bind9.

Recarregando zonas e configurações sem downtime

Em ambientes de produção que atendem múltiplos domínios, reiniciar o serviço named causa uma breve interrupção nas respostas DNS. O utilitário rndc (Remote Name Daemon Control) permite recarregar configurações e zonas sem interromper o daemon.

Para recarregar todas as zonas após uma alteração:

rndc reload
server reload successful

Para recarregar apenas uma zona específica (mais eficiente em servidores com muitas zonas):

rndc reload seudominio.com
zone reload up-to-date

Se você alterou o named.conf (não apenas os arquivos de zona), use:

rndc reconfig
server reconfiguration successful

O rndc reconfig relê o named.conf e adiciona ou remove zonas conforme necessário, sem reiniciar o daemon. Para verificar as estatísticas do servidor em tempo real:

rndc status
version: BIND 9.16.23-RH (Extended Support Version)
running on hostname: servidor.seudominio.com
boot time: Mon, 01 Jan 2024 10:00:00 GMT
last configured: Mon, 01 Jan 2024 10:05:00 GMT
number of zones: 5 (0 automatic)
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/900/1000
tcp clients: 0/150
server is up and running

Atenção: se o rndc retornar rndc: connect failed: 127.0.0.1#953: connection refused, o canal de controle do Bind9 não está configurado. Verifique se o bloco controls está presente no named.conf e se o arquivo /etc/rndc.key existe e tem as permissões corretas.

Configurando o firewall no Rocky Linux 9 para o Bind9

Um erro frequentemente ignorado no diagnóstico de problemas de resolução de nomes é a ausência das regras de firewall corretas. O Rocky Linux 9 usa o firewalld por padrão, e a porta 53 deve estar liberada tanto em TCP quanto em UDP.

Verifique as regras atuais:

firewall-cmd --list-all
public (active)
  services: cockpit dhcpv6-client ssh
  ports:

Se o serviço dns não aparecer na lista, adicione-o:

firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
success
success

Confirme que a porta 53 está acessível externamente usando dig a partir de outra máquina:

dig @IP_DO_SERVIDOR seudominio.com A

Se o SELinux estiver habilitado (padrão no Rocky Linux 9), verifique se ele está bloqueando o Bind9:

ausearch -c named --raw | audit2allow -M named_local
semodule -i named_local.pp

Para verificar o status do SELinux sem desabilitá-lo:

getsebool -a | grep named
named_tcp_bind_http_port --> off
named_write_master_zones --> on

Se o Bind9 precisar escrever em zonas dinâmicas, certifique-se de que named_write_master_zones está habilitado.

Problemas comuns e como resolver

Sintoma: Bind9 não inicia após editar o arquivo de zona

Causa: erro de sintaxe no arquivo de zona ou no named.conf, como ponto e vírgula ausente, parêntese não fechado no SOA ou FQDN sem ponto final.
Solução: execute named-checkconf /etc/named.conf e depois named-checkzone seudominio.com /var/named/seudominio.com.zone. Ambos os comandos apontam o número da linha com o erro. Corrija o problema identificado e tente iniciar o serviço novamente com systemctl start named. Consulte também journalctl -u named -n 50 para ver as últimas 50 linhas de log.

Sintoma: consultas retornam SERVFAIL em vez de NOERROR

Causa: o Bind9 não conseguiu completar a resolução, geralmente por forwarders inacessíveis, falha na recursão ou DNSSEC mal configurado. Também ocorre quando a zona está carregada mas com dados inconsistentes.
Solução: teste os forwarders diretamente com dig @8.8.8.8 google.com. Se funcionarem, verifique se recursion yes está habilitado e se o bloco allow-recursion inclui o cliente que está consultando. Para descartar DNSSEC, adicione temporariamente dnssec-validation no; no bloco options e teste novamente.

Sintoma: consultas retornam REFUSED para clientes externos

Causa: a diretiva allow-query no named.conf está restringindo o acesso apenas a localhost ou a uma sub-rede específica que não inclui o cliente.
Solução: edite o bloco options no named.conf e ajuste o allow-query para incluir as redes necessárias. Para um servidor DNS público autoritativo, use allow-query { any; };. Para um resolver interno, especifique apenas as redes internas. Após a alteração, execute rndc reconfig.

Sintoma: alterações no arquivo de zona não têm efeito após reload

Causa: o número serial do registro SOA não foi incrementado. Servidores secundários e o próprio Bind9 verificam o serial para determinar se a zona foi atualizada. Um serial igual ou menor ao anterior faz com que a zona não seja recarregada.
Solução: edite o arquivo de zona e incremente o serial no registro SOA. O formato recomendado é YYYYMMDDNN (ano, mês, dia, número sequencial do dia). Após incrementar, execute named-checkzone para validar e depois rndc reload seudominio.com.

Sintoma: rndc retorna "connection refused" na porta 953

Causa: o canal de controle do Bind9 não está configurado ou o arquivo de chave /etc/rndc.key está ausente ou com permissões incorretas.
Solução: gere uma nova chave com rndc-confgen -a e verifique se o bloco controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; }; }; está presente no named.conf. Certifique-se de que o arquivo /etc/rndc.key pertence ao usuário named com permissão 640.

Perguntas frequentes sobre erros de DNS no Bind9

Por que o Bind9 não inicia após editar o arquivo de zona?

O motivo mais comum é um erro de sintaxe no arquivo de zona ou no named.conf. Execute named-checkzone e named-checkconf para identificar a linha exata do problema antes de tentar reiniciar o serviço. O Bind9 rejeita qualquer configuração malformada e registra o erro detalhado em /var/log/named/named.log ou via journalctl -u named. Corrija o erro apontado e valide novamente antes de iniciar o daemon.

Como verificar se o Bind9 está respondendo consultas DNS corretamente?

Use o comando dig @127.0.0.1 seudominio.com A para consultar diretamente o servidor local. Se a resposta retornar o status NOERROR com o registro esperado na seção ANSWER SECTION, o Bind9 está funcional. Caso retorne SERVFAIL ou REFUSED, verifique as ACLs de allow-query no named.conf e o estado do serviço com systemctl status named.

O que causa o erro 'SERVFAIL' nas consultas ao Bind9?

SERVFAIL indica que o Bind9 não conseguiu resolver a consulta, geralmente por falha na recursão, zona mal configurada ou forwarders inacessíveis. Verifique se os forwarders definidos em named.conf estão acessíveis via dig @8.8.8.8 google.com e se a opção recursion yes está habilitada para clientes internos. Problemas de DNSSEC mal configurado também geram SERVFAIL — desabilite temporariamente com dnssec-validation no; para isolar a causa.

Como recarregar zonas do Bind9 sem reiniciar o serviço?

Execute rndc reload para recarregar todas as zonas sem interromper o daemon named. Para recarregar apenas uma zona específica, use rndc reload seudominio.com. Isso evita downtime em servidores de produção que atendem múltiplos domínios simultaneamente. Se você alterou o named.conf, use rndc reconfig em vez de rndc reload.

Qual a diferença entre named-checkconf e named-checkzone no Bind9?

O named-checkconf valida a sintaxe do arquivo de configuração principal named.conf e seus includes, sem verificar os arquivos de zona. Já o named-checkzone valida a sintaxe e a consistência de um arquivo de zona específico, verificando registros SOA, NS e a integridade dos dados. Ambos devem ser executados antes de qualquer reinicialização do Bind9 — use named-checkconf primeiro e depois named-checkzone para cada zona modificada.

Conclusão

Diagnosticar e corrigir erros no Bind9 no Rocky Linux 9 é um processo sistemático que começa pela validação da configuração e termina com testes funcionais de resolução. Seguindo as etapas deste guia, você evita reinicializações desnecessárias e minimiza o impacto em produção.

  • Sempre valide antes de reiniciar: execute named-checkconf e named-checkzone após qualquer alteração — nunca reinicie o Bind9 sem validar a configuração primeiro
  • Use rndc para recargas sem downtime: prefira rndc reload ou rndc reconfig em vez de systemctl restart named em servidores de produção
  • Monitore os logs continuamente: configure o Bind9 para registrar consultas e erros em /var/log/named/named.log e revise regularmente com journalctl -u named para identificar problemas antes que afetem os usuários

Leia também

Precisa de ajuda com DNS e infraestrutura de servidor?

Configurar e manter um servidor DNS autoritativo com Bind9 exige atenção a detalhes de sintaxe, segurança e disponibilidade. Um VPS com suporte técnico especializado pode simplificar significativamente essa operação, especialmente em ambientes de produção críticos.

Conheça os planos de VPS da AviraHost e hospede seu servidor DNS com estabilidade

  • 0 Os usuários acharam isso útil
  • Bind9, DNS, Rocky Linux, servidor-dedicado, AviraHost
Esta resposta foi útil?

Artigos Relacionados

Instalando painel de gerenciamento de hospedagem VirtualMin.

O virtualmin é um painel de gerenciamento de hospedagem de sites gratuito, que é suportado por...

Como usar a ferramenta oficial de acesso remoto do Windows no PC e celular

1. Pelo menu Iniciar, acesse os “Acessórios do Windows” e abra o “Conexão de Área de Trabalho...

Como acessar o painel de gerenciamento dos meus Serviços.

Para acessar o painel de gerenciamento do seu serviço basta seguir o passo á passo abaixo.   1....

Compreendendo o Servidor VPS: O que é e Como Funciona!

Um servidor VPS (Virtual Private Server) é uma solução de hospedagem na qual um servidor físico é...

Como trocar a senha do usuário root do servidor VPS ou Dedicado.

Para trocar a senha do usuário root em um servidor VPS da AviraHost, você pode seguir os...