DNS (Domain Name Server)

outubro 14, 2008 at 10:21 pm (Uncategorized)

O ser humano tem a facilidade de identificar as coisas através da utilização de nomes. Dada essa facilidade de memorização e reconhecimento, fez-se necessário também na Internet o uso de nomes de hospedeiro (hostname) para identificar máquinas.

Tendo em vista que esses nomes são de comprimento variável (caracteres alfanuméricos) e que eles fornecem uma pouca informação a respeito da localização do hospedeiro na Internet, a identificação dos hospedeiros, para serem processados pelos roteadores, ocorre por meio do enderaçamento IP. Portanto, “As pessoas preferem o identificador nome de hospedeiro por ser mais fácil de lembrar, ao passo que roteadores preferem endereços IP de comprimento fixo e estruturados hierarquicamente.” (J. F. KUROSE).

Assim, o DNS (Domain Name Service – Sistemas de nomes de domínio) foi criado com o intuito de conciliar as preferências acima citadas, ou seja, para traduzir nomes de hospedeiros para endereços IP. Segundo Andrew Tanenbaum, “A essência do DNS é a criação de um esquema hierárquico de atribuição de nomes baseado no domínio e de um sistema de bancos de dados distribuídos para implementar esse esquema de nomenclatura.”

O DNS corresponde a um protocolo da camada de aplicação, que roda sobre UDP e usa a porta de comunicação 53. Ele é especificado nas RFCs 1034 e 1035. É usado para variadas aplicações, como por exemplo: apelidos para hospedeiros (aliasing), apelido para o servidor de mails, distribuição da carga.

Por segurança, um domínio pode definir vários servidores DNS. O DNS primário é o primeiro sistema a ser consultado no momento da resolução do nome, caso o servidor DNS primário esteja em manutenção, o servidor DNS secundário é consultado, e assim sucessivamente.

Devido ao intenso tráfego da internet e devido à segurança da rede, a estrutura do banco de dados DNS é distribuída e hierárquica. Ou seja, ao invés de um banco de dados central e único com informações de todos os domínios, a resolução ocorre consultando-se diversos servidores DNS e sua resolução é hierárquica (um servidor DNS pode apontar para outro servidor DNS e assim sucessivamente).

A estrutura hierárquica equivale a uma árvore invertida, ou seja, existe um servidor principal que aponta para um secundário que aponta para um terceiro e assim sucessivamente. O servidor DNS que está no topo da internet é o servidor raiz.

Para que um host acesse uma URL qualquer (“www.amazon.com”, por exemplo) na internet, primeiramente ele envia uma mensagem de requisição para o servidor de nomes local. O servidor local envia uma consulta ao DNS raiz, o qual percebe o sufixo ‘com’ e responde uma lista de endereços IP para o DNS local contendo servidores TLD que são reponsáveis por ‘com’. Em seguida, o DNS local faz requisição para um desses servidores TLD, o qual percebe o sufixo ‘amazon.com’ e envia ao DNS local o endereço IP do servidor DNS com autoridade para a Amazon. Finalmente, o DNS local consulta o servidor com autoridade e esse responde com o endereço do hospedeiro ‘www.amazon.com’. Assim, o DNS local responde ao hospedeiro o IP do nome solicitado.

A partir do processo relatado acima, vemos que há consultas recursivas e iterativas. Entre o hospedeiro e o DNS local, a consulta é recursiva, uma vez que o hospedeiro pede que o DNS local obtenha o mapeamento em seu nome. Enquanto que as outras três consultas (DNS local com DNS raiz, TLD e autoridade) são iterativas, já que as respostas são retornadas diretamente ao DNS local. Em teoria, qualquer consulta DNS pode ser iterativa ou recursiva, porém, na prática, as consultas geralmente são feitas conforme o padrão exposto acima.

Quando se faz uma requisição DNS, a informação recebida (IP do nome resolvido) é armazenada na cache do DNS. Essa informação permanece armazenada por um certo período (normalmente 2 dias) e, dentro desse tempo, uma requisição repetida é buscada diretamente na cache DNS, não sendo preciso percorrer novamente todo o caminho para resolução do nome.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: