Imagine como seria se tivéssemos que lembrar dos endereços IP de todos os sites que usamos diariamente. Mesmo que tivéssemos uma memória prodigiosa, o processo de acessar um site seria ridiculamente lento e demorado.
E se precisássemos visitar vários sites ou usar várias aplicações que estão no mesmo servidor ou host virtual? Isso seria uma das piores dores de cabeça que consigo imaginar – sem mencionar a possibilidade de o endereço IP associado a um site ou aplicação ser alterado sem aviso prévio.
A simples ideia disso seria motivo suficiente para desistir de usar a Internet ou redes internas após um tempo.
É exatamente isso que seria um mundo sem o Sistema de Nomes de Domínio (também conhecido como DNS). Felizmente, esse serviço resolve todos os problemas mencionados acima – mesmo se a relação entre um endereço IP e um nome mudar.
Por esse motivo, neste artigo, aprenderemos como configurar e usar um servidor DNS simples, um serviço que permitirá traduzir nomes de domínio em endereços IP e vice-versa.
Introduzindo a Resolução de Nomes DNS
Para redes pequenas que não estão sujeitas a mudanças frequentes, o arquivo /etc/hosts pode ser usado como um método rudimentar de resolução de nomes de domínio para endereços IP.
Com uma sintaxe muito simples, esse arquivo nos permite associar um nome (e/ou um alias) a um endereço IP da seguinte forma:
[IP address] [name] [alias(es)]
Por exemplo,
192.168.0.1 gateway gateway.mydomain.com 192.168.0.2 web web.mydomain.com
Dessa forma, você pode acessar a máquina web tanto pelo nome, pelo alias web.mydomain.com, ou pelo seu endereço IP.
Para redes maiores ou aquelas que estão sujeitas a mudanças frequentes, usar o arquivo /etc/hosts para resolver nomes de domínio em endereços IP não seria uma solução aceitável. É aí que entra a necessidade de um serviço dedicado.
Por baixo dos panos, um servidor DNS consulta um grande banco de dados na forma de uma árvore, que começa na zona raiz (“.”)
.
A imagem a seguir nos ajudará a ilustrar:

Na imagem acima, a zona raiz (.)
contém os domínios com, edu e net. Cada um desses domínios é (ou pode ser) gerenciado por diferentes organizações para evitar depender de uma grande, centralizada. Isso permite distribuir corretamente as solicitações de forma hierárquica.
Vamos ver o que acontece por baixo dos panos:
1. Quando um cliente faz uma consulta a um servidor DNS para web1.sales.me.com, o servidor envia a consulta para o servidor DNS superior (raiz), que aponta a consulta para o servidor de nomes na zona .com
.
Isso, por sua vez, envia a consulta para o servidor de nomes do próximo nível (na zona me.com
), e então para sales.me.com
. Esse processo é repetido quantas vezes forem necessárias até que o FQDN (Nome de Domínio Totalmente Qualificado, web1.sales.me.com neste exemplo) seja retornado pelo servidor de nomes da zona a que pertence.
2. Neste exemplo, o servidor de nomes em sales.me.com.
responde ao endereço web1.sales.me.com
e retorna a associação desejada de nome de domínio-IP e outras informações também (se configurado para tal).
Todas essas informações são enviadas para o servidor DNS original, que então as repassa para o cliente que solicitou em primeiro lugar. Para evitar repetir os mesmos passos para consultas idênticas futuras, os resultados da consulta são armazenados no servidor DNS.
Essas são as razões pelas quais esse tipo de configuração é comumente conhecido como um servidor DNS recursivo e de cache.
Source:
https://www.tecmint.com/setup-recursive-caching-dns-server-and-configure-dns-zones/