Cursos / Redes de Computadores / Redes de Computadores I / Aula

arrow_back Aula 15 - Sistema de Nomes de Domínio (DNS)

Porque um sistema de nomes é necessário

Você já sabe que máquinas que usam o protocolo IP para se comunicarem se identificam por meio do endereço IP. Ou seja, quando um programa em uma máquina deseja enviar informações para um programa em outra máquina, ele precisa saber o endereço IP dela (além do número da porta, é claro), pois é esse endereço que é colocado no cabeçalho do pacote IP.

Mas os programas, por sua vez, precisam que nós, humanos, informemos qual é a máquina de destino. Portanto, se nós tivéssemos realmente que informar o endereço IP das máquinas que queremos nos comunicar, ficaríamos em uma situação muito difícil, pois não conseguiríamos lembrar mais do que alguns poucos endereços IP.

Para resolver esse problema é necessário um esquema que associe nomes aos endereços IP das máquinas, pois é muito mais fácil lembrar-se de nomes, do que de números (no caso, endereços IP).

Inicialmente a estratégia foi criar um arquivo chamado arquivo de host que continha o endereço IP de cada máquina e seu nome. Esse arquivo era então copiado para todas as máquinas da internet. Quando um usuário informava a um programa o nome de uma máquina, o programa consultava esse arquivo e traduzia o nome para o endereço IP associado.

Naturalmente, esse esquema só pode ser utilizado no início da internet, quando ela era formada por apenas uma quantidade muito pequena de máquinas. Hoje, ele seria inviável, devido ao tamanho do arquivo e ao número de cópias necessárias.

Mesmo se pensarmos esse esquema para uma única rede, por exemplo, de uma determinada organização, ele ainda teria problemas, uma vez que a cada nova máquina adicionada na rede o arquivo teria que ser copiado para todas as outras máquinas.

Uma solução mais interessante é usar um modelo cliente-servidor, onde o arquivo é criado em apenas uma máquina (o servidor) e todas as outras (chamadas clientes) enviam uma consulta ao servidor sempre que desejam traduzir um nome para o endereço IP associado. Nesse novo esquema, em cada máquina cliente é configurado o endereço IP do servidor, para que elas saibam para quem devem enviar as perguntas.

Mesmo com o modelo cliente-servidor nós ainda temos dois grandes problemas a serem resolvidos. O primeiro é como as máquinas de uma organização fariam quando quisessem se comunicar com máquinas de outras organizações, ou seja, como elas descobririam o endereço IP do servidor de outra organização. O segundo problema é como evitar que duas máquinas na internet (em organizações diferentes) tenham o mesmo nome. O Sistema de Nome de Domínio (DNS) resolve esses problemas.

Por questões de compatibilidade com as aplicações legadas, até hoje existe o arquivo de host em máquinas que possuem a pilha de protocolos TCP/IP instalada. Nos computadores com sistemas operacionais derivados do UNIX, como o Linux, este arquivo é o /etc/hosts. Nele, em cada linha, há um mapeamento endereço IP–nome. Assim, se não houver um sistema de nomes (como o DNS, que iremos estudar nesta aula) executando na rede, é possível fazer a tradução de alguns nomes para endereços IP através do mapeamento neste arquivo.

Veja aqui a explicação em vídeo sobre a necessidade do DNS

Versão 5.3 - Todos os Direitos reservados