Servidor DNS · 14 min read · Sep 08, 2025
Como Configurar um Servidor DNS com BIND no Ubuntu 22.04

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, usado por mais de 70% do 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, 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 guia ensinará você a instalar o Servidor DNS com BIND no servidor Ubuntu 22.04. Este tutorial mostrará como configurar a instalação do servidor DNS BIND Master-Slave usando dois servidores Ubuntu.
Pré-requisitos
Antes de começar com este guia, você deve ter os seguintes requisitos:
- Dois Servidores Ubuntu 22.04.
- Um usuário não-root com privilégios de root/administração.
Configurando FQDN (Nome de Domínio Totalmente Qualificado)
Antes de começar a instalar os pacotes BIND, você deve garantir que o nome do host e o FQDN de seus servidores estejam corretos. Nesta demonstração, teremos dois servidores Ubuntu com os seguintes detalhes:
Hostname IP Address FQDN Used As
---------------------------------------------------------
ns1 192.168.5.21 ns1.howtoforge.local BIND Master
ns2 192.168.5.22 ns2.howtoforge.local BIND SlaveAgora faça login em cada servidor e execute o seguinte comando para configurar o FQDN (Nome de Domínio Totalmente Qualificado).
Configurar FQDN no servidor “ ns1 “.
sudo hostnamectl set-hostname ns1.howtoforge.localConfigurar FQDN no servidor “ ns2 “.
sudo hostnamectl set-hostname ns2.howtoforge.localEm seguida, edite o arquivo “ /etc/hosts “ usando o seguinte comando.
sudo nano /etc/hostsAdicione a seguinte configuração a cada servidor.
192.168.5.21 ns1.howtoforge.local ns1
192.168.5.22 ns2.howtoforge.local ns2Salve e feche o arquivo quando terminar.
Por último, verifique e confirme o FQDN em cada servidor usando o seguinte comando. No servidor “ ns1 “, você obterá o FQDN como “ ns1.howtoforge.local “, e no servidor “ ns2 “, você obterá a saída “ ns2.howtoforge.local “.
sudo hostname -fInstalando Pacotes BIND
Os pacotes Bind estão disponíveis por padrão no repositório do servidor Ubuntu. Agora você pode instalar facilmente o Bind usando o comando apt em ambos os servidores “ns1” e “ns2”.
Execute o comando apt abaixo para atualizar e atualizar os repositórios do Ubuntu.
sudo apt updateDepois disso, instale os pacotes Bind usando o seguinte comando. Digite Y para confirmar a instalação e pressione ENTER para continuar. E a instalação começará.
sudo apt install bind9 bind9utils bind9-doc dnsutils
Após a instalação do Bind ser concluída, edite a configuração “ /etc/default/named “ usando o seguinte comando.
sudo nano /etc/default/namedA linha “ OPTIONS= “ permite que você configure opções específicas quando o serviço BIND estiver em execução. Nesta demonstração, você executará o Bind apenas com IPv4, então você precisará fazer a linha “ OPTIONS “ como abaixo.
OPTIONS="-u bind -4"Salve e feche o arquivo quando terminar.
Agora execute o comando abaixo para reiniciar o serviço Bind “ named “. Em seguida, verifique e confirme o status do serviço BIND. Você deve ver que o serviço Bind “ named “ está em execução em ambos os servidores.
sudo systemctl restart named
sudo systemctl status named
Configurando BIND Master
Após instalar os pacotes BIND em ambos os servidores “ns1” e “ns2”, você estará configurando o servidor DNS BIND. Você configurará o servidor “ns1” como o Master do servidor DNS BIND. Você pode executar o BIND em um único servidor, mas é recomendado usar vários servidores para configurar o Servidor DNS de Alta Disponibilidade.
Volte para a sessão do terminal do servidor “ ns1 “.
Execute o comando abaixo para editar o arquivo de configuração “ /etc/bind/named.conf.options “.
sudo nano /etc/bind/named.conf.optionsAdicione a seguinte configuração ao arquivo no topo da linha, antes da linha “ options {….}; “.
Com esta configuração, você estará criando uma ACL (Lista de Controle de Acesso) com o nome “ trusted “, que inclui todos os endereços IP e redes confiáveis em seu ambiente. Além disso, certifique-se de adicionar o endereço IP do servidor local “ ns1 “ e o endereço IP do servidor DNS secundário “ ns2 “.
acl "trusted" {
192.168.5.21; # ns1 - ou você pode usar localhost para ns1
192.168.5.22; # ns2
192.168.5.0/24; # redes confiáveis
};Agora faça alterações na seção “ options {..}; “ como abaixo.
No exemplo a seguir, estamos desativando o suporte para IPv6 comentando a opção “ listen-on-v6 “, habilitando e permitindo a recursão da ACL “ trusted “, e executando o serviço BIND em um endereço IP específico “ ns1 “ “ 192.168.5.21 “. Além disso, estamos desativando a transferência de zona padrão e definindo os encaminhadores específicos para o servidor DNS BIND para o Google Public DNS “ 8.8.8.8 “ e “ 8.8.4.4 “.
options {
directory "/var/cache/bind";
//listen-on-v6 { any; }; # desativar bind em IPv6
recursion yes; # habilita consultas recursivas
allow-recursion { trusted; }; # permite consultas recursivas de "trusted" - referenciado à ACL
listen-on { 192.168.5.21; }; # endereço IP ns1
allow-transfer { none; }; # desativar transferências de zona por padrão
forwarders {
8.8.8.8;
1.1.1.1;
};
};Salve e feche o arquivo quando terminar.
Por último, execute o seguinte comando para verificar e confirmar o arquivo de configuração “ /etc/bind/named.conf.options “. Se não houver mensagem de saída, então sua configuração está correta.
sudo named-checkconf /etc/bind/named.conf.optionsConfigurando Zonas
Após configurar a configuração básica do BIND master, agora você estará configurando zonas para seu nome de domínio. No exemplo a seguir, usaremos o nome de domínio “ howtoforge.local “ com o servidor de nomes “ ns1.howtoforge.local “ e “ ns2.howtoforge.local “.
Edite o arquivo de configuração “ /etc/bind/named.local “ usando o seguinte comando.
sudo nano /etc/bind/named.conf.localNesta configuração, você estará definindo dois arquivos de zona, zona direta e zona reversa para seu nome de domínio. A zona direta conterá a configuração de onde seus nomes de domínio serão resolvidos para o endereço IP, enquanto a zona reversa traduzirá o endereço IP para qual nome de domínio.
No exemplo a seguir, definiremos a zona direta “ /etc/bind/zones/db.howtoforge.local “ para o domínio “ howtoforge.local “ e a zona reversa “ /etc/bind/zones/db.192.168.5 “.
zone "howtoforge.local" {
type master;
file "/etc/bind/zones/db.howtoforge.local"; # caminho do arquivo de zona
allow-transfer { 192.168.5.22; }; # endereço IP ns2 - DNS secundário
};
zone "5.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/db.192.168.5"; # subnet 192.168.5.0/24
allow-transfer { 192.168.5.22; }; # endereço IP privado ns2 - DNS secundário
};Salve e feche o arquivo quando terminar.
Em seguida, execute o seguinte comando para criar um novo diretório “ /etc/bind/zones “ que será usado para armazenar arquivos de configuração de zona.
sudo mkdir -p /etc/bind/zones/Depois disso, copie a configuração de zona direta padrão “/etc/bind/zones/db.howtoforge.local” e edite o arquivo usando o seguinte comando.
sudo cp /etc/bind/db.local /etc/bind/zones/db.howtoforge.local
sudo nano /etc/bind/zones/db.howtoforge.localAltere o registro SOA padrão com seu nome de domínio. Além disso, você precisará alterar o número “ Serial “ dentro dos registros SOA toda vez que fizer alterações no arquivo, e este deve ser o mesmo número “Serial” com o servidor DNS secundário/escravo.
Então, você pode definir registros NS e registros A para seu servidor DNS. Neste exemplo, o servidor de nomes será “ ns1.howtoforge.local “ com o endereço IP do registro A “ 192.168.5.21 “ e “ ns2.howtoforge.local “ com o registro A do endereço IP do servidor DNS secundário “ 192.168.5.22 “.
Por último, você pode definir outros nomes de domínio. Neste exemplo, definiremos um registro MX (manipulador de e-mail) para o domínio “ howtoforge.local “ que será tratado pelo servidor de e-mail “ mail.howtoforge.local “. Além disso, definiremos o nome de domínio “ howtoforge.local “ que será resolvido para o servidor com o endereço IP “ 192.168.5.100 “ e o subdomínio para o servidor de e-mail “ mail.howtoforge.local “ para o endereço IP do servidor “ 192.168.5.120 “.
;
; 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.21
ns2.howtoforge.local. IN A 192.168.5.22
; 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.100
mail.howtoforge.local. IN A 192.168.5.120Salve e feche o arquivo quando terminar.

Em seguida, copie o arquivo de configuração da zona reversa padrão para “ /etc/bind/zones/db.192.168.5 “ e edite o novo arquivo usando o seguinte comando.
sudo cp /etc/bind/db.127 /etc/bind/zones/db.192.168.5
sudo nano /etc/bind/zones/db.192.168.5Altere o registro SOA padrão usando seu nome de domínio. Além disso, não se esqueça de alterar o número “ Serial “ dentro do registro SOA.
Defina registros NS para seus servidores DNS. Estes são os mesmos servidores de nomes que você usou na zona direta.
Por último, defina os registros PTR para seus nomes de domínio. O número nos registros PTR é o último número do endereço IP. Neste exemplo, o servidor de nomes “ ns1.howtoforge.local “ é resolvido para o endereço IP “ 192.168.5.21 “, então agora o registro PTR será “ 21 “ e assim por diante para outros nomes de domínio.
;
; 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
21 IN PTR ns1.howtoforge.local. ; 192.168.5.21
22 IN PTR ns2.howtoforge.local. ; 192.168.5.22
100 IN PTR howtoforge.local. ; 192.168.5.100
120 IN PTR mail.howtoforge.local. ; 192.168.5.120Salve e feche o arquivo quando terminar.

Agora execute o seguinte comando para verificar as configurações do BIND e ter certeza de que não há mensagens de erro.
sudo named-checkconfEm seguida, execute o seguinte comando para verificar e confirmar cada arquivo de zona que você acabou de criar, o arquivo de configuração da zona direta e da zona reversa. Se seus arquivos de zona não tiverem erro, você deve ver a mensagem de saída como “ OK “. Se não houver erro, o comando mostrará qual linha do arquivo causou um erro.
sudo named-checkzone howtoforge.local /etc/bind/zones/db.howtoforge.local
sudo named-checkzone 5.168.192.in-addr.arpa /etc/bind/zones/db.192.168.5
Para finalizar a configuração do BIND Master, execute o comando abaixo para reiniciar o serviço BIND e aplicar as novas alterações nas configurações que você fez.
sudo systemctl restart namedConfigurando BIND Slave
Agora você terminou a configuração do Servidor DNS Master BIND. É hora de configurar o servidor “ns2” como o secundário ou escravo do servidor DNS BIND.
O servidor Master armazena arquivos de zona que contêm a configuração DNS do seu domínio e lida com consultas recursivas ou iterativas. O servidor DNS secundário/escravo armazena registros DNS por um período de tempo temporariamente, e esses registros DNS são transferidos automaticamente do servidor Master BIND.
Agora vá para a sessão do terminal do “ ns2 “ e comece a configurar o servidor “ ns2 “ como um Secundário/Escravo do servidor DNS BIND.
Execute o seguinte comando para editar o arquivo de configuração “ /etc/bind/named.conf.options “
sudo nano /etc/bind/named.conf.optionsNo topo da linha, adicione a seguinte configuração. Isso criará a mesma ACL (Lista de Controle de Acesso) que no servidor Master.
acl "trusted" {
192.168.5.21; # ns1
192.168.5.22; # ns2 - ou você pode usar localhost para ns2
192.168.5.0/24; # redes confiáveis
};Dentro da linha “ options {…}; “, você pode alterar a configuração como abaixo. Esta configuração ainda é a mesma que no servidor DNS BIND Master, e a única diferença aqui é a opção “ listen-on “ que é especificada para o endereço IP do “ ns2 “.
options {
directory "/var/cache/bind";
//listen-on-v6 { any; }; # desativar bind em IPv6
recursion yes; # habilita consultas recursivas
allow-recursion { trusted; }; # permite consultas recursivas de "trusted" - referenciado à ACL
listen-on { 192.168.5.22; }; # endereço IP ns2
allow-transfer { none; }; # desativar transferências de zona por padrão
forwarders {
8.8.8.8;
1.1.1.1;
};
};Salve e feche o arquivo quando terminar.
Em seguida, edite o arquivo de configuração “ /etc/bind/named.conf.local “ usando o seguinte comando para configurar o servidor “ ns2 “ como o Servidor DNS Secundário/Escravo.
sudo nano /etc/bind/named.conf.localAdicione a seguinte configuração ao arquivo. Como você pode ver, estamos definindo as zonas direta e reversa, mas com o “ type slave “ e definindo o servidor Master DNS “ 192.168.5.21 “. Você não precisa criar o arquivo de zona porque os registros e dados DNS serão transferidos automaticamente do servidor Master DNS e serão armazenados temporariamente por um período de tempo no servidor DNS secundário/escravo.
zone "howtoforge.local" {
type slave;
file "/etc/bind/zones/db.howtoforge.local";
masters { 192.168.5.21; }; # endereço IP ns1 - DNS master
};
zone "5.168.192.in-addr.arpa" {
type slave;
file "/etc/bind/zones/db.192.168.5";
masters { 192.168.5.21; }; # endereço IP ns1 - DNS master
};Salve e feche o arquivo quando terminar.
Agora execute o seguinte comando para verificar e confirmar a configuração do BIND e ter certeza de que todas as configurações estão corretas. Em seguida, você pode reiniciar o serviço BIND “named” no servidor “ ns2 “ para aplicar novas alterações. E você agora terminou a configuração no servidor “ ns2 “ como um secundário/escravo do Servidor DNS BIND.
sudo named-checkconf
sudo systemctl restart named
Por último, execute o seguinte comando para verificar e confirmar o serviço BIND “ named “ no servidor “ ns2 “. E tenha certeza de que o serviço “ named “ está em execução.
sudo systemctl status named
Verificando o Servidor DNS a partir da Máquina Cliente
Na máquina cliente, existem várias maneiras de configurar o resolvedor DNS. Você pode configurar o resolvedor DNS a partir do NetworkManager ou da configuração do netplan. Mas, a maneira mais fácil é configurar o resolvedor DNS manualmente através do arquivo “/etc/resolv.conf”. Isso permite que você configure um resolvedor DNS estático para máquinas clientes.
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 Google. Quando a máquina cliente solicitar informações sobre o nome de domínio, as informações serão obtidas do resolvedor DNS, de cima para baixo.
nameserver 192.168.5.21
nameserver 192.168.5.22
nameserver 8.8.8.8
search howtoforge.localSalve e feche o arquivo quando terminar.
Em seguida, execute o comando abaixo para instalar algumas utilidades DNS em sua máquina cliente. Neste exemplo, a máquina cliente é um sistema Ubuntu, então estamos instalando a utilidade DNS usando o comando apt como abaixo.
sudo apt install dnsutils bind9-utilsApós instalar a utilidade DNS em seu sistema, você pode começar a verificar todos os registros 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.100 “, enquanto o subdomínio “ mail.howtoforge.local “ é tratado pelo endereço IP do servidor “ 192.168.5.120 “.
dig howtoforge.local +short
dig howtoforge.local
dig mail.howtoforge.local +short
dig mail.howtoforge.local
Em seguida, execute o comando dig como 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 manipulador de e-mail para o domínio principal “ howtoforge.local “.
dig howtoforge.local MX +short
dig howtoforge.local MX
Agora você também 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 confirmar o DNS reverso para alguns endereços IP.
Agora você deve ver que o endereço IP “ 192.168.5.21 “ é revertido para o servidor de nomes “ ns1.howtoforge.local “, o endereço IP “ 192.168.5.22 “ é revertido para o servidor de nomes “ ns2.howtoforge.local “, e o endereço IP “ 192.168.5.100 “ é revertido para o nome de domínio principal “ howtoforge.local “, e por último o endereço IP “ 192.168.5.120 “ é revertido para o subdomínio “ mail.howtoforge.local “.
slookup 192.168.5.21
slookup 192.168.5.22
slookup 192.168.5.100
slookup 192.168.5.120
Conclusão
Parabéns! Ao longo deste tutorial, você aprendeu a instalação e configuração do Servidor DNS BIND nos servidores Ubuntu 22.04. Você configurou com sucesso o Servidor DNS BIND Master-Slave usando dois servidores Ubuntu diferentes. Além disso, você aprendeu os comandos básicos do Dig e Nslookup para verificar e confirmar registros e configurações DNS.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.