DNS primário e secundário no mesmo servidor

Como comentei anteriormente, é possível fazer com que um único servidor dedicado (que disponha de dois ou mais endereços IP) atue simultaneamente como servidor DNS primário e secundário, evitando que você precise de um
segundo servidor separado. Para isso, precisamos apenas criar um alias para a placa de rede. Se o segundo IP é o “64.234.23.13” e a placa de rede é a “eth0”, o comando seria:

# ifconfig eth0:1 64.234.23.13

A partir daí, seu servidor passa a responder pelos dois endereços IP, e você pode usá-lo simultaneamente como DNS primário e secundário.

Naturalmente, ao fazer isso, você perde a redundância (que é o grande motivo de usar dois servidores DNS em primeiro lugar) mas isso nem sempre é um grande problema, já que se o servidor DNS está hospedado no mesmo servidor
que seu site, não faz muita diferença ter dois servidores DNS, pois se o servidor principal cair, o site ficará fora do ar de qualquer forma.

Sites maiores possuem sistemas de redundância e, muitas vezes, servidores DNS separados, o que cria uma malha de segurança. É por isso que é muito raro a página de um portal ficar fora do ar, por exemplo.

Continuando, o comando do ifconfig não é permanente, de forma que você deve adicioná-lo a um dos arquivos de inicialização do sistema (como o “/etc/rc.local”) para que a configuração torne-se permanente. Nas distribuições
derivadas do Debian você pode adicionar o alias diretamente ao arquivo “/etc/network/interfaces”, logo depois da configuração da interface principal, como em:

auto eth0:1
iface eth0:0 inet static
address 64.234.23.13
netmask 255.255.255.248

É necessário também especificar o segundo endereço na configuração da zona no Bind, adicionando uma linha “NS” adicional. Como no caso o mesmo servidor responde pelos dois endereços IP, você pode simplesmente inventar um
nome fictício para o segundo endereço ao incluí-lo na configuração, como nesse exemplo, onde uso o nome “secundario”:

@ IN SOA servidor.gdhn.com.br. hostmaster.gdhn.com.br. (
2008061645 3H 15M 1W 1D )
NS servidor.gdhn.com.br.
NS secundario.gdhn.com.br.
IN MX 10 servidor.gdhn.com.br.
gdhn.com.br. A 64.234.23.12
secundario A 64.234.23.13

O “A” é abreviação de “Address mapping” e é usado em entradas onde um domínio ou um subdomínio é relacionado a um endereço. Você pode também usar a diretiva “IN CNAME” para criar aliases, ou seja, subdomínios que atuam como
apelidos para outros. Veja um exemplo:

gdhn.com.br. A 64.234.23.12
www A 64.234.23.12
ftp A 64.234.23.12
smtp A 64.234.23.12
ns2 A 64.234.23.13
joao A 200.123.23.2
maria IN CNAME joao

Nesse caso, o subdomínio “maria” é simplesmente um alias para o “joao”, que aponta para um IP externo. Você pode criar quantos subdomínios de aliases precisar.

Para especificar endereços IPV6, você usa a diretiva “AAAA” no lugar de “A”, como em:

isac AAAA 2001:bce4:5641:3412:341:45ae:fe32:65

Concluindo, o nome do DNS secundário especificado na configuração (o “secundario” no meu exemplo) deve ser incluído no arquivo “/etc/hosts“, de forma que o endereço IP fornecido no alias da placa de rede
seja relacionado ao segundo nome, como em:

# /etc/hosts
127.0.0.1 localhost.localdomain localhost
64.234.23.12 servidor.gdhn.com.br servidor
64.234.23.13 secundario.gdhn.com.br secundario

Ao terminar, você pode testar a configuração do seu servidor DNS usando o comando dig. No Debian ele é instalado juntamente com o pacote “dnsutils”. Faça uma busca pelo domínio, especificando o endereço IP
do DNS que acabou de configurar, como em:

$ dig gdhn.com.br @64.234.23.12

Isso faz com que ele pergunte diretamente ao seu servidor, o que permite testar a configuração imediatamente, sem precisar esperar pela propagação do registro do domínio. Se tudo estiver correto, você verá algo como:

;; ANSWER SECTION:
gdhn.com.br. 86400 IN A 64.234.23.12

;; AUTHORITY SECTION:

gdhn.com.br. 86400 IN NS servidor.gdhn.com.br.
gdhn.com.br. 86400 IN NS secundario.gdhn.com.br.

Faça o mesmo com o IP do DNS secundário, como em:

$ dig gdhn.com.br @64.234.23.13

Ambos devem devolver a mesma resposta.

Para adicionar mais domínios, edite o arquivo “/etc/named.conf” (ou o “/etc/named.conf.local”), adicionando seções separadas (e especificando arquivos de configuração separados) para cada um dos domínios, como em:

zone “joao.com.br” IN {
type master;
file “/etc/bind/db.joao”;
allow-transfer { 64.234.23.13; };
};

zone “maria.com.br” IN {
type master;
file “/etc/bind/db.maria”;
allow-transfer { 64.234.23.13; };
};

Depois que você configurou o primeiro domínio, fica fácil adicionar domínios adicionais, pois você pode simplesmente gerar cópias do arquivo original, alterando apenas as opções que forem diferentes, tais como o nome do
domínio e os subdomínios desejados. Aqui temos mais um exemplo de configuração:

@ IN SOA servidor.joao.com.br. contato.joao.com.br. (
2008051567 3H 15M 1W 1D )
NS servidor.joao.com.br.
NS ns2.joao.com.br.
IN MX 10 servidor.joao.com.br.
joao.com.br. A 64.234.23.12
www A 64.234.22.12
forum A 64.234.22.12
smtp A 64.234.22.12
ns2 A 64.234.23.13
downloads A 72.213.45.23

Veja que o subdomínio “downloads” aponta para um servidor diferente que, naturalmente, deve ter um servidor web configurado para responder pelo domínio.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X