3. A Estrutura do DNS

O DNS é um banco de dados distribuído. Isto permite um controle local dos segmentos de todo o banco de dados, assim como cada segmento pode ser acessado por toda a rede através de um mecanismo de cliente-servidor. Programas chamados name servers fazem metade da tarefa do mecanismo de cliente-servidor. Name servers possuem informações sobre alguns segmentos da base de dados tornando-os disponíveis para os clientes, chamados resolvers. Resolvers são muitas vezes simples bibliotecas de rotinas que criam "queries"e as enviam através da rede para os name servers.

A estrutura da base de dados do DNS , mostrada na figura , é muito similar a estrutura de arquivos do UNIX ou do MSDOS. É uma estrutura de árvore invertida. No UNIX a raiz é escrita como /, já no DNS é considerada como branco (" ") e escrita como um ponto (.) no texto.

Cada nó representa uma parte da base de dados, o que em UNIX chamamos de diretório e em DNS é conhecido como domínio. Cada domínio pode ser subdividido em partes menores, chamadas subdomínios. Dizemos que cada subdomínio é um filho dos nós anteriores, que são os pais.

Todo domínio tem um nome e um label que identifica sua relação com seu domínio pai. Um domínio também possui um domain name que identifica sua posição no banco de dados. No DNS o domain name completo de um domínio é a sequência de labels desde o domínio até a raiz separados por pontos.

No DNS cada domínio pode ser administrado por uma organização diferente. Cada organização pode partir seu domínio em vários outros subdomínios e entregar a sua administração a outras organizações. Por exemplo, o Internet's Network Information Center é responsável pelo domínio edu (educacional), mas dá autoridade a U.C. Berkeley autoridade sobre o subdomínio berkeley.edu.

Cada host na rede possui um domain name que aponta para informações sobre este host. Essas informações podem ser endereços IP, informações sobre roteamento de mail, etc. Hosts podem ainda ter um ou mais domain name aliases, que são simplesmente ponteiros de um domain name (alias) para outro oficial (canonical domain name). Na figura "mailhub.nv..." é um alias para o canonical name "rincon.ba.ca..."

Domínios recebem domain names únicos, o que faz com que as organizações sejam livres para escolher e administrar seus domínios. Qualquer nome escolhido não irá colidir com outro domain name. Como na figura, podem haver dois hosts denominados puella, desde que possuam "domínios pai" diferentes.