DNS Server · 15 min read · Sep 08, 2025
Como Instalar um Servidor DNS com BIND no Rocky Linux 9

BIND ou Berkeley Internet Name Domain é um software de Servidor DNS gratuito e de código aberto. É um dos softwares de servidor DNS mais populares, utilizado por mais de 70% dos DNS na Internet. O BIND existe desde a década de 1980, sendo conhecido por sua flexibilidade, desempenho e recursos. O BIND pode ser usado tanto como DNS autoritativo quanto como DNS de cache, e suporta balanceamento de carga, atualização dinâmica, DNS dividido, DNSSEC, IPv6 e muito mais.
O software DNS BIND é um dos servidores DNS mais confiáveis para sistemas operacionais semelhantes ao Unix. Está disponível na maioria das distribuições Linux e fornece ferramentas adicionais para diagnóstico e teste do servidor DNS.
Este tutorial mostrará como configurar um Servidor DNS com BIND em um servidor Rocky Linux 9. O BIND é um dos softwares de Servidor DNS mais populares que fornece vários recursos, como DNS Autoritativo, DNS Apenas de Cache, Balanceamento de Carga DNS Básico, DNS Dividido, DNSSEC, IPv6 e muito mais.
Pré-requisitos
Com este tutorial, você configurará e implementará um Servidor DNS BIND com arquitetura Master-Slave. Portanto, você precisará de dois servidores Rocky Linux. Além disso, você precisará de privilégios de root/administrador em cada servidor.
Para configurar um servidor DNS público que possa gerenciar seu domínio (Servidor DNS Autoritativo), você também deve ter o nome de domínio registrado e ‘Glue Records’ configurados.
Além disso, neste guia, assumiremos que o SELinux está em execução no modo ‘permissivo’.
Preparando o Sistema
Para começar com este guia, você configurará o FQDN (Nome de Domínio Totalmente Qualificado) correto em cada um de seus servidores Rocky Linux. Isso pode ser feito através do utilitário de comando ‘hostnamectl‘ e do arquivo ‘/etc/hosts‘.
Abaixo estão os detalhes dos servidores que serão usados como exemplo para este guia:
Hostname IP Address FQDN Used as
---------------------------------------------------------------
ns1 192.168.5.100 ns1.howtoforge.local Master
ns2 192.168.5.120 ns2.howtoforge.local SlaveNo servidor mestre, execute o comando hostnamectl abaixo para configurar o fqdn para ‘ns1.howtoforge.local‘.
sudo hostnamectl set-hostname ns1.howtoforge.localAbaixo, você também precisa executar o comando hostnamectl no servidor Slave para configurar o fqdn para ‘ns2.howtoforge.local‘.
sudo hostnamectl set-hostname ns2.howtoforge.localEm seguida, abra o arquivo ‘/etc/hosts’ em ambos os servidores Master e Slave usando o seguinte comando do editor nano.
sudo nano /etc/hostsAdicione a seguinte linha ao arquivo.
192.168.5.100 ns1.howtoforge.local ns1
192.168.5.120 ns2.howtoforge.local ns2Salve o arquivo e saia do editor quando terminar.
Por último, execute o seguinte comando ‘hostname’ para verificar o fqdn em cada servidor. Você deve ver que o servidor Master tem o fqdn como ‘ns1.howtoforge.local‘, e o servidor Slave tem o fqdn ‘ns2.howtoforge.local‘.
sudo hostname -fAbaixo está a saída do servidor Master.

E abaixo está a saída do servidor Slave.

Com o fqdn configurado, você está pronto para instalar o BIND nos servidores Rocky Linux.
Instalando Pacotes BIND
Por padrão, o repositório AppStream do Rocky Linux fornece a versão estável mais recente do pacote BIND. No momento da redação deste texto, a versão estável atual do BIND é a v9.16.
Nesta etapa, você instalará pacotes BIND em ambos os servidores Master e Slave. Em seguida, configure o BIND para rodar apenas no IPv4 e configure o firewalld para permitir a porta DNS.
Execute o comando dnf abaixo para instalar pacotes BIND em ambos os servidores Master e Slave. Quando solicitado para confirmação, digite y para confirmar e pressione ENTER para prosseguir.
sudo dnf install bind bind-utils
Após a instalação dos pacotes BIND, abra a configuração ‘/etc/sysconfig/named‘ usando o seguinte comando do editor nano.
sudo nano /etc/sysconfig/namedAdicione a opção padrão ‘OPTIONS=..‘ com a seguinte linha. Esta opção de comando para ‘bind’ ou ‘named’ fará com que o BIND funcione apenas no IPv4.
OPTIONS="-4"Salve o arquivo e saia do editor quando terminar.
Em seguida, execute o comando systemctl abaixo para iniciar e habilitar o serviço BIND ‘named‘. O serviço ‘named’ deve agora estar em execução e habilitado, o que fará com que ele inicie automaticamente na inicialização.
sudo systemctl start named
sudo systemctl enable named
Agora verifique o serviço ‘named’ para garantir que o serviço está em execução e habilitado através do seguinte comando.
sudo systemctl is-enabled named
sudo systemctl status namedVocê receberá uma saída semelhante à seguinte - O serviço BIND ‘named’ está habilitado e atualmente está em execução.

Com o serviço BIND ‘named’ em execução, você precisará adicionar a porta DNS ao firewalld, que está habilitado e em execução por padrão no Rocky Linux.
Execute o comando firewall-cmd abaixo para adicionar o serviço DNS ao firewalld. Em seguida, recarregue o firewalld para aplicar as alterações.
sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --reloadSe você verificar a lista de serviços habilitados no firewalld, deverá ver que o serviço DNS está habilitado. Execute o comando firewall-cmd abaixo para verificar a lista de serviços.
sudo firewall-cmd --list-servicesSaída:

Neste ponto, você terminou a configuração do fqdn, instalou os pacotes BIND e também configurou o firewalld. Com isso em mente, você pode agora começar a configurar o BIND Master no servidor Master.
Configurando o Servidor DNS BIND Master
Nesta etapa, você configurará o servidor BIND Master usando o Rocky Linux ‘ns1.howtoforge.local‘ e o endereço IP do servidor é ‘192.168.5.100‘. Certifique-se de que você execute os seguintes comandos no servidor Master.
Você configurará o servidor BIND Master com os seguintes passos:
- A Configuração Básica incluirá a configuração de ACLs (Listas de Controle de Acesso), definindo qual endereço IP executará o serviço BIND, configurando encaminhadores e muito mais.
- Configurando Zonas - É aqui que você cria configurações para seu domínio. Isso inclui a configuração do domínio principal e a configuração do DNS reverso.
Configuração Básica
A configuração padrão do BIND na distribuição baseada em RHEL está disponível em ‘/etc/named.conf’.
Agora abra o arquivo ‘/etc/named.conf‘ usando o seguinte comando do editor nano abaixo.
sudo nano /etc/named.confAltere a configuração padrão com as seguintes linhas.
acl "trusted" {
192.168.5.100; # ns1 - ou você pode usar localhost para ns1
192.168.5.120; # ns2
192.168.5.0/24; # redes confiáveis
};
options {
listen-on port 53 { 192.168.5.100; };
// listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { localhost; trusted; };
recursion yes;
allow-recursion { trusted; };
allow-transfer { localhost; 192.168.5.120; };
forwarders {
8.8.8.8;
1.1.1.1;
};Salve o arquivo e saia do editor quando terminar.

Com esta configuração, você configurará o BIND com as seguintes configurações:
- Configure uma ACL ‘trusted‘ que permite qualquer consulta de redes locais.
- Execute o serviço BIND em ‘192.168.5.100‘ com a porta padrão ‘53‘.
- Habilite a recursão e permita a recursão das redes da ACL ‘trusted‘.
- Permita a transferência de zonas para o servidor Slave com o endereço IP ‘192.168.5.120‘.
- Configure encaminhadores com o servidor DNS público 1.1.1.1 do Cloudflare e 8.8.8.8 do Google.
Em seguida, execute o comando abaixo para verificar a configuração do BIND ‘/etc/named.conf‘.
sudo named-checkconf /etc/named.confPor último, execute o comando systemctl abaixo para reiniciar o serviço BIND ‘named’ e aplicar as alterações.
sudo systemctl restart namedVocê agora terminou a configuração básica do Servidor DNS BIND.
Configurando Zonas
Agora você configurará zonas com o Servidor DNS BIND. Você criará um novo Servidor DNS com o endereço ‘ns1.howtoforge.local’ e ‘ns2.howtoforge.local’.
Para começar, abra a configuração do BIND ‘/etc/named.conf‘ através do comando do editor nano abaixo.
sudo nano /etc/named.confAdicione a seguinte configuração ao final da linha.
include "/etc/named/zones.conf.local";Salve o arquivo e saia do editor quando terminar.
Em seguida, crie uma nova configuração ‘/etc/named/zones.conf.local‘ usando o comando do editor nano abaixo.
sudo nano /etc/named/zones.conf.localAdicione as seguintes linhas ao arquivo.
zone "howtoforge.local" {
type master;
file "db.howtoforge.local"; # caminho do arquivo da zona
allow-transfer { 192.168.5.120; }; # endereço IP ns2 - DNS secundário
};
zone "5.168.192.in-addr.arpa" {
type master;
file "db.192.168.5"; # subnet 192.168.5.0/24
allow-transfer { 192.168.5.120; }; # endereço IP privado ns2 - DNS secundário
};Salve e feche o arquivo quando terminar.
Com esta configuração, você definirá as seguintes configurações:
- Crie duas zonas para o domínio ‘howtoforge.local‘ e o DNS reverso ‘5.168.192.in-addr.arpa‘.
- Ambas as zonas do tipo ‘master‘.
- Permita a transferência de zona para o Servidor DNS Slave que estará em execução no endereço IP do servidor ‘192.168.5.120‘.

Em seguida, crie uma nova configuração de zona DNS, ‘/var/named/db.howtoforge.local’, usando o seguinte comando do editor nano.
sudo nano /var/named/db.howtoforge.localAdicione as seguintes linhas ao arquivo.
;
; Arquivo de dados BIND para a interface de loopback local
;
$TTL 604800
@ IN SOA ns1.howtoforge.local. admin.howtoforge.local. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; Registros NS para servidores de nomes
IN NS ns1.howtoforge.local.
IN NS ns2.howtoforge.local.
; Registros A para servidores de nomes
ns1.howtoforge.local. IN A 192.168.5.100
ns2.howtoforge.local. IN A 192.168.5.120
; Manipulador de e-mail ou registro MX para o domínio howtoforge.local
howtoforge.local. IN MX 10 mail.howtoforge.local.
; Registros A para nomes de domínio
howtoforge.local. IN A 192.168.5.50
mail.howtoforge.local. IN A 192.168.5.15Salve e feche o arquivo quando terminar.
Neste exemplo, você configurará zonas com as seguintes configurações:
- Defina os registros do Servidor de Nomes ‘ns1.howtoforge.local‘ com o endereço IP ‘192.168.5.100‘ e o ‘ns2.howtoforge.local‘ com o endereço IP ‘192.168.5.120‘.
- Defina dois domínios adicionais, ‘howtoforge.local‘, que serão resolvidos para o endereço IP do servidor ‘192.168.5.50‘ e o domínio ‘mail.howtoforge.local‘ para o endereço IP ‘192.168.5.15‘.
- Você também criará um registro MX para o domínio ‘howtoforge.local‘ que o servidor de e-mail ‘mail.howtoforge.local’ irá gerenciar.

Em seguida, você começará a configurar o DNS reverso para o domínio howtoforge.local.
Crie uma nova configuração de DNS reverso ‘/var/named/db.192.168.5‘ usando o comando do editor nano abaixo.
sudo nano /var/named/db.192.168.5Adicione as seguintes linhas ao arquivo.
;
; Arquivo de dados reverso BIND para a interface de loopback local
;
$TTL 604800
@ IN SOA ns1.howtoforge.local. admin.howtoforge.local. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; servidores de nomes - Registros NS
IN NS ns1.howtoforge.local.
IN NS ns2.howtoforge.local.
; Registros PTR
100 IN PTR ns1.howtoforge.local. ; 192.168.5.100
120 IN PTR ns2.howtoforge.local. ; 192.168.5.120
50 IN PTR howtoforge.local. ; 192.168.5.50
15 IN PTR mail.howtoforge.local. ; 192.168.5.15Salve e feche o arquivo quando terminar.
Com esta configuração, você configurará o DNS reverso ou registros PTR como abaixo.
- Na configuração de DNS reverso, você também definirá o servidor de nomes ns1.howtoforge.local e ns2.howtoforge.local.
- Cada configuração de DNS reverso usa o último número do endereço IP que é resolvido para cada domínio. Neste exemplo, o servidor de nomes ns1.howtoforge.local com o endereço IP ‘192.168.5.100’, e o registro PTR deve ser ‘100‘.
- O restante dos registros PTR é o mesmo que descrito acima.

Neste ponto, você criou duas configurações de zona para o domínio ‘howtoforge.local‘ e criou um servidor de nomes ‘ns1.howtoforge.local‘ e ‘ns2.howtoforge.local‘.
Agora execute o comando chmod abaixo para alterar a propriedade de ambas as configurações de zona.
sudo chown -R named: /var/named/{db.howtoforge.local,db.192.168.5}Em seguida, verifique os arquivos de configuração de zona através do utilitário de comando ‘named-checkconf‘ abaixo.
sudo named-checkconfsudo named-checkzone howtoforge.local /var/named/db.howtoforge.local
sudo named-checkzone 5.168.192.in-addr.arpa /var/named/db.192.168.5Se você tiver configurações BIND adequadas, receberá a saída como a seguinte captura de tela.

Por último, execute o comando systemctl abaixo para reiniciar o serviço BIND ‘named’ e aplicar as alterações. Em seguida, verifique o status do serviço BIND para garantir que o serviço está em execução.
sudo systemctl restart named
sudo systemctl status namedVocê receberá uma saída semelhante à seguinte - o serviço BIND ‘named‘ está em execução e você terminou a configuração do BIND Master.

Na próxima etapa, você configurará o servidor BIND Slave.
Configurando o Servidor DNS BIND Slave
Após configurar o servidor DNS Master, você começará a configurar o servidor BIND Slave no servidor ‘ns2.howtoforge.local’ com o endereço IP ‘192.168.5.120’.
A configuração básica para ‘named.conf’ é semelhante à do BIND Master, e para os arquivos de zona, você pode definir o nome do arquivo sem criar um arquivo real no servidor BIND Slave.
Antes de começar, certifique-se de que você execute os seguintes comandos no servidor BIND Slave.
Agora abra a configuração do BIND ‘/etc/named.conf‘ no servidor Slave através do comando do editor nano abaixo.
sudo nano /etc/named.confAltere a configuração padrão com as seguintes linhas.
acl "trusted" {
192.168.5.100; # ns1 - ou você pode usar localhost para ns1
192.168.5.120; # ns2
192.168.5.0/24; # redes confiáveis
};
options {
listen-on port 53 { 192.168.5.120; };
//listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { any; };
recursion yes;
allow-recursion { trusted; };
allow-transfer { none; };
forwarders {
8.8.8.8;
1.1.1.1;
};
};As configurações são semelhantes ao servidor BIND Master, e abaixo estão algumas diferenças nas configurações.
- O serviço BIND estará em execução no endereço IP ‘192.168.5.120‘ no servidor Slave.
- A recursão está habilitada, mas a ‘allow-transfer’ está configurada como ‘none‘.

Agora adicione a seguinte linha ao final do arquivo ‘named.conf’ para definir zonas.
include "/etc/named/zones.conf.local";Salve o arquivo e saia do editor quando terminar.
Em seguida, crie uma nova configuração ‘/etc/named/zones.conf.local’ usando o comando do editor nano.
sudo nano /etc/named/zones.conf.localAdicione as seguintes linhas ao arquivo.
zone "howtoforge.local" {
type slave;
file "slaves/db.howtoforge.local";
masters { 192.168.5.100; }; # endereço IP ns1 - DNS master
};
zone "5.168.192.in-addr.arpa" {
type slave;
file "slaves/db.192.168.5";
masters { 192.168.5.100; }; # endereço IP ns1 - DNS master
};Salve e feche o arquivo quando terminar.
Com isso, você definirá algumas configurações abaixo no servidor BIND Slave:
- Defina duas zonas para o domínio ‘howtoforge.local‘ e seu DNS reverso.
- Ambas as zonas do tipo ‘slave‘.
- O arquivo de zona para cada uma será retirado do diretório ‘/var/named/slaves‘, que é transferido do servidor BIND Master.

Em seguida, execute o comando ‘named-checkconf’ abaixo para verificar as configurações BIND. Em seguida, reinicie o serviço BIND ‘named’ no servidor Slave através do comando systemctl como abaixo.
sudo named-checkconf
sudo systemctl restart namedVocê não terá mensagens de erro se tiver uma configuração BIND adequada.
Por último, execute o comando systemctl abaixo para verificar o serviço BIND ‘named‘ no servidor Slave para garantir que o serviço está em execução.
sudo systemctl status namedVocê agora receberá uma saída semelhante à seguinte - o serviço BIND ‘named’ está em execução no servidor BIND Slave.

Neste ponto, você terminou a instalação do BIND DNS com a arquitetura Master-Slave. Você agora estará pronto para começar a testar a partir da máquina cliente.
Testando a partir do Cliente
Este exemplo usa um sistema Debian como a máquina cliente, então instale alguns pacotes abaixo via APT antes de começar.
sudo apt install dnsutils bind9-utilsDigite y quando solicitado para confirmação e pressione ENTER para prosseguir.

Em seguida, execute o seguinte comando para remover o arquivo de link padrão “/etc/resolv.conf“ e criar um novo arquivo usando o editor nano.
sudo unlink /etc/resolv.conf
sudo nano /etc/resolv.confAdicione a seguinte configuração ao arquivo. Na configuração a seguir, estamos definindo três resolvedores diferentes, o BIND DNS Master, o Servidor DNS BIND Secundário e o resolvedor DNS público do Cloudflare. Quando a máquina cliente solicitar informações sobre o nome de domínio, as informações serão retiradas do resolvedor DNS, de cima para baixo.
nameserver 192.168.5.100
nameserver 192.168.5.120
nameserver 1.1.1.1
search howtoforge.localSalve e feche o arquivo quando terminar.
Agora você está pronto para verificar seu servidor DNS a partir da máquina cliente.
Execute o comando dig abaixo para verificar o nome de domínio “howtoforge.local” e “mail.howtoforge.local”. E você deve ver que “howtoforge.local“ é resolvido para o endereço IP do servidor “192.168.5.50“, enquanto o subdomínio “mail.howtoforge.local“ é tratado pelo endereço IP do servidor “192.168.5.15“.
dig howtoforge.local +short
dig howtoforge.localdig mail.howtoforge.local +short
dig mail.howtoforge.localVerificando o nome de domínio howtoforge.local.

verificando o subdomínio mail.howtoforge.local.

Em seguida, execute o comando dig abaixo para verificar o manipulador de e-mail para o nome de domínio “howtoforge.local“. E você deve obter a saída de que “mail.howtoforge.local“ é o responsável pelo e-mail do domínio principal “howtoforge.local“.
dig howtoforge.local MX +short
dig howtoforge.local MX
Você pode verificar a configuração da zona reversa para seu nome de domínio usando o comando nslookup.
Execute o comando nslookup abaixo para verificar e validar o DNS reverso para alguns endereços IP.
Agora você deve ver que o endereço IP “192.168.5.100“ é revertido para o servidor de nomes “ns1.howtoforge.local“, o endereço IP “192.168.5.120“ é revertido para o servidor de nomes “ns2.howtoforge.local“, e o endereço IP “192.168.5.50“ é revertido para o nome de domínio principal “howtoforge.local“, e por último, o endereço IP “192.168.5.15“ é revertido para o subdomínio “mail.howtoforge.local“.
slookup 192.168.5.100
slookup 192.168.5.120
slookup 192.168.5.50
slookup 192.168.5.15
Neste ponto, você terminou a instalação do Servidor DNS BIND com a arquitetura Master-Slave no Rocky Linux. Você também aprendeu como testar o Servidor DNS através de vários utilitários de comando, como dig e nslookup.
Conclusão
Parabéns! Ao longo deste tutorial, você aprendeu a instalação e configuração do Servidor DNS BIND nos servidores Rocky Linux 9. Você configurou com sucesso o Servidor DNS BIND Master-Slave usando dois servidores Rocky Linux diferentes. Além disso, você aprendeu os comandos básicos do Dig e Nslookup para verificar e validar registros e configurações DNS.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.