Tabela de conteúdos

Introdução

Inicialmente, a necessidade de automatizar a requisição e distribuição do endereço IP deu-se em função da existência de estações sem disco (diskless). Esta demanda provocou o uso do protocolo de camada de enlace RARP.

Com o aumento do número de máquinas nas redes e também a crescente necessidade de maiores informações de configuração para comunicação em uma rede, o RARP mostrou-se ineficiente, o que levou a criação do protocolo BOOTP.

O advento da computação móvel trouxe uma grande limitação ao BOOTP. Foi criado, então, o DHCP, uma versão estendida do BOOTP, que permite a atribuição dinâmica de endereços IP.

O DHCP foi designado para resolver esse problema enquanto simplifica a administração da rede TCP/IP. DHCP vem do Inglês Dynamic Host Configuration Protocol que significa Protocolo de Configuração de Host Dinâmico.

O DHCP é especificado pela IETF - Internet Engineering Task Force por meio dos RFCs (Requests For Comments) 1533, 1534, 1541 e 1542.

O RARP

Para se entender claramente o funcionamento do DHCP, é necessário conhecer o funcionamento do BOOTP, que, por sua vez, exige conhecimento prévio em relação ao funcionamento e problemas do RARP (Reverse Address Resolution Protocol).

Para um sistema computacional enviar e receber datagramas é preciso que este possua um endereço de rede IP de 32 bits que o identifique. Em condições normais (uma estação completa), o endereço IP fica armazenado na memória da máquina, carregado após o boot. Quando a máquina não possui um disco para inicialização do sistema (estação diskless) para carregar o seu endereço IP, a imagem de memória daquela estação fica armazenada no servidor. Como é possível a máquina cliente obter o seu endereço IP para envio da imagem de memória pelo servidor?

Cada máquina com uma placa de rede possui uma identificação única e que praticamente não se repete. Esta identificação é uma seqüência de bits, gravado no chip da placa, que é utilizada como endereço físico na rede (MAC address). A estação diskless utiliza um protocolo que permite a obtenção do endereço IP fazendo uso do endereço físico da placa. Este protocolo é o RARP.

O RARP é uma adaptação do protocolo ARP [RFC826] e apresenta o seguinte formato de mensagem:

A exemplo do ARP, a mensagem RARP trafega na rede encapsulada na porção de dados de um quadro. A identificação do quadro é feita com o preenchimento de valores diferentes no campo operação.

A comunicação RARP é feita a partir da difusão da solicitação de uma estação na rede local para aquisição de um endereço IP. A estação solicitante remete, na sua mensagem, o seu endereço MAC no campo target HA. Somente os servidores RARP irão processá-la.

Os servidores respondem às solicitações preenchendo o campo tipo de protocolo, mudando o campo operação de solicitação para resposta e enviando a mensagem diretamente a máquina solicitante. Ela recebe as respostas de todos os servidores RARP, mesmo tendo aceito a primeira. A partir deste momento a máquina só utilizará o RARP novamente se for feita uma reinicialização do sistema.

Com isso, ficam aparentes algumas desvantagens deste protocolo:

O BOOTP

As deficiências encontradas no RARP foram solucionadas com a criação do BOOTP (BOOTstrap Protocol). Por utilizar o UDP para trafegar suas mensagens, ele pode ser usado por uma aplicação de forma mais simples que o RARP. Ele também é mais eficiente que este protocolo por embutir em sua mensagem outras informações importantes para a inicialização.

Diferente da comunicação RARP, a comunicação BOOTP se processa na camada de rede. A estação cliente lança a sua solicitação na rede utilizando um endereço IP de difusão. Os servidores BOOTP serão os únicos a reconhecer e responder também por difusão. Esta forma de resposta é utilizada pelo fato do cliente não possuir ainda, o seu endereço IP para confirmar o recebimento.

O BOOTP delega ao cliente toda a responsabilidade por uma comunicação segura pois, os protocolos utilizados são passíveis de corrupção ou perda de dados. O BOOTP solicita ao UDP - User Datagram Protocol - que faça um checksum e ainda especifica que solicitações e respostas tenham seu campo DONT FRAGMENT ativo para comportar clientes de memória pequena.

O BOOTP permite várias respostas e processa sempre a primeira. Caso haja perda de datagrama, utiliza-se uma técnica de TIMEOUT para retransmissão.

DHCP: A evolução

Criado para substituir o BOOTP na tarefa de automatizar o fornecimento de endereços IP em uma rede, o DHCP é um serviço que permite facilidades para redes que utilizam a computação móvel (wireless network, computadores portáteis) ou que possuem uma faixa de endereços IP limitada.

Dois fatores contribuíram para que esse novo protocolo de configuração fosse criado. O BOOTP resolveu parte do problema de subutilização do quadro quando do envio de um endereço IP. Com o DHCP, em uma única mensagem são enviadas para o equipamento todas as informações de inicialização necessárias. Outro fator importantíssimo e que pode ser considerado como o principal é a locação rápida e dinâmica de um endereço IP para um equipamento conectado à rede.