escala de iconicidade
Introdução
O DNS (Domain Name System) é um serviço que utilizamos sempre que fazemos um acesso à internet, mesmo que não saibamos disso. Quando digitamos um endereço em um Browser, ele irá fazer uso do DNS para transformar o nome do host em um endereço IP.
Essa não é a única função desse protocolo, mas é um exemplo bem simples e que comprova como a nossa vida seria difícil sem ele, imagina decorarmos os endereços IP de todos os sites que acessamos todos os dias? Seria uma missão impossível.
Um pouco de história
Na década de 70, a ARPANet (Advanced Research Projects Agency Network) era uma rede pequena, então todos os nomes das máquinas ficavam em um único arquivo, um arquivo texto, chamado HOSTS.TXT (veja RFC 952).
Nesse ambiente, se o endereço IP de um servidor mudasse, não havia uma maneira simples de garantir que o arquivo HOSTS.TXT de todos os outros servidores seriam também alterados, para refletir a alteração.
Além disso, a rede foi crescendo, o que tornou ainda mais inviável o uso do arquivo estático em cada ponto da rede.
Na década de 80 foi desenvolvido o protocolo e a primeira implementação do DNS, primeiro nas RFCs 882 e 883, e depois substituídas pelas RFCs 1034 e 1035. A primeira implementação de um servidor DNS para Unix aconteceu em 1984, quando 4 estudantes de Berkeley escreveram o Berkeley Internet NameDomain (BIND), que é amplamente utilizado até os dias de hoje.
Como funciona a resolução de nomes
Quando uma estação de trabalho é configurada para acessar uma rede TCP/IP, ou de forma manual ou usando DHCP, é configurado um ou mais servidores de DNS, que trabalham de forma recursiva.
Quando algum software da sua estação de trabalho precisar resolver algum nome, ele irá antes de mais nada consultar o arquivo hosts, que em sistemas GNU/Linux, se encontra em /etc/hosts. Esse arquivo pode conter endereços estáticos que serão usados antes de fazermos uma consulta à um servidor DNS.
Se o nome de domínio não for encontrado no