10. Protocolos de camada de aplicação

10.7. Protocolo DNS

O DNS é um protocolo, um serviço que traduz nomes de domínio legíveis por pessoas em endereços IP para dispositivos na Internet. Imagine uma situação em que o DNS não existe, mas queremos exibir os nossos sítios Web preferidos no browser. Precisamos de introduzir o endereço IP em vez do nome de domínio, ou seja, o endereço em forma de palavras, por exemplo: 212.56.93.112. Para a maioria de nós isto não é problema, alguns números podem ser memorizados. Por outro lado, existem muitos websites na Internet e é difícil lembrar muitos endereços numéricos. Além disso, é fácil cometer um erro em tais registos digitais, e no mundo da Internet, um erro tão pequeno pode levar a uma página diferente da que esperávamos.

Este é um dos lados da moeda, e o outro lado é que o endereço IP do servidor pode não mudar com muita frequência. Quando o nosso website muda de endereço IP e o serviço DNS não funciona, temos de reaprender esse endereço e lembrá-lo. O DNS resolve-nos este problema porque altera este endereço na sua base de dados de registos e atribui-o ao nome do domínio. Então, para nós, utilizadores, não importa qual é o endereço IP do sítio, o importante é, que conhecemos o seu endereço e nome de domínio e que não mudam.

DNS é um serviço que corre numa arquitetura cliente-servidor, mas aqui não estamos a tratar os clientes como programas informáticos, tais como browsers ou programas de partilha de ficheiros. Este computador apenas executa um serviço de sistema chamado DNS Resolver, que trata de todas as aplicações em computadores clientes cujos nomes precisam de ser alterados. Sempre que configuramos um dispositivo de rede, ou apenas um computador, devemos especificar dois endereços de servidor DNS para que, se um não comunicar, o outro atue como uma substituição do nome.

Os servidores DNS armazenam todo o tipo de registos, incluindo registos A e AAAA contendo endereços de dispositivos finais e registos MX que suportam trocas de correio, pois é importante lembrar que o DNS não só traduz endereços de domínio em endereços IP para sítios web, mas também se aplica ao servidor de correio eletrónico. A troca de nomes parece-me ser assim:

1. O cliente envia uma consulta para o servidor DNS, que verifica se o registo existe na sua base de dados.

2. Se assim for, traduz o nome para um endereço IP e envia-o de volta ao cliente:

3. Caso contrário, contacta outros servidores para que o registo em questão seja incluído na sua base de dados:

O envio de pedidos a outros servidores para um servidor DNS que não encontra um registo na sua base de dados pode causar muito tráfego de rede, o que é uma situação confusa. Para evitar tráfego de rede excessivo e desnecessário, quando outro servidor encontra um registo e envia-o para o servidor atribuído ao seu dispositivo, este último guarda o registo numa cache, para que no futuro não tenha de se referir a outro servidor para o mesmo endereço. Isto irá certamente acelerar alterações posteriores de nome, uma vez que os nossos servidores DNS já não procuram registos em outros servidores, mas substituem os nomes imediatamente. Da mesma forma, os serviços DNS nos computadores pessoais armazenam nomes previamente traduzidos. Isto pode ser verificado através da introdução de ipconfig/displaydns num PC Windows. Veremos então quais os mapeamentos que são armazenados na cache de serviços DNS do nosso computador.