Evolução dos protocolos Rarp e Bootp para DHCP!
Numa rede de Arquitetura TCP/IP, todo computador tem que possuir um
endereço IP distinto. O DHCP - Dynamic Host Configuration Protocol - é o
protocolo que provê um meio para alocar estes endereços dinamicamente.
Embora este artigo também apresente uma introdução ao protocolo DHCP, o
que já foi feito aqui no tecnosolution através do artigo DHCP: Você sabe o que é? , aqui são apresentados alguns conceitos de forma mais aprofundada.
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.
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:
- Como o RARP opera num nível mais baixo, ele
utiliza um acesso direto ao hardware de rede, com isso torna-se muito
complicado para um programador de aplicativos construir um servidor;
- Ele subutiliza o quadro, pois poderia carregar
mais informações úteis para a configuração do cliente sem "custo
adicional";
- Pelo fato do RARP utilizar um endereço de
hardware para identificar o equipamento, ele não pode ser aplicado em
redes que atribuem esses endereços dinamicamente.
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.
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.
ATRIBUIÇÃO DE ENDEREÇO
O DHCP pode atribuir endereço para um equipamento de rede de três
formas:
- Configuração manual;
- Configuração automática;
- Configuração dinâmica.
Configuração Manual
Neste caso, é possível atrelar um endereço IP a uma determinada máquina
na rede. Para isso, é necessária a associação de um endereço existente no banco
do servidor DHCP ao endereço MAC do adaptador de rede da máquina. Configurado
desta forma, o DHCP irá trabalhar de maneira semelhante ao BOOTP. Esse endereço
"amarrado" ao equipamento não poderá ser utilizado por outro, a não
ser que eles utilizem a mesma placa de rede.
Configuração Automática
Nesta forma, o servidor DHCP é configurado para atribuir um endereço IP
a um equipamento por tempo indeterminado. Quando este conecta-se pela primeira
vez na rede, lhe é atribuído um endereço permanente. A diferença existente
entre esta e a primeira configuração é que nesta não é necessária uma
especificação do equipamento que utilizará determinado endereço. Ele é
atribuído de forma automática.
Configuração Dinâmica
Neste tipo de configuração, é que reside a característica principal do
DHCP, que o diferencia do BOOTP. Desta forma o endereço IP é locado temporariamente
a um equipamento e periodicamente, é necessária a atualização dessa locação.
Com essa configuração, é possível ser utilizado por diferentes equipamentos, em
momentos diferentes, o mesmo endereço IP. Basta, para isso, que o primeiro a
locar o endereço, deixe de utilizá-lo. Quando o outro equipamento solicitar ao
servidor DHCP um endereço IP poderá ser fornecido ao mesmo o endereço deixado
pelo primeiro.
O SERVIDOR DHCP
O servidor DHCP deve ser configurado pelo administrador da rede para
disponibilizar aos seus clientes, endereços IP em uma das três formas de
fornecimento descritas acima. Para tanto, ele alimenta um banco com os
endereços da sua sub-rede que serão fornecidos de forma automática. É
importante deixar claro que, em uma rede, o administrador deverá deixar fixo em
algumas máquinas os seus endereços IP.
Nas configurações, será estabelecido o prazo de locação de um endereço.
Esse prazo pode variar de horas a dias ou simplesmente ser ilimitado. Essa
decisão irá depender da rede em que o DHCP está servindo e das necessidades de
um determinado equipamento.
O CLIENTE DHCP
Um cliente DHCP é um equipamento que está configurado para solicitar a
um servidor DHCP um endereço IP.
Como já foi dito anteriormente, alguns equipamentos na rede devem
possuir endereços IP fixos, já configurados na própria máquina, em função dos
serviços que eles disponibilizam na rede. Essas máquinas não são consideradas
como clientes DHCP.
Um cliente DHCP pode passar por seis estados de
aquisição:
- INICIALIZA
- SELECIONA
- SOLICITA
- LIMITE
- RENOVA
- VINCULA NOVAMENTE
O que define em que estado se encontra o cliente é a mensagem que ele
envia para um dos servidores DHCP da sua rede.
Inicializa
Quando um cliente inicializa pela primeira vez, ele difunde uma mensagem
para todos os servidores DHCP da rede local a fim de adquirir as configurações
de inicialização na rede. Para tanto ele manda uma mensagem DHCPDISCOVER.
O DHCPDISCOVER é enviado em um datagrama UDP da mesma
forma que no BOOTP. Após o envio dessa mensagem, o cliente passa para o estado
SELECIONA.
Seleciona
Neste estado, o cliente permanece aguardando a resposta dos servidores
DHCP que receberam o DHCPDISCOVER. Aqueles servidores que estiverem
configurados para responder, enviam ao cliente uma mensagem DHCPOFFER. Nesta
mensagem, estão embutidas as informações necessárias para a configuração do
cliente juntamente com um endereço IP que o servidor lhe oferece como
empréstimo. Após o recebimento de todas as mensagens enviadas pelos servidores,
o cliente irá optar por uma e entrará em negociação de locação com o servidor
ofertante. Para iniciar a negociação, o cliente envia a mensagem DHCPREQUEST. Neste
momento, ele entra no estadoSOLICITA.
Solicita
Aqui, o cliente aguarda uma resposta de confirmação do servidor DHCP que
ele entrou em negociação. Essa confirmação é remetida através da mensagem DHCPACK. Com
o recebimento da confirmação, o cliente passa a ter um endereço IP e utiliza-o,
bem como todas as outras informações de configuração que foram enviadas pelo
servidor e entra no estado LIMITE.
Limite
Este é o estado em que permanece o cliente durante a utilização do
endereço IP até que atinja o período de renovação ou ele decida não mais
utilizar o endereço locado. Para este último caso, onde o cliente não espera o
término do prazo da locação, ele envia uma mensagem DHCPRELEASE para
o servidor, a fim de provocar a liberação do endereço IP locado. Desta forma, o
cliente não mais poderá enviar datagramas IP utilizando-se do endereço que
possuía e passa para o estado INICIALIZA.
Renova
Ao receber um DHCPACK, o cliente adquire a informação do
período de locação do endereço. De posse dessa informação, ele inicializa três
temporizadores. Eles são utilizados para controlar os períodos de renovação,
revinculação e do fim da locação. O servidor pode especificar o valor de cada
temporizador. Não havendo essa especificação o cliente utiliza os valores
padrões, que são de 50%, 85% e 100%, respectivamente.
Quando o temporizador ultrapassa o valor da renovação, o cliente tentará
renovar a locação. Para isso, ele faz uso novamente do DHCREQUEST ao
servidor. Assim, ele passa para o estado RENOVA e aguarda a
resposta. Na mensagem, segue embutido o endereço IP atual do cliente e uma
solicitação de extensão da locação do mesmo. O servidor poderá responder
autorizando a renovação da locação que necessariamente não possuirá o período
anteriormente destinado, ou poderá responder de forma negativa. No primeiro
caso, o servidor envia um DHCPACK ao cliente. O recebimento
dessa mensagem faz com que o cliente retorne ao estado limite. No segundo caso,
o servidor envia um DHCPNACK, que faz com que o cliente
interrompa o uso do endereço IP e passe para o estadoINICIALIZA.
Vincula Novamente
Ao entrar no estado RENOVA, um cliente fica aguardando a resposta do servidor. Caso essa resposta não chegue (é possível que o servidor tenha sido desligado, ou tenha sido desconectado da rede), o cliente permanece nesse estado e comunicando-se normalmente até que seja ultrapassado o limite do segundo temporizador. Nesse ponto, o cliente passa do estado RENOVA para o estado VINCULA NOVAMENTE. A partir daí, o cliente pressupõe que o servidor que lhe locou o endereço IP não estará mais disponível e tenta obter a renovação com qualquer outro servidor DHCP da sua rede local através da difusão de DHCPREQUEST. Caso receba umDHCPACK de algum servidor habilitado para tal, o cliente retornará para o estado LIMITE. Em recebendo um DHCPNACK, ele passará para o estado INICIALIZA.
Ao entrar no estado RENOVA, um cliente fica aguardando a resposta do servidor. Caso essa resposta não chegue (é possível que o servidor tenha sido desligado, ou tenha sido desconectado da rede), o cliente permanece nesse estado e comunicando-se normalmente até que seja ultrapassado o limite do segundo temporizador. Nesse ponto, o cliente passa do estado RENOVA para o estado VINCULA NOVAMENTE. A partir daí, o cliente pressupõe que o servidor que lhe locou o endereço IP não estará mais disponível e tenta obter a renovação com qualquer outro servidor DHCP da sua rede local através da difusão de DHCPREQUEST. Caso receba umDHCPACK de algum servidor habilitado para tal, o cliente retornará para o estado LIMITE. Em recebendo um DHCPNACK, ele passará para o estado INICIALIZA.
No caso do cliente não receber qualquer resposta, ele permanecerá
utilizando o endereço IP inicialmente locado até que seja atingido o valor
limite do terceiro temporizador, o que fará com que ele passe para o estado INICIALIZA.
FORMATO DA MENSAGEM DHCP
O servidor DHCP poderá responder tanto às solicitações BOOTP, quanto
DHCP, pois ambas possuem o mesmo formato.
A figura a seguir mostra o formato da mensagem DHCP.
OP
|
HTYPE
|
HLEN
|
HOPS
|
|
ID
DE TRANSAÇÕES
|
||||
SEGUNDOS
|
FLAGS
|
|||
ENDEREÇO
IP DO CLIENTE
|
||||
SEU
ENDEREÇO IP
|
||||
ENDEREÇO
IP DO SERVIDOR
|
||||
ENDEREÇO
IP DO ROTEADOR
|
||||
ENDEREÇO
DE HARDWARE DO CLIENTE (16 OCTETOS)
|
||||
NOME
DO HOST DO SERVIDOR (64 OCTETOS)
|
||||
NOME
DO ARQUIVO DE PARTIDA (128 OCTETOS)
|
||||
OPÇÕES
(VARIÁVEL)
|
||||
Os campos da mensagem DHCP:
CAMPO
|
INFORMAÇÕES
|
OP
|
Numa
mensagem DHCP, uma solicitação e uma resposta possuem os mesmos campos. O que
as diferenciam é o conteúdo deste campo. A informação um indica
uma solicitação, a informação dois indica uma resposta
|
HTYPE
|
Informa
o padrão de rede utilizado pelo adaptador de rede
|
HLEN
|
Informa
o tamanho do endereço MAC do adaptador de rede
|
HOPS
|
Quantidade
de roteadores pelos quais a mensagem deverá passar
|
ID
DE TRANSAÇÕES
|
Número
de identificação da mensagem
|
SEGUNDOS
|
Quantidade
de tempo em segundos desde que o cliente fez a inicialização
|
FLAGS
|
Utilizado
para "setar" opções especiais de resposta às solicitações
|
ENDEREÇO
IP DO CLIENTE
|
Em
uma solicitação o cliente informa o seu endereço IP (possível quando o
cliente conhece o seu endereço)
|
SEU
ENDEREÇO IP
|
Utilizado
pelo servidor para enviar informação do endereço IP disponível para o cliente
que solicitou.
|
ENDEREÇO
IP DO SERVIDOR
|
Preenchido
pelo cliente quando ele quer obter uma informação de um servidor específico.
|
ENDEREÇO
IP DO ROTEADOR
|
Preenchido
pelo servidor para informar ao cliente o endereço IP do roteador da rede
local
|
END.
DE HARDWARE DO CLIENTE
|
Informação
do endereço MAC do cliente
|
NOME
DO HOST DO SERVIDOR
|
Quando
esses campos não são utilizados para enviar as informações pertinentes a cada
um (nome do servidor e informação do sistema operacional que será
inicializado no cliente) o DHCP utiliza-o remetendo informações adicionais
transformando-os em campo de OPÇÕES, otimizando assim a utilização da
mensagem.
|
NOME
DO ARQUIVO DE PARTIDA
|
Nome
do arquivo que contém a imagem de memória da(s) estação (ões)
correspondente(s)
|
OPÇÕES
|
Esse
campo é utilizado para informar que tipo de resposta ou solicitação DHCP
(DHCPDISCOVER, DHCPOFFER etc.) está sendo enviada para o cliente ou para o
servidor.
|
Um servidor DHCP faz com que o endereçamento a máquinas seja um processo
mais dinâmico do que estático. Normalmente, um novo usuário da rede solicita ao
gerenciador um endereço IP válido. O gerenciador executa uma entrada nas
tabelas HOSTS ou no banco de dados DNS. Esse usuário pode precisar desse
endereço apenas esporadicamente ou até temporariamente. Contudo, enquanto o
endereço é atribuído a uma máquina, ninguém mais pode usá-lo.
Outro problema surge quando os usuários se tornam móveis e levam suas
máquinas com eles. Se alguém move o seu computador pessoal de uma rede do
prédio para outra, o endereço antigo poderá não funcionar na nova rede local.
Solicitar ao gerenciador de rede local um endereço para usar apenas
temporariamente não faz sentido.
Com o DHCP, os endereços IPs são atribuídos automaticamente conforme a
necessidade e depois liberados quando não são mais necessários. O processo é
bem simples. Um servidor DHCP possui um grupo de endereços válidos que pode
atribuir aos clientes. Quando o sistema de um cliente inicia, ele envia uma
mensagem na rede solicitando um endereço.
Cada servidor DHCP (podem existir vários) responde com um endereço IP e
informações de configuração. O cliente recolhe as ofertas e seleciona um
endereço válido, enviando de volta a confirmação para o servidor. Todos os
servidores DHCP recebem a confirmação do cliente. O servidor DHCP cujo endereço
foi selecionado pelo cliente, envia de volta uma mensagem de reconhecimento,
enquanto os demais servidores DHCP cancelam as ofertas anteriores de seus
grupos. Após o recebimento da mensagem de reconhecimento do servidor DHCP, o cliente
pode participar da rede TCP/IP.
O servidor DHCP, essencialmente, reserva o endereço para o cliente. Esta
pode ter um tempo determinado de modo que as reservas sem uso sejam retornadas
de forma automática ao grupo de endereços. Se a reserva expirar, mas a máquina
ainda estiver usando o endereço, o servidor DHCP poderá renová-la, a fim de que
o cliente possa continuar com o mesmo endereço.
O DHCP - Dynamic Host Configuration Protocol - é um
padrão industrial aberto que é projetado para reduzir a complexidade da
administração da rede TCP/IP. Ele especifica métodos para configuração
simplificada e dinâmica dos computadores, reduzindo, dessa forma, a carga de
adicioná-los, movê-los e/ou removê-los destas redes.
Conhecendo-se os recursos DHCP, pode-se utilizá-lo como um aliado na
administração de uma rede.
Douglas E. Comer - Interligação em Redes com TCP/IP vol. 1 - Princípios,
protocolos e arquitetura - tradução ARX Publicações, 3a. ed. Ed. Campus -
1995
Microsoft Windows NT Server resource Kit: for
Windows NT Server version
4.0/Microsoft Corporation: tradução Altair Dias Caldas. São Paulo:
Makron Books, 1997
Leia Mais >>