⬅ Voltar ao Dashboard 3º Bimestre — Serviços de Rede

🗺️ Servidor DNS com BIND9

Aula 5 — Configure o BIND9 no Ubuntu para resolver nomes de domínio: crie zonas, defina registros A e CNAME e teste com nslookup

📖 O que é DNS?

O DNS (Domain Name System) é o sistema que traduz nomes de domínio em endereços IP. Sem DNS, para acessar qualquer site você precisaria memorizar o endereço IP diretamente.

💡 Analogia da agenda telefônica: a agenda é o DNS, o nome do contato é o domínio e o número é o endereço IP. Você lembra do nome (www.google.com), não do número (142.250.185.46)!

Como funciona uma consulta DNS

1

Você digita www.google.com no navegador

2

Sistema consulta o servidor DNS configurado

3

DNS busca o registro e retorna 142.250.185.46

4

Navegador conecta ao endereço IP encontrado

5

Página carrega normalmente!

Por que usar DNS?

🖥️ O que é BIND9?

O BIND (Berkeley Internet Name Domain) é o servidor DNS mais usado do mundo. Mantido pelo ISC (Internet Systems Consortium), é o padrão em servidores Unix e Linux.

Características

Arquivos principais

ArquivoFunção
/etc/bind/named.confConfiguração principal (inclui outros arquivos)
/etc/bind/named.conf.optionsOpções gerais (portas, recursividade, ACLs)
/etc/bind/named.conf.my-zonesDeclaração das nossas zonas personalizadas
/var/cache/bind/*.zoneArquivos com os registros DNS de cada zona

🎯 Objetivo desta aula: criar o domínio informatica.joaocamara com registros www (A → 192.168.0.1), outrohost (A → 192.168.0.2) e curso (CNAME → www).

📋 Tipos de Registros DNS

O DNS usa diferentes tipos de registros para mapear nomes a recursos de rede. Conhecer os principais é fundamental para configurar e diagnosticar qualquer zona.

A Address Nome → IPv4
AAAA IPv6 Nome → IPv6
CNAME Alias Apelido para nome
MX Mail Servidor de e-mail
NS Name Server Servidores DNS
TXT Texto SPF, verificações

Exemplos práticos

exemplos de registros
; Registro A — nome aponta para IPv4 www IN A 192.168.0.1 ; Registro CNAME — apelido para outro nome curso IN CNAME www ; Registro MX — servidor de e-mail @ IN MX 10 mail.dominio.com ; Registro AAAA — nome aponta para IPv6 www IN AAAA 2001:db8::1

📦 1 Instalar o BIND9

A instalação é feita com o apt. O BIND9 inicia automaticamente após a instalação, mas precisamos configurar nossas zonas personalizadas antes de usar.

instalando bind9
# Atualizar repositórios $ sudo apt-get update # Instalar o BIND9 $ sudo apt-get install bind9 # Verificar status $ systemctl status bind9 ● named.service - BIND Domain Name Server Active: active (running) since ...

O que é instalado

✏️ 2 Configurar o named.conf

Edite o arquivo principal para comentar as zonas padrão e apontar para o nosso próprio arquivo de zonas personalizadas.

editar named.conf
$ sudo vim /etc/bind/named.conf

Antes e depois

/etc/bind/named.conf
include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; //include "/etc/bind/named.conf.default-zones"; ← comentar esta linha include "/etc/bind/named.conf.my-zones"; ← adicionar esta

💡 Comentar a linha default-zones com // e adicionar my-zones faz o BIND carregar apenas nossas zonas personalizadas, sem as zonas padrão desnecessárias.

⚙️ 3 Configurar as Opções

Edite o named.conf.options para definir quais redes podem consultar nosso servidor DNS e em quais interfaces ele deve escutar.

/etc/bind/named.conf.options
$ sudo vim /etc/bind/named.conf.options
conteúdo do named.conf.options
options { directory "/var/cache/bind"; // Quem pode consultar nosso DNS listen-on port 53 { localhost; 192.168.0.0/24; }; allow-query { localhost; 192.168.0.0/24; }; recursion no; dnssec-validation auto; listen-on-v6 { any; }; };

Diretivas explicadas

DiretivaFunção
listen-on port 53Interfaces e porta em que o servidor escuta
allow-queryRedes autorizadas a fazer consultas DNS
recursion noNão faz consultas recursivas — mais seguro
192.168.0.0/24Toda a rede local classe C

📄 4 Declarar a Zona

Crie o arquivo named.conf.my-zones para declarar o domínio que será gerenciado por este servidor. Esse arquivo diz ao BIND qual zona existe e onde encontrar os registros.

criar named.conf.my-zones
$ sudo vim /etc/bind/named.conf.my-zones
conteúdo do named.conf.my-zones
zone "informatica.joaocamara" IN { type master; file "informatica.joaocamara.zone"; };
DiretivaSignificado
zone "nome"Nome do domínio a ser gerenciado
type masterServidor DNS principal da zona
file "..."Arquivo com os registros (em /var/cache/bind/)

📝 5 Criar os Registros DNS

Crie o arquivo .zone com os registros do domínio. Ele deve ficar em /var/cache/bind/, caminho definido na diretiva directory das opções.

criar arquivo zone
$ sudo vim /var/cache/bind/informatica.joaocamara.zone

Conteúdo do arquivo .zone

informatica.joaocamara.zone
$TTL 86400 @ IN SOA informatica.joaocamara. root.informatica.joaocamara. ( 2024010101 ; serial (YYYYMMDDNN) 3600 ; refresh (1 hora) 900 ; retry (15 min) 604800 ; expire (7 dias) 86400 ; negative TTL (24h) ) ; Servidor de nomes autoritativo @ IN NS www ; Registros A — nome → IPv4 www IN A 192.168.0.1 outrohost IN A 192.168.0.2 ; Registro CNAME — apelido curso IN CNAME www

📖 Entendendo o Arquivo Zone

Cada linha do arquivo .zone tem um significado preciso. Compreender a estrutura é essencial para adicionar registros corretamente.

$TTL e SOA

CampoValorSignificado
$TTL 8640086400 s24 horas — tempo que clientes guardam em cache
serial2024010101Versão do arquivo (formato YYYYMMDDNN)
refresh3600 sServidores slave verificam atualizações a cada 1h
retry900 sTentar novamente após falha a cada 15 min
expire604800 sTempo máximo sem sincronizar com o master

Nossos registros

NomeTipoValorResultado
wwwA192.168.0.1www → 192.168.0.1
outrohostA192.168.0.2outrohost → 192.168.0.2
cursoCNAMEwwwcurso → www → 192.168.0.1

⚠️ Incremente sempre o serial! Ao modificar o arquivo .zone, aumente o número serial (ex.: 20240101012024010102). Servidores slave usam o serial para saber se precisam sincronizar.

6 Validar e Reiniciar

Antes de reiniciar o BIND9, sempre valide a configuração e o arquivo zone. Um erro de sintaxe pode impedir o serviço de iniciar.

validar e reiniciar
# Validar configuração geral (sem saída = OK!) $ named-checkconf # Validar arquivo de zona $ named-checkzone informatica.joaocamara \ /var/cache/bind/informatica.joaocamara.zone zone informatica.joaocamara/IN: loaded serial 2024010101 OK # Reiniciar o serviço BIND9 $ sudo systemctl restart bind9 # Verificar status $ sudo systemctl status bind9 ● named.service - BIND Domain Name Server Active: active (running) since ...

🛡️ Fluxo seguro: named-checkconf (sem erros) → named-checkzone (OK) → systemctl restart bind9. Se qualquer validação falhar, corrija antes de reiniciar.

🔍 Testando o DNS

Configure os clientes para usar o servidor DNS recém-criado e teste a resolução de nomes com nslookup.

Configurar no Linux

apontar para nosso DNS
# Editar o arquivo de resolução de nomes $ sudo vim /etc/resolv.conf # Adicionar o IP do servidor DNS: nameserver 192.168.0.1

Testar com nslookup

consultas de teste
# Testar registro A $ nslookup www.informatica.joaocamara Server: 192.168.0.1 Name: www.informatica.joaocamara Address: 192.168.0.1 # Testar CNAME $ nslookup curso.informatica.joaocamara Server: 192.168.0.1 curso.informatica.joaocamara canonical name = www.informatica.joaocamara Name: www.informatica.joaocamara Address: 192.168.0.1 # Forçar consulta em servidor específico (Windows/Linux) $ nslookup www.informatica.joaocamara 192.168.0.1

🌍 No navegador: com o DNS configurado, acesse http://www.informatica.joaocamara diretamente pelo nome — sem precisar digitar o IP.

🎯 Exercício — Arraste e Conecte

Relacione cada elemento do DNS/BIND9 à sua descrição correta.

Descrição
Tipo de registro que associa um nome a um endereço IPv4
Tipo de registro que cria um apelido para outro nome
Comando para validar a configuração geral do BIND9
Porta padrão do protocolo DNS
Significado da sigla BIND
Elemento
A
CNAME
named-checkconf
53
Berkeley Internet Name Domain

🛠️ Atividade Prática — Configurando o Servidor DNS

⏱ ~45 min 💻 Ubuntu Server / VM 📸 Tirar screenshot da saída
1
Instalar e configurar named.conf
Instale o BIND9 com sudo apt-get install bind9. Edite /etc/bind/named.conf: comente a linha default-zones e adicione a linha include apontando para named.conf.my-zones. Tire screenshot do arquivo editado.
2
Configurar opções e declarar a zona
Edite named.conf.options com listen-on e allow-query para a sua rede local. Crie o arquivo named.conf.my-zones declarando sua zona com type master e o caminho do arquivo .zone.
3
Criar arquivo zone e validar
Crie o arquivo /var/cache/bind/seu-dominio.zone com o SOA, registro NS, pelo menos dois registros A e um CNAME. Valide com named-checkconf e named-checkzone. Reinicie com systemctl restart bind9.
4
Testar a resolução de nomes
Configure /etc/resolv.conf com o IP do seu servidor DNS. Teste com nslookup www.seu-dominio e verifique que o CNAME também resolve corretamente. Tire screenshot das consultas bem-sucedidas.
📌 Para refletir: o DNS é um dos serviços mais críticos de qualquer rede. Sem ele, navegar na internet seria impraticável. Entender a estrutura de um arquivo .zone, os tipos de registros e o processo de validação com named-checkconf e named-checkzone é fundamental para administrar infraestruturas de rede profissionalmente.

❓ Verifique seu Conhecimento

O que significa a sigla DNS?

ADomain Name System
BDynamic Network Service
CDomain Node Server
DDirect Name Service
✓ DNS = Domain Name System — traduz nomes como www.google.com em endereços IP como 142.250.185.46.

Qual tipo de registro DNS mapeia um nome de domínio para um endereço IP?

AMX
BA
CCNAME
DNS
✓ O registro A (Address) mapeia nome → IPv4. O registro AAAA mapeia nome → IPv6.

Qual comando verifica a resolução DNS a partir do servidor configurado?

Adig --resolve
Bdns-query
Cnslookup dominio.com
Dresolvectl --check
nslookup e dig consultam servidores DNS. Use nslookup dominio.com IP_do_servidor para testar seu BIND9.

Qual arquivo define as zonas de um servidor BIND9?

A/etc/bind/zones.conf
B/var/bind/named.conf
C/etc/resolv.conf
D/etc/bind/named.conf.local
✓ As zonas são declaradas em /etc/bind/named.conf.local. Os dados de cada zona ficam em arquivos separados em /etc/bind/zones/.