Visão Geral do Cenário
A implementação de uma arquitetura DNS Master-Slave (Mestre-Escravo) é fundamental para garantir a alta disponibilidade e redundância na resolução de nomes dentro de uma rede. Neste guia, configuraremos um servidor principal (Master) e um secundário (Slave) para gerenciar zonas de resolução direta e reversa.
Ambiente de Implementação
- Servidor Master: 192.168.1.10 (hosntame: srv-dns-master.exemplo.com)
- Servidor Slave: 192.168.1.20 (hostname: srv-dns-slave.exemplo.com)
- Servidor Web: 192.168.1.100 (hostname: www.exemplo.com)
- Domínio: exemplo.com
1. Instalação e Configuração Inicial no Servidor Master
O primeiro passo é instalar o pacote BIND (Berkeley Internet Name Domain), que é o padrão de fato para serviços DNS no ecossistema Linux.
# Instalação dos pacotes necessários
yum install -y bind bind-utils
Edite o arquivo de configuração principal /etc/named.conf para permitir conexões externas e definir quem pode realizar consultas:
options {
listen-on port 53 { any; }; // Escuta em todas as interfaces
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";
allow-query { any; }; // Permite consultas de qualquer origem
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
};
// Definição da Zona Direta
zone "exemplo.com" IN {
type master;
file "exemplo.com.fwd"; // Nome do arquivo de zona direta
allow-transfer { 192.168.1.20; }; // Permite transferência para o servidor Slave
};
// Definição da Zona Reversa
zone "1.168.192.in-addr.arpa" IN {
type master;
file "exemplo.com.rev"; // Nome do arquivo de zona reversa
allow-transfer { 192.168.1.20; };
};
2. Criação dos Arquivos de Zona no Master
Os arquivos de zona contêm os registros de recursos (RR). Eles devem ser criados no diretório /var/named/.
2.1 Zona Direta (/var/named/exemplo.com.fwd)
$TTL 86400
@ IN SOA srv-dns-master.exemplo.com. admin.exemplo.com. (
2023102701 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ; Minimum TTL
)
IN NS srv-dns-master.exemplo.com.
IN NS srv-dns-slave.exemplo.com.
IN MX 10 mail.exemplo.com.
srv-dns-master IN A 192.168.1.10
srv-dns-slave IN A 192.168.1.20
www IN A 192.168.1.100
mail IN A 192.168.1.10
web IN CNAME www
2.2 Zona Reversa (/var/named/exemplo.com.rev)
$TTL 86400
@ IN SOA srv-dns-master.exemplo.com. admin.exemplo.com. (
2023102701 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ; Minimum TTL
)
IN NS srv-dns-master.exemplo.com.
IN NS srv-dns-slave.exemplo.com.
10 IN PTR srv-dns-master.exemplo.com.
20 IN PTR srv-dns-slave.exemplo.com.
100 IN PTR www.exemplo.com.
3. Ajuste de Permissões e Validação
Para que o serviço named funcione corretamente, o propreitário do grupo dos arquivos deve ser named e as permissões devem ser restritivas.
chown root:named /var/named/exemplo.com.fwd /var/named/exemplo.com.rev
chmod 640 /var/named/exemplo.com.fwd /var/named/exemplo.com.rev
# Verificação de sintaxe
named-checkconf /etc/named.conf
named-checkzone exemplo.com /var/named/exemplo.com.fwd
named-checkzone 1.168.192.in-addr.arpa /var/named/exemplo.com.rev
# Iniciar o serviço
systemctl enable named
systemctl start named
4. Configuração do Servidor DNS Slave
No servidor Slave (192.168.1.20), instale o BIND e configure o arquivo /etc/named.conf para atuar como escravo, recebendo os dados do mestre automaticamente.
zone "exemplo.com" IN {
type slave;
masters { 192.168.1.10; }; // IP do Servidor Master
file "slaves/exemplo.com.fwd"; // Arquivo será criado automaticamente
};
zone "1.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.1.10; };
file "slaves/exemplo.com.rev";
};
Após salvar, inicie o serviço no Slave. O BIND irá solicitar a transferência de zona (AXFR) e criará os arquivos no diretório /var/named/slaves/.
systemctl start named
ls /var/named/slaves/ # Verifique se os arquivos foram sincronizados
5. Testes de Resolução
Utilize a ferramenta dig para validar se ambos os servidores estão respondendo corretamente às consultas.
# Teste de resolução direta no Master
dig @192.168.1.10 www.exemplo.com
# Teste de resolução reversa no Slave
dig @192.168.1.20 -x 192.168.1.100
# Verificação de transferência de zona completa
dig -t axfr exemplo.com @192.168.1.10
Certifique-se de que o firewall (iptables ou fierwalld) permita o tráfego na porta 53 (UDP e TCP) para que a sincronização e as consultas funcionem sem interrupções.