quarta-feira, 12 de junho de 2013

Brincando com o Dns Server – parte 1

Escrevi alguns artigos sobre o Bind9 no site da Linux Magazine e vou reproduzí-los aqui. Quem quiser ver os "originais, os links estão aí em baixo:


Já vimos como funciona o dns e o processo de resolução de nomes. Agora, vamos instalar e configurar um dns server. Mesmo que você não tenha um domínio registrado, levantar um servidor dns na rede pode agilizar bastante o processo de resolução de nomes.

Basicamente, o dns tem três modos de operação: Standalone (ou cache), Master, e Slave, sendo que um servidor pode assumir uma ou mais funções ao mesmo tempo. Como Standalone, o dns vai cuidar apenas de resolver nomes dns de outros sites. Ele não é responsável por nenhum domínio. Essa é a forma mais simples de operação. O Master já exige que ele seja responsável por um domínio, que pode ser apenas interno (por exemplo, minhaempresa.inet) ou válido na Internet (como linuxmagazine.com.br). Já o Slave funciona como um backup de um master, recebendo as atualizações diretamente deste. Para registrar um domínio temos que ter, obrigatoriamente, pelos menos dois dns, um master e um slave.

Vamos começar do mais simples, que é o Standalone. Esse dns será o responsável pela resolução de nomes da rede. Assim, todos os equipamentos passarão a usá-lo como dns principal. Assim você economiza link, uma vêz que ninguém mais vai sair para a Internet para traduzir nomes em endereços. Essa função será do Dns Server.

# apt-get install bind9

Pronto! Difícil, não? Agora basta apontar as máquina para o endereço do dns. Para ter certeza de que ele está funcionando, verifique se a porta 53 udp está aberta.

$ netstat -na | grep :53
tcp 0 0 172.20.120.4:53 0.0.0.0:* OUÇA
tcp 0 0 127.0.0.1:53 0.0.0.0:* OUÇA
tcp6 0 0 :::53 :::* OUÇA
udp 0 0 172.20.120.4:53 0.0.0.0:*
udp 0 0 127.0.0.1:53 0.0.0.0:*

Tudo certo. O Servidor Dns está funcionando normalmente.

Uma breve explicação. Para resolver um nome, o Dns contém a relação dos Dns Server Raiz. Essa relação está em /etc/bind/db.root.
 
/etc/bind/db.root
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:BA3E::2:30
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 199.7.91.13
D.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2D::D
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
F.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2F::F
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
H.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:1::803F:235
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
I.ROOT-SERVERS.NET. 3600000 AAAA 2001:7FE::53
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
J.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:C27::2:30
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
K.ROOT-SERVERS.NET. 3600000 AAAA 2001:7FD::1
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 199.7.83.42
L.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:3::42
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
M.ROOT-SERVERS.NET. 3600000 AAAA 2001:DC3::35

Essa é a relação dos servidores root (raiz) que o Dns vai usar para resolver os nomes. Se quiser adicionar outro servidor fique à vontade. Porém isso geralmente não é necessário. Após resolver um nome, o Dns Server vai adicioná-lo em seu cache.

No proximo post, vamos começar a configurar um domínio no Dns Server.