Resolução Reversa / DNS

Domain Name System (DNS)

Introduction

DNS ou Domain Name System, é um sistema de base de dados distribuído que permite a tradução de um nome para endereço IP (Internet Protocol address).

Esse sistema é parte fundamental da infraestrutura da Internet, portanto de grande importância.

Nos primórdios da Internet, era pequeno o número de computadores conectados a essa rede, o que permitia a manutenção de um arquivo contendo o nome e respectivo endereço IP de cada um desses computadores.

Mesmo sendo pequena a quantidade de computadores, ainda assim, era mais fácil memorizar nomes do que endereços IP.

Esse arquivo era disponibilizado em um sítio central para ser então copiado pelos administradores dos demais sítios.

Com o crescimento da Internet, e conseqüente aumento do número de computadores a ela conectados, tornou-se difícil manter esse arquivo com nomes e endereços de todos computadores.

A solução foi criar um sistema distribuído para resolução de nomes para endereços IP.

Nesse sistema, há uma hierarquia de nomes de domínio onde cada sitio é responsável apenas por manter as informações do seu domínio. Por isso é considerado um sistema distribuído.

Nessa hierarquia cada parte do nome, ou seja, cada domínio é separado por "." sendo a parte mais a esquerda aquela mais especifica.

Por exemplo: www.example.org. O nome mais a esquerda representa um servidor (em geral servidor web) e é a parte mais específica dentro do domínio example; o qual por sua vez está dentro do domínio org, que é a parte menos específica desse nome.

Cada parte do nome do domínio pode estar sob a responsabilidade de uma entidade diferente. Ou seja, a entidade que está responsável pela zona org não necessariamente é a mesma responsável pela zona example.

Esse sistema DNS é composto basicamente por três componentes: servidores autoridade, servidores recursivos e clientes (resolvers).

O cliente (resolver) é o que se encontra instalado nos computadores com software TCP/IP, o que de uma forma geral, são todos aqueles que se conectam à Internet.

Esse software cliente inicia uma resolução DNS em resposta a solicitação de outros softwares, em execução no computador, para acessar algum computador através de seu nome.

A configuração de um resolver é bem simples e necessita apenas do endereço IP de um servidor recursivo.

O servidor recursivo é aquele que recebe consultas DNS dos resolvers e se encarrega de executar toda a resolução para então devolver a resposta final ao cliente (resolver). Servidores recursivos consultam servidores até obter a resposta para a consulta.

E finalmente, o servidor autoridade (authoritative server), é aquele que tem autoridade sobre um nome de domínio. Ou seja, é a fonte confiável sobre informações de um dado nome de domínio.

É nesse servidor que se registram as informações de quais endereços IP estão associados as computadores que utilizam o nome de domínio em questão.

Uma resolução de nome de domínio se inicia no software cliente, que a envia a um servidor recursivo. Esse outro servidor, em geral, inicia a resolução consultando os servidores raiz (root servers), que são os servidores responsáveis pelo topo de hierarquia de nomes de domínio.

Em seguida, com base em informações recebidas dos servidores raiz, o servidor recursivo consulta outros servidores até chegar àquele responsável pelo domínio desejado.