Antes de mais nada, o que é DNS?

DNS, do inglês Domain Name System (Sistema de Nomes de Domínios), funciona como um sistema de tradução de endereços IP para nomes de domínios. Na verdade, é graças ao DNS que você pode digitar www.wieczorek.com.br na barra de endereços do seu navegador para acessar o meu site pessoal, e não um monte de números e pontos.

Agora que já sabemos o que é o DNS, vamos botar a mão na massa.

1- Instalando o servidor DNS

Para aqueles que já estão familiarizados com o Linux, a instalação é um mamão com açúcar. Para aqueles que ainda não conhecem o Linux, verão que realmente a instalação é um mamão com açúcar, principalmente nas distribuições que utilizam o apt – Advanced Packaging Tool -, como o Debiam, Ubuntu e por ai vai.

A primeira coisa que devemos fazer é nos tornar o usuário root da máquina. No caso do Debian o comando é o seguinte:

$ su

Após isso, vamos a instalação do bind

# apt-get install bind

Bind? Mas Emilio, você não tinha dito DNS? Bem, o bind é o servidor DNS padrão da distribuição Debian. Poderia ser instalado também o named, que pode ser a melhor opção para outras distribuições.

Vale a pena resslatar: servidor DNS e o cliente DNS são diferentes.

Todo computador Linux habilitado para comunicar-se entre rede possui um software chamado de cliente DNS, também conhecido como resolver. O resolver simplesmente consulta um servidor DNS atribuído no arquivo /etc/resolv.conf. A consulta segue a ordem do arquivo. Servidores DNS retornam os valores consultados após consultarem o arquivo /etc/bind/named.conf e as referências para as quais ele aponta. Os clientes perguntam e os servidores respondem, muitas vezes após consultarem outros servidores.

A confusão muitas vezes surge quando temos o cliente e o servidor em uma mesma máquina, principalmente quando o cliente consulta o servidor da mesma máquina. Por isso, sempre devemos lembrar de que o cliente ou resolver utiliza o /etc/resolv.conf. Todos os outros como o /etc/bind/named.conf e os arquivos apontados por ele pertencem ao servidor.

2- Configurando o servidor DNS

O servidor DNS é um sistema complexo, configurado por uma série de arquivos. Esses arquivos são formados por um arquivo de boot e vários arquivos de dados de zona, onde cada arquivo de zona é apontado por um registro de zona no arquivo de boot. No Debian, com o bind instalado, o arquivo de boot DNS é o /etc/bind/named.conf.

Então, mãos à obra. Abra o arquivo e inclua o apontamento da zona que corresponde ao seu domínio, informando em qual arquivo ele deve procurar a configuração de zona quando o seu domínio for digitado.

zone "dominio.casa" { # domínio da rede que deseja incluir no DNS
   type master;
   file "/etc/bind/dominio.casa.zone";   # arquivo que conterá as informações para tradução do nome
};

Inclua o apontamento para o IP reverso. Neste caso, qualquer endereço ip na sub-rede especificada será tratada pelo arquivo apontado por ele.

zone "1.168.192.in-addr.arpa" { # endereço da sub-rede
        type master;
        file "/etc/bind/named.198.168.1";    # arquivo de configuração que tratará o IP
};

Os arquivos de zona, no nosso caso estarão na diretório /etc/bind/. Os arquivos de zona são apontados pela declaração zone do arquivo de boot. A primeira coisa a entender sobre os arquivos de zona é que sua sintaxe é totalmente diferente do arquivo de boot named.conf. Há 10 registros possíveis:

  1. SOA – inicialização de autoridade
  2. NS – nome do servidor
  3. A – registro de endereço
  4. PTR – registro de ponteiro
  5. MX – intercâmbio de carreio
  6. CNAME – nome canônico
  7. RP e TXT – as entradas de documento
  8. HINFO – informações sobre os host
  9. NULL – registro de recurso nulo sem formato de dados

Supondo que o endereço de sua sub-rede seja 192.168.1 e que o servidor é 192.168.1.1, o computador 1 é 192.168.1.2 e o computador 3 192.168.1.3, crie o primeiro arquivo, que será o /etc/bind/dominio.casa.zone e adicione o seguinte código:

$TTL    604800
@        IN SOA dominio.casa. root.dominio.casa. (  # indica para qual domínio o SOA é obrigatório
                200007201   ; serial (d. adams)   # Serial que mostra aso DNS secundários como realizar transferência de zona
                28800           ; refresh  # indica o tempo em segundos de intervalo para o servidor DNS secundário consultar o primário para saber se houve alteração
                14400           ; retry  # tempo em segundo para conexão com o servidor primário caso a tentativa no tempo de refresh falhe
                3600000       ; expiry # tempo de descarte das informações no cache
                84400 )         ; minimum  # indica quanto tempo os dados devem ser guardados no cache antes que expire a validade
;
 
www              IN A    192.168.1.1
www2            IN A    192.168.1.1
www3            IN A    192.168.1.1
serv               IN A    192.168.1.1
comp1           IN A    192.168.1.2
comp2           IN A    192.168.1.3
 
@               IN MX 10 dominio.casa.c
@               IN NS    dominio.casa.
@               IN A    192.168.1.1

No exemplo acima, o endereço www.dominio.casa, www2.dominio.casa, www3.dominio.casa e serv.dominio.casa se referem ao mesmo IP ao 192.168.1.1. O host comp1.dominio.casa se refere ao IP 192.168.1.2 e comp2.dominio.casa te levará ao micro com IP 192.168.1.3.

Para criar o IP reverso, crie o arquivo /etc/bind/named.198.168.1 com as seguintes linhas:

$TTL    604800
@       IN      SOA     dominio.casa. root.dominio.casa.  (
                        2000072001 ; Serial
                        28800      ; Refresh
                        14400      ; Retry
                        3600000  ; Expire
                        86400 )    ; Minimum
 
@       IN      NS      dominio.casa.
10      IN      PTR     dominio.casa.

Pronto. Agora seu servidor de DNS está configurado e funcionando.

Terminologia

Cliente DNS: Componentes de software em todos os computadores da rede que transformam o endereço IP em nome e nome em endereço IP. Em máquinas Debian, o cliente busca informações no arquivo /etc/resolv.conf.

Resolvedor: Para propósitos práticos, um sinônimo para Cliente DNS.

Servidor DNS: Componente de software que retorna a tradução de endereço IP em nome e de nome em endereço IP ao cliente DNS que solicitou. Em máquinas Debian, o servidor DNS busca suas configurações no arquivo /etc/bind/named.conf.

Resolver: Converte endereço IP em um nome e um nome em endereço IP. Isso é feito pelo DNS e às vezes por outro software.

Zona: Um subdomínio ou sub-rede sobre os quais um servidor DNS possui autoridade.

Mestre: Um servidor DNS com autoridade sobre uma zona cujos dados são derivados dos arquivos de dados local. Assim um servidor de nomes pode ser mestre para algumas zonas e escravo para outras.

Primário: Sinônimo para mestre

Escravo: Um servidor de nomes cuja autoridade sobre uma zona depende de dados derivados de outro servidor de nomes em uma zona de transferência. O outro servidor de nomes tanto pode ser um mestre como um outro escravo. Observe que um servidor de nomes pode ser mestre para algumas zonas e escravo para outras.

Secundário: Sinônimo para escravo.

Zona de Transferência: Uma transferência feita entre um servidor DNS mestre ou escravo e um servidor DNS escravo. O escravo inicia a zona de transferência após um tempo de refresh ou após ser notificado de que os dados no servidor remetente foram alterados.


Emilio Mario Wieczorek

I talk about everything, I discuss everything, but I only support 🇧🇼Grêmio. 💻IT Manager, 🎮Gamer and 👽Jedi (or Sith, depending on the day).

0 comentário

Deixe um comentário

Avatar placeholder

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *