Introdução:
Esta é a oitava parte do Tutorial de TCP/IP. Na Parte 1 tratei dos aspectos básicos do protocolo TCP/IP. Na Parte 2 falei sobre cálculos binários, um importante tópico para entender sobre redes, máscara de sub-rede e roteamento. Na Parte 3 falei sobre Classes de endereços, na Parte 4 fiz uma introdução ao roteamento e na Parte 5 apresentei mais alguns exemplos/análises de como funciona o roteamento e na Parte 6 falei sobre a Tabela de Roteamento. Na Parte 7 tratei sobre a divisão de uma rede em sub-redes, conceito conhecido como subnetting. Nesta parte farei uma apresentação de um dos serviços mais utilizados pelo TCP/IP, que é o Domain Name System (DNS). O DNS é o serviço de resolução de nomes usado em todas as redes TCP/IP, inclusive pela Internet que, sem dúvidas, é a maior rede TCP/IP existente.
Definindo DNS:
DNS é a abreviatura de Domain Name System. O DNS é um serviço de resolução de nomes. Toda comunicação entre os computadores e demais equipamentos de uma rede baseada no protocolo TCP/IP (e qual rede não é baseada em TCP/IP?) é feita através do número IP. Número IP do computador de origem e número IP do computador de destino. Porém não seria nada produtivo se os usuários tivessem que decorar, ou mais realisticamente, consultar uma tabela de números IP toda vez que tivessem que acessar um recurso da rede. Por exemplo, você digita www.microsoft.com/brasil, para acessar o site da Microsoft no Brasil, sem ter que se preocupar e nem saber qual o número IP do servidor onde está hospedado o site da Microsoft Brasil. Mas alguém tem que fazer este serviço, pois quando você digita www.microsoft.com/brasil, o protocolo TCP/IP precisa "descobrir" (o termo técnico é resolver o nome) qual o número IP está associado com o nome digitado. Se não for possÃvel "descobrir" o número IP associado ao nome, não será possÃvel acessar o recurso desejado.
O papel do DNS é exatamente este, "descobrir", ou usando o termo técnico, "resolver" um determinado nome, como por exemplo www.microsoft.com. Resolver um nome significa, descobrir e retornar o número IP associado com o nome. Em palavras mais simples, o DNS é um serviço de resolução de nomes, ou seja, quando o usuário tenta acessar um determinado recurso da rede usando o nome de um determinado servidor, é o DNS o responsável por localizar e retornar o número IP associado com o nome utilizado. O DNS é, na verdade, um grande banco de dados distribuÃdo em milhares de servidores DNS no mundo inteiro. Ele possui várias caracterÃsticas, as quais descreverei nesta parte do tutorial de TCP/IP.
O DNS passou a ser o serviço de resolução de nomes padrão a partir do Windows 2000 Server. Anteriormente, com o NT Server 4.0 e versões anteriores, o serviço padrão para resolução de nomes era o WINS – Windows Internet Name Service (assunto da Parte 9 deste tutorial). Versões mais antigas dos clientes Windows, tais como Windows 95, Windows 98 e Windows Me ainda são dependentes do WINS, para a realização de determinadas tarefas. O fato de existir dois serviços de resolução de nomes, pode deixar o administrador confuso.
Cada computador com o Windows instalado (qualquer versão), tem dois nomes: um host name (que é ligado ao DNS) e um NetBios name (que é ligado ao WINS). Por padrão estes nomes devem ser iguais, ou seja, é aconselhável que você utilize o mesmo nome para o host name e para o NetBios name.
O DNS é um sistema para nomeação de computadores, equipamentos de rede (tais como roteadores, hubs, switchs). Os nomes DNS são organizados de uma maneira hierárquica através da divisão da rede
O
Ao tentar acessar um determinado recurso, usando o nome de um servidor, é como se o programa que você está utilizando perguntasse ao DNS:
"DNS, você sabe qual o endereço IP associado com o nome tal?".
O DNS pesquisa na sua base de dados ou envia a pesquisa para outros servidores DNS (dependendo de como foram feitas as configurações do servidor DNS, conforme descreverei mais adiante). Uma vez encontrado o número IP, o DNS retorna o número IP para o cliente:
"Este é o número IP associado com o nome tal."
Nota: O DNS implementado no Windows 2000 Server e também no Windows Server 2003 é baseado em padrões definidos por entidades de padronização da Internet, tais como o IETF. Estes documentos são conhecidos como RFCs – Request for Comments. Você encontra, na Internet, facilmente a lista de RFCs disponÃveis e o assunto relacionada com cada uma. São milhares de RFCs (literalmente milhares).
Entendendo os elementos que compõem o DNS:
O DNS é baseado em conceitos tais como espaço de nomes e árvore de domÃnios. Por exemplo, o espaço de nomes da Internet é um espaço de nomes hierárquico, baseado no DNS. Para entender melhor estes conceitos, observe o diagrama da Figura a seguir:
Estrutura hierárquica do DNS.
Nesta Figura é apresentada uma visão abrevida da estrutura do DNS definida para a Internet. O principal domÃnio, o domÃnio root, o domÃnio de mais alto nÃvel foi nomeado como sendo um ponto (.). No segundo nÃvel foram definidos os chamados "Top-level-domains". Estes domÃnios são bastante conhecidos, sendo os principais descritos na Tabela a seguir:
Top-level-domain |
Descrição |
com |
Organizações comerciais |
gov |
Organizações governamentais |
edu |
Instituições educacionais |
org |
Organizações não comerciais |
net |
Diversos |
mil |
Instituições militares |
Top-level-domains
Em seguida, a estrutura hierárquica continua aumentando. Por exemplo, dentro do domÃnio .com, são criadas sub domÃnios para cada paÃs. Por exemplo: br para o Brasil (.com.br), .fr para a frança (.com.fr), uk para a Inglaterra (.com.uk) e assim por diante. Observe que o nome completo de um domÃnio é o nome do próprio domÃnio e mais os nomes dos domÃnios acima dele, no caminho até chegar ao domÃnio root que é o ponto. Nos normalmente não escrevemos o ponto, mas não está errado utilizá-lo. Por exemplo, você pode utilizar www.microsoft.com ou www.microsoft.com. (com ponto no final mesmo).
No diagrama da Figura anterior, representei até o domÃnio de uma empresa chamada abc (abc...), que foi registrada no subdomÃnio (.com.br), ou seja: abc.com.br. Este é o domÃnio DNS da empresa.
Nota: Para registrar um domÃnio .br, utilize o seguinte endereço: www.registro.br.
Todos os equipamentos da rede da empresa abc.com.br, farão parte deste domÃnio. Por exemplo, considere o servidor configurado com o nome de host www. O nome completo deste servidor será www.abc.com.br, ou seja, é com este nome que ele poderá ser localizado na Internet. O nome completo do servidor com nome de host ftp será: ftp.abc.com.br, ou seja, é com este nome que ele poderá ser acessado através da Internet. No banco de dados do DNS é que ficará gravada a informação de qual o endereço IP está associado com www.abc.com.br, qual o endereço IP está associado com ftp.abc.com.br e assim por diante. Mais adiante você verá, passo-a-passo, como é feita a resolução de nomes através do DNS.
O nome completo de um computador da rede é conhecido como FQDN – Full Qualifided Domain Name. Por exemplo ftp.abc.com.br é um FQDN. ftp (a primeira parte do nome) é o nome de host e o restante representa o domÃnio DNS no qual está o computador. A união do nome de host com o nome de domÃnio é que forma o FQDN.
Internamente, a empresa abc.com.br poderia criar subdomÃnios, como por exemplo: vendas.abc.com.br, suporte.abc.com.br, pesquisa.abc.com.br e assim por diante. Dentro de cada um destes subdominios poderia haver servidores e computadores, como por exemplo: srv01.vendas.abc.com.br, srv-pr01.suporte.abc.com.br. Observe que sempre, um nome de domÃnio mais baixo, contém o nome completo dos objetos de nÃvel mais alto. Por exemplo, todos os subdomÃnios de abc.com.br, obrigatoriamente, contém abc.com.br: vendas.abc.com.br, suporte.abc.com.br, pesquisa.abc.com.br. Isso é o que define um espaço de nomes contÃnio.
Dentro de um mesmo nÃvel, os nomes DNS devem ser únicos. Por exemplo, não é possÃvel registrar dois domÃnios abc.com.br. Porém é possÃvel registrar um domÃnio abc.com.br e outro abc.net.br. Dentro do domÃnio abc.com.br pode haver um servidor chamado srv01. Também pode haver um servidor srv01 dentro do domÃnio abc.net.br. O que distingue um do outro é o nome completo (FQDN), neste caso: srv01.abc.com.br e o outro é srv01.abc.net.br.
Nota: Um método antigo, utilizado inicalmente para resolução de nomes era o arquivo hosts. Este arquivo é um arquivo de texto e contém entradas como as dos exemplos a seguir, uma em cada linha:
10.200.200.3 |
www.abc.com.br |
10.200.200.4 |
ftp.abc.com.br |
10.200.200.18 |
srv01.abc.com.br srv-files |
O arquivo hosts é individual para cada computador da rede e fica gravado (no Windows NT, Windows 2000, Windows Server 2003 ou Windows XP), na pasta system32\drivers\etc, dentro da pasta onde o Windows está instalado. Este arquivo é um arquivo de texto e pode ser alterado com o bloco de Notas.
O DNS é formado por uma série de componentes e serviços, os quais atuando em conjunto, tornam possÃvel a tarefa de fazer a resolução de nomes em toda a Internet ou na rede interna da empresa. Os componentes do DNS são os seguintes:
? O espaço de nomes DNS: Um espaço de nomes hierárquico e contÃnuo. Pode ser o espaço de nomes da Internet ou o espaço de nomes DNS interno, da sua empresa. Pode ser utilizado um espaço de nomes DNS interno, diferente do nome DNS de Internet da empresa ou pode ser utilizado o mesmo espaço de nomes. Cada uma das abordagens tem vantagens e desvantagens.
? Servidores DNS: Os servidores DNS contém o banco de dados do DNS com o mapeamento entre os nomes DNS e o respectivo número IP. Os servidores DNS também são responsáveis por responder às consultas de nomes envidas por um ou mais clientes da rede. Você aprenderá mais adiante que existem diferentes tipos de servidores DNS e diferentes métodos de resolução de nomes.
? Registros do DNS (Resource Records): Os registros são as entradas do banco de dados do DNS. Em cada entrada existe um mapeamento entre um determinado nome e uma informação associada ao nome. Pode ser desde um simples mapeamento entre um nome e o respectivo endereço IP, até registros mais sofisticados para a localização de DCs (controladores de domÃnio do Windows 2000 ou Windows Server 2003) e servidores de email do domÃnio.
? Clientes DNS: São também conhecidos como resolvers. Por exemplo, uma estação de trabalho da rede, com o Windows 2000 Professional ou com o Windows XP professional tem um "resolver" instalado. Este componente de software é responsável por detectar sempre que um programa precisa de resolução de um nome e repassar esta consulta para um servidor DNS. O servidor DNS retorna o resultado da consulta, o resultado é retornado para o resolver, o qual repassa o resultado da consulta para o programa que originou a consulta.
Entendendo como funcionam as pesquisas do DNS:
Imagine um usuário, na sua estação de trabalho, navegando na Internet. Ele tenta acessar o site www.juliobattisti.com.br. O usuário digita este endereço e tecla Enter. O resolver (cliente do DNS instalado na estação de trabalho do usuário) detecta que existe a necessidade da resolução do nome www.juliobattisti.com.br, para descobrir o número IP associado com este nome. O resolver envia a pesquisa para o servidor DNS configurado como DNS primário, nas propriedades do TCP/IP da estação de trabalho (ou para o DNS informado pelo DHCP, caso a estação de trabalho esteja obtendo as configurações do TCP/IP, automaticamente, a partir de um servidor DHCP – assunto da Parte 10 deste tutorial). A mensagem envida pelo resolver, para o servidor DNS, contém três partes de informação, conforme descrito a seguir:
? O nome a ser resolvido. No nosso exemplo: www.juliobattisti.com.br.
? O tipo de pesquisa a ser realizado. Normalmente é uma pesquisa do tipo "resource record", ou seja, um registro associado a um nome, para retornar o respectivo endereço IP. No nosso exemplo, a pesquisa seria por um registro do tipo A, na qual o resultado da consulta é o número IP associado com o nome que está sendo pesquisado. É como se o cliente perguntasse para o sevidor DNS: "Você conhece o número IP associado com o nome www.juliobattisti.com.br?" E o servidor responde: "Sim, conheço. O número IP associado com o nome www.juliobattisti.com.br é o seguinte... Também podem ser consultas especializadas, como por exemplo, para localizar um DC (controlador de domÃnio) no domÃnio ou um servidor de autenticação baseado no protocolo Kerberos.
? Uma classe associada com o nome DNS. Para os servidores DNS baseados no Windows 2000 Server e Windows Server
Existem diferentes maneiras como uma consulta pode ser resolvida. Por exemplo, a primeira vez que um nome é resolvido, o nome e o respetivo número IP são armazenados em memória, no que é conhecido como Cache do cliente DNS, na estação de trabalho que fez a consulta. Na próxima vez que o nome for utilizado, primeiro o Windows 2000 procura no Cache DNS no cliente, para ver se não existe uma resolução anterior para o nome
Chegando a consulta ao servidor, primeiro o servidor DNS consulta o cache do servidor DNS. No cache do servidor DNS ficam, por um determinado perÃodo de tempo, as consultas que foram resolvidas pelo servidor DNS, anteriormente. Esse processo agiliza a resolução de nomes, evitando repetidas resoluções do mesmo nome. Se não for encontrada uma resposta no cache do servidor DNS, o servidor pode tentar resolver a consulta usando as informações da sua base de dados ou pode enviar a consulta para outros servidores DNS, até que uma resposta seja obtida. A seguir descreverei detalhes deste procsso de enviar uma consulta para outros servidores, processo este chamado de recursão.
Em resumo, o processo de resolução de um nome DNS é composto de duas etapas:
2. Se a consulta não puder ser resolvida localmente, o resolver envia a consulta para o servidor DNS, o qual pode utilizar diferentes métodos (descritos mais adiante), para a resolução da consulta.
A seguir vou descrever as etapas envolvidas nas diferentes maneiras que o DNS utiliza para "responder" a uma consulta enviada por um cliente.
Nota: Vou utilizar algumas figuras da ajuda do Windows 2000 Server para explicar a maneira como o DNS resolve consultas localmente (resolver) e os diferentes métodos de resolução utilizados pelo servidor DNS.
Inicialmente considere o diagrama da Figura a seguir, contido na Ajuda do DNS, diagrama este que apresenta uma visão geral do processo de resolução de nomes do DNS.
O processo de resolução de nomes do DNS.
No exemplo desta figura, o cliente está em sua estação de trabalho e tenta acessar o site da Microsoft: www.microsoft.com. Ao digitar este endereço no seu navegador e pressionar Enter, o processo de resolução do nome www.microsoft.com é iniciado. Uma série de etapas são executadas, até que a resoluçõa aconteça com sucesso ou falhe em definitivo, ou seja, o DNS não consegue resolver o nome, isto é, não consegue encontrar o número IP associado ao endereço www.microsoft.com..
Primeira etapa: O DNS tenta resolver o nome, usando o resolver local:
Ao digitar o endereço www.microsoft.com e pressionar Enter, o processo de resolução é iniciado. Inicialmente o endereço é passado para o cliente DNS, na estação de trabalho do usuário. O cliente DNS é conhecido como resolver, nome este que utilizarei a partir de agora. O cliente tenta resolver o nome utilizando um dos seguintes recursos:
? O cache DNS local: Sempre que um nome é resolvido com sucesso, o nome e a informação associada ao nome (normalmente o endereço IP), são mantidos na memória, o que é conhecido como cache local do DNS. Quando um nome precisa ser resolvido, a primeira coisa que o resolver faz é procurar no cache local. Encontrando no cache local, as informações do cache são utilizadas e a resolução está completa. O cache local torna a resolução mais rápida, uma vez que nomes já resolvidos podem ser consultados diretamente no cache, ao invés de terem que passar por todo o processo de resolução via servidor DNS novamente, processo este que você aprenderá logo a seguir.
? O arquivo hosts: Se não for encontrada a resposta no cache, o resolver consulta as entradas do arquivos hosts, o qual é um arquivo de texto e fica na pasta onde o Windows 2000 Server foi instalado, dentro do seguinte caminho: \system32\drivers\etc. O hosts é um arquivo de texto e pode ser editado com o bloco de notas. Este arquivo possui entradas no formato indicado a seguir, com um númeo IP por linha, podendo haver um ou mais nomes associados com o mesmo número IP:
10.200.200.3 |
www.abc.com.br |
intranet.abc.com.br |
10.200.200.4 |
ftp.abc.com.br |
arquivos.abc.com.br |
10.200.200.18 |
srv01.abc.com.br |
pastas.abc.com.br pastas |
Se mesmo assim a consulta não for respondida, o resolver envia a consulta para o servidor DNS configurado nas propriedades do TCP/IP como servidor DNS primário ou configurado via DHCP.
Segunda etapa: Pesquisa no servidor DNS.
Uma vez que a consulta não pode ser resolvida localmente pelo resolver, esta é enviada para o servidor DNS. Quando a consulta chega no servidor DNS, a primeira coisa que ele faz é consultar as zonas para as quais ele é uma autoridade (para uma descrição completa sobre zonas e domÃnios e a criação de zonas e domÃnios no DNS consulte o CapÃtulo 3 do meu livro Manual de Estudos para o Exame 70-216, com previsão de lançamento para Setembro de 2003, pela editora Axcel Books).
Por exemplo, vamos supor que o servidor DNS seja o servidor DNS primário para a zona vendas.abc.com.br (diz-se que ele é a autoridade para esta zona) e o nome s ser pesquisado é srv01.vendas.abc.com.br. Neste caso o servidor DNS irá pesquisar nas informações da zona vendas.abc.com.br (para a qual ele é a autoridade) e responder a consulta para o cliente. Diz-se que o servidor DNS respondeu com autoridade (authoritatively).
No nosso exemplo (Figura anterior) não é este o caso, uma vez que o nome pesquisado é www.microsoft.com e o servidor DNS não é a autoridade, ou seja, não é o servidor DNS primário para o domÃno microsoft.com. Neste caso, o servidor DNS irá pesquisar o cache do servidor DNS (não confundir com o cache local do resolver no cliente).
À medida que o servidor DNS vai resolvendo nomes, ele vai mantendo estas informações em um cache no servidor DNS. As entradas são mantidas em cache por um tempo que pode ser configurado pelo administrador do DNS. O cache do servidor DNS tem a mesma função do cache local do resolver, ou seja, agilizar a consulta a nomes que já foram resolvidos previamente. Se for encontrada uma entrada no cache do servidor DNS, esta entrada será utilizada pelo servidor DNS para responder a consulta enviada pelo cliente. e o processo de consulta está completo.
Caso o servidor DNS não possa responder usando informações de uma zona local do DNS e nem informações contidas no cache do servidor DNS, o processo de pesquisa continua, usando um processo conhecido como recursão (recursion), para resolver o nome. Agora o servidor DNS fará consultas a outros servidores para tentar responder a consulta enviada pelo cliente. O processo de recursão é ilustrado na Figura a seguir, da ajuda do DNS. Em seguida comentarei os passos envolvidos no processo de recursão.
Resolução de nomes usando recursão.
O servidor DNS irá iniciar o processo de recursão com o auxÃlio de servidores DNS da Internet. Para localizar estes servidores, o servidor DNS utiliza as configurações conhecidas como "root hints". Root hints nada mais é do que uma lista de servidores DNS e os respectivos endereços IP, dos servidores para o domÃnio root (representado pelo ponto .) e para os domÃnios top-level (.com, .net, gov e assim por diante). Esta lista é criada automaticamente quando o DNS é instalado e pode ser acessada através das propriedades do servidor DNS. Na Figura a seguir é exibida uma lista de root hints configuradas por padrão, em um servidor DNS:
Lista de root hints do servidor DNS.
Com o uso da lista de servidores root hints, o servidor DNS consege localizar (teoricamente), os servidores DNS responsáveis por quaisquer domÃnio registrado.
Vamos novamente considerar um exemplo, para entender como o processo de recursão funciona. Imagine que a consulta enviada pelo cliente é para descobrir o endereço IP associado ao nome srv01.vendas.abc.com. O cliente que fez esta consulta está usando um computador da rede xyz.com, o qual está configurado para usar, como DNS primário, o DNS da empresa xyz.com.
Primeiro vamos assumir que o nome não pode ser resolvido localmente no cliente (usando o cache DNS local e o arquivo hosts) e foi enviado para o servidor DNS primário da empresa xyz.com. Este DNS é dono, é autoridade apenas para o domÃnio xyz.com e não para vendas.abc.com (lembrando sempre que a primeira parte do nome é o nome da máquina, conhecido como nome de host). Com isso o servidor DNS primário da empresa xyz.com.br irá pesquisar no cache do servidor DNS. Não encontrando a resposta no cache, é iniciado o processo de recursão, com os passos descritos a seguir:
1. O servidor DNS retira apenas a parte correspondente ao domÃnio (o nome todo, menos a primeira parte. No nosso exemplo seria vendas.abc.com, srv01 é o nome de host). Usando a lista de servidores DNS configurados como root hints, o servidor DNS localiza um servidor que seja o dono, a autoridade para o domÃnio root da Internet, representado pelo ponto (o processo é assim mesmo, de trás para frente).
2. Localizado o servidor responsável pelo domÃnio root, o servidor DNS da empresa xyz.com envia uma consulta interativa para o servidor DNS responsável pelo domÃnio root, perguntando: "Você sabe quem é o servidor DNS responsável pelo domÃnio .com?". O servidor DNS root responde com o endereço IP de um dos servidores DNS responsáveis pelo domÃnio .com. Ou seja, o servidor DNS root não sabe responder diretamente o nome que está sendo resolvido, mas sabe para quem enviar, sabe a quem recorrer. Talvez daà venha o nome do processo recursão.
3. O servidor DNS do domÃnio xyz.com recebe a resposta informando qual o servidor DNS responsável pelo domÃnio .com.
4. O servidor DNS do domÃnio xyz.com envia uma consulta para o servidor DNS responsável pelo .com (informado no passo 3), perguntando: "Você é a autoridade para abc.com ou saberia informar quem é a autoridade para abc.com?"
5. O servidor DNS responsável pelo com não é a autoridade por abc.com, mas sabe informar quem é a autoridade deste domÃnio. O servidor DNS resonsável pelo .com retorna para o servidor DNS do domÃnio xyz.com, o número IP do servidor DNS responsável pelo domÃnio abc.com.
6. O servidor DNS do domÃnio xyz.com recebe a resposta informando o número IP do servidor responsável pelo domÃnio abc.com.
7. O servidor DNS do domÃnio xyz.com envia uma consulta para o servidor DNS
responsável pelo abc.com (informado no passo 6), perguntando: "Você é a autoridade para vendas.abc.com ou saberia informar quem é a autoridade para vendas.abc.com?"
8. O servidor DNS responsável pelo abc.com não é a autoridade para vendas.abc.com, mas sabe informar quem é a autoridade deste domÃnio. O servidor DNS resonsável pelo abc.com retorna para o servidor DNS do domÃnio xyz.com, o número IP do servidor DNS responsável pelo domÃnio vendas.abc.com.
9. O servidor DNS do domÃnio xyz.com recebe a resposta informando o número IP do servidor responsável pelo domÃnio vendas.abc.com.
10. O servidor DNS do domÃnio xyz.com envia uma consulta para o servidor DNS responsável pelo vendas.abc.com (informado no passo 9), perguntando: "Você é a autoridade para vendas.abc.com ou saberia informar quem é a autoridade para vendas.abc.com?"
11. O servidor DNS para vendas.abc.com recebe a consulta para resolver o nome srv01.vendas.abc.com. Como este servidor é a autoridade para o domÃnio, ele pesquisa a zona vendas.abc.com, encontra o registro para o endereço serv01.vendas.abc.com e retornar esta inforamação para o servidor DNS do domÃnio xyz.com.
12. O servidor DNS do domÃnio xyz.com recebe a resposta da consulta, faz uma cópia desta resposta no cache do servidor DNS e retornar o resultado para o cliente que originou a consulta.
13, No cliente o resolver recebe o resultado da consulta, repassa este resultado para o programa que gerou a consulta e grava uma cópia dos dados no cache local do DNS.
Evidentemente que a descrição do processo demora muito mais tempo do que o DNS realmente leva para resolver um nome usando este método. Claro que a resolução é rápida, senão ficaria praticamente impossÃvel usar a Internet. Além disso, este método traz algumas vantagens. Durante esta espécie de "pingue-pongue" entre o servidor DNS e os servidores DNS da Internet, o servidor DNS da empresa vai obtendo informações sobre os servidores DNS da Internet e grava estas informações no cache local do servidor DNS. Isso agiliza futuras consultas e reduz, significativamente, o tempo para a resolução de nomes usando recursão. Estas informações são mantidas na memória do servidor e com o passar do tempo podem ocupar um espaço considerável da memória. Toda vez que o serviço DNS for parado e iniciado novamente, estas informações serão excluÃdas da memória e o processo de cache inicia novamente.
Considerações e tipos especiais de resoluções.
O processo descrito anteriormente, termina com o servidor DNS (após ter consultado vários outros servidores) retornando uma resposta positiva para o cliente, isto é, conseguindo resolver o nome e retornando a informação associada (normalmente o número IP associado ao nome) para o cliente. Mas nem sempre a resposta é positiva, muitos outros tipos de resultados podem ocorrer em resposta a uma consulta, tais como:
? An authoritative answer (resposta com autoridade): Este tipo de resposta é obtido quando o nome é resolvido diretamente pelo servidor DNS que é a autoridade para o domÃnio pesquisado. Por exemplo, um usuário da Intranet da sua empresa (abc.com.br), tenta acessar uma página da intranet da empresa, por exemplo: rh.abc.com.br. Neste caso a consulta será enviada para o servidor DNS da empresa, o qual é a autoridade para a zona abc.com.br e responde diretamente à consulta, informando o número IP do servidor rh.abc.com.br. É também uma resposta positiva só que com autoridade, ou seja, respondida diretamente pelo servidor DNS que é a autoridade para o domÃnio pesquisado.
? A positive answer (resposta positiva): É uma resposta com o resultado para o nome pesquisado, isto é, o nome pode ser resolvido e uma ou mais informações associadas ao nome são retornadas para o cliente.
? A referral answer (uma referência): Este tipo de resposta não contém a resolução do nome pesquisado, mas sim informações e referência a recursos ou outros servidores DNS que podem ser utilizados para a resolução do nome. Este tipo de resposta será retornado para o cliente, se o servidor DNS não suportar o método de recursão, descrito anteriormente. As informações retornadas por uma resposta deste tipo são utilizadas pelo cliente para continuar a pesquisa, usando um processo conhecido como interação (o qual será descrito mais adiante). O cliente faz a pesquisa em um servidor DNS e recebe, como resposta, uma referência a outro recurso ou servidor DNS. Agora o cliente irá interagir com o novo recurso ou servidor, tentando resolver o nome. Este processo pode continuar até que o nome seja resolvido ou até que uma resposta negativa seja retornada, indicando que o nome não pode ser resolvido. O processo de interação será descrito mais adiante.
? A negative answer (uma resposta negativa): Esta resposta pode indicar que um dos seguintes resultados foi obtido em resposta à consulta: Um servidor DNS que é autoridade para o domÃnio pesquisado, informou que o nome pesquisado não existe neste domÃnio ou um servidor DNS que é autoridade para o domÃnio pesquisado, informou que o nome pesquisado exsite, mas o tipo de registro não confere.
Uma vez retornada a resposta, o resolver interpreta o resultado da resposta (seja ela positiva ou negativa) e repassa a resposta para o programa que fez a solicitação para resolução de nome. O resolver armazena o resultado da consulta no cache local do DNS.
Observações: O administrador do DNS pode desabilitar o recurso de recursão em um servidor DNS em situações onde os usuários devem estar limitados a utilizar apenas o servidor DNS da Intranet da empresa.
O servidor DNS também define tempos máximos para determinadas operações. Uma vez atingido o tempo máximo, sem obter uma resposta à consulta, o servidor DNS irá retornar uma resposta negativa:
? Intervalo de reenvio de uma consulta recursiva – 3 segundos: Este é o tempo que o DNS espera antes de enviar novamente uma consulta (caso não tenha recebido uma resposta) feita a um servidor DNS externo, duranto um processo recursivo.
? Intervalo de time-out para um consulta recursiva – 15 segundos: Este é o tempo que o DNS espera antes de determinar que uma consulta recursiva, que foi reenviada falhou.
Estes parâmetros podem ser alterados pelo Administrador do DNS.
Como funciona o processo de interação:
O processo de interação é utilizado entre o cliente DNS (resolver) e um ou mais servidores DNS, quando ocorrerem as condições indicadas a seguir:
? O cliente tenta utilizar o processo de recursão, discutido anteriormente, mas a recursão está desabilitada no servidor DNS.
? O cliente não solicita o uso de recursão, ao pesquisar o servidor DNS.
? O cliente faz uma consulta ao servidor DNS, informando que é esperada a melhor resposta que o servidor DNS puder fornecer imediatamente, sem consultar outros servidores DNS.
Quando o processo de interação é utilizado, o servidor DNS responde à consulta do cliente com base nas informações que o servidor DNS tem sobre o domÃnio pesquisado. Por exemplo, o servidor DNS da sua rede interna pode receber uma consulta de um cliente tentando resolver o nome www.abc.com. Se este nome estiver no cache do servidor DNS ele responde positivamente para o cliente. Se o nome não estiver no cache do servidor DNS, o servidor DNS responde com uma lista de servidores de referência, que é uma lista de registros do tipo NS e A (você aprenderá sobre os tipos de registro na parte prática), registros estes que apontam para outros servidores DNS, capazes de resolver o nome pesquisado. Ou seja, o cliente recebe uma lista de servidores DNS para os quais ele deve enviar a consulta. Observem a diferença básica entre o processo de recursão e o processo de interação. Na recursão, o servidor DNS é que entra em contato com outros servidores (root hints), até conseguir resolver o nome pesquisado. Uma vez resolvido o nome, ele retorna a resposta para o cliente. Já no processo de interação, se o servidor DNS não consegue resolver o nome, ele retorna uma lista de outros servidores DNS que talvez possam resolver o nome pesquisado. O cliente recebe esta lista e envia a consulta para os servidores DNS informados. Este processo (esta interação) continua até que o nome seja resolvido ou que uma resposta negativa seja recebida pelo cliente, informando que o nome não pode ser resolvido. Ou seja, no processo de interação, a cada etapa do processo, o servidor DNS retorna para o cliente, uma lista de servidores DNS a serem pesquisados, até que um dos servidores responde positivamente (ou negativamente) à consulta feita pelo cliente.
Como funciona o cache nos servidores DNS:
O trabalho básico do servidor DNS é responder às consultas enviadas pelos clientes, quer seja utilizando recursão ou interação. A medida que os nomes vão sendo resolvidos, esta informação fica armazenada no cache do servidor DNS. Com o uso do cache, futuras consultas a nomes já resolvidos, podem ser respondidas diretamente a partir do cache, sem ter que utilizar recursão ou interação. O uso do cache agiliza o processo de resolução de nomes e também reduz o tráfego de rede gerado pelo DNS.
Quando as informações são gravadas no cache do servidor DNS, um parâmetro chamado Time-To-Live (TTL) é associado com cada informação. Este parâmetro determina quanto tempo a informação será mantida no cache até ser descartada. O parâmetro TTL é utilizado para que as informações do cache não se tornem desatualizadas e para minimizar a possibilidade de envio de informações desatualizadas em resposta às consultas dos clientes. O valor padrão do parâmetro TTL é 3600 segundos (uma hora). Este parâmetro pode ser configurado pelo administrador do DNS, conforme mostrarei na parte prática, mais adiante.
Nota: Por padrão o DNS utiliza um arquivo chamado Cache.dns, o qual fica gravado na pasta systemroot\System32\Dns, onde systemroot representa a pasta onde o Windows 2000 Server está instalado. Este arquivo não tem a ver com o Cache de nomes do servidor DNS. Neste arquivo está contida a lista de servidores root hints (descritos anteriormente). O conteúdo deste arquivo é carregado na memória do servidor, durante a inicialização do serviço do DNS e é utilizado para localizar os servidores root hints da Internet, servidores estes utilizados durante o processo de recursão, descrito anteriormente.
Conclusão
Nesta parte do tutorial fiz a apresentação do serviço mais utilizado pelo TCP/IP: DNS. Nas próximas partes deste tutorial, falareis sobre os demais serviços do Windows 2000 Server e do Windows Server 2003, diretamente ligados ao TCP/IP, tais como o DHCP, WINS e RRAS.