DHCP –
Dynamic Host Configuration Protocol |
|||||||||||||||
Objetivo No
ambiente TCP/IP, cada host deve ter um conjunto de parâmetros configurados
para poder comunicar-se. Estes incluem endereço IP, máscara, default gateway,
servidor de DNS e outros. Alguns desses parâmetros são mandatórios e outros são
opcionais. Esta configuração
pode ser manual (máquina por máquina) ou automática, utilizando o DHCP (RFC 2131). O DHCP
possui três serviços: o cliente DHCP, o servidor DHCP e o DHCP relay. |
|
||||||||||||||
Essencialmente,
quando uma máquina inicializa, o DHCP cliente envia pela rede uma solicitação
de endereço IP (e outros parâmetros) e informando o endereço físico da
máquina (MAC Address). Um DHCP server responde a esta solicitação, enviando a
configuração solicitada. |
|||||||||||||||
O DHCP é
uma evolução dos protocolos RARP e BOOTP: RARP – Reverse Address Resolution Protocol (RFC 903): tem
abrangência apenas local, não suporta roteamento e não pode transportar outros
parâmetros que não o endereço IP. Normalmente utilizado para estações
diskless, terminais etc. BOOTP – Booststrap Protocol (RFC 951): é o
protocolo no qual o DHCP é baseado. O BOOTP é roteável e permite a
configuração de vários parâmetros. A principal diferença é que o BOOTP não
permite a alocação dinâmica de parâmetros, conforme explicada adiante. O DHCP
foi projetado para ser interoperável com o BOOTP. |
|||||||||||||||
Modos de
Operação O DHCP
pode operar de três maneiras: Manual: neste modo, o administrador deverá listar todos os MAC address dos
clientes que serão atendidos pelo DHCP server, e designar a cada um deles um
endereço IP. Solicitações de outros clients não serão atendidas. É uma
configuração importante para hosts que devem ter endereços fixos, como
roteadores, servidores, etc, e também como procedimento de segurança, já que,
deste modo, uma máquina não prevista não poderá conectar-se à rede por este
meio. Automática: o administrador configura uma faixa de endereços IP, que serão
fornecidos à medida que forem solicitados pelos clientes. Uma vez fornecidos,
estes endereços ficam permanentemente designados ao cliente, a menos que o
administrador realize uma intervenção manual. Dinâmica: nesta configuração, que é a mais usada, uma faixa de endereços é
configurada, e dela um endereço será emprestado ao solicitante por um período,
chamado lease-period. À medida que não forem mais necessários, eles endereços
tornam-se novamente disponíveis a outros clientes automaticamente,
facilitando o trabalho administrativo. O pool de endereços deverá
corresponder apenas à quantidade de máquinas que operarem simultaneamente, e
não a todas as máquinas existentes. É uma solução importante para provedores
de acesso, por exemplo. |
|||||||||||||||
Terminologia DHCP
server: host que provê os endereços aos clientes através
da porta UDP 67 DHCP
client: host que solicita endereços, usado a porta UDP 68 DHCP
relay: roteador ou host que propaga as solicitações de um
client a um server que está em outra rede e vice-versa Binding: conjunto de parâmetros de configuração enviado do server ao client |
|||||||||||||||
Funcionamento No
início da operação do DHCP, quatro pacotes são trocados, conforme ilustrado
abaixo: |
|||||||||||||||
DHCPDISCOVER: broadcast enviado pelo cliente à porta 68 indicando que necessita de
endereço IP e outros parâmetro. Neste ele informa seu MAC Address. Nesse
ponto, o cliente está no status Init (ver abaixo) DHCPOFFER: unicast remetido ao MAC Address do cliente pelo servidor, onde os
parâmetros solicitados são oferecidos. Quando o cliente recebe um ou mais
DHCPOFFERs, ele passa ao status Selecting. DHCPREQUEST: broadcast (para que outros eventuais DCHP servers também recebem a
informação) do cliente aceitando os parâmetros. Ao enviar esta solicitação, o
cliente para a estar em Requesting. DHCPACK: unicast com a informação completa para o cliente. A partir deste,
inicia-se a contagem do período de empréstimo, e o cliente está em Bound.
|
|
||||||||||||||
Renovação
do endereço IP O
período de empréstimo (lease period) é informado com os demais parâmetros solicitados.
Além do valor do período, dois outros valores são enviados, cujos valores
default são: |
|||||||||||||||
T1 = 0,5 x lease-period T2 = 0,875 x lease-period Quando
T1 expira, o cliente envia um DHCPREQUEST unicast para o servidor,
solicitando prorrogação do prazo. Neste ponto, seu status é Renewing. Caso
seja autorizado (depende da configuração do server), o servidor enviará um
DHCP Acknowledgement, reiniciando a contagem do período de empréstimo, e
retornando a Bound. Caso o
cliente não receba um DHCPACK até T2, ele enviará um DHCPREQUEST broadcast,
que poderá ser respondido por qualquer servidor DHCP, e alterará seu status
para Rebinding. Caso ele
não receba nenhuma nova configuração até o final do lease-period, ou receba um
DHCPNACK informado que a solicitação foi rejeitada, ele cessará as
comunicações e retornará ao estado inicial, Init. |
Representação simplificada. Para detalhes, ver RFC 2131. |
||||||||||||||
Mensagens
DHCP
|
|||||||||||||||
DHCP
Relay Como o
pacote DHCPDISCOVER é um broadcast, ele não passaria normalmente pelo roteador,
o que obrigaria cada rede ter seu próprio DHCP server. Para
evitar essa necessidade o roteador pode ser configurado com um DHCP Relay,
o que signfica informá-lo para onde dele deve enviar os broadcasts recebidos
pela porta 67. Na
figura ao lado, o roteador enviará para 10.0.0.253 todos os DHCPDISCOVERs
recebidos das redes 10.1.0.0/16 e 10.2.0.0/16. Ao
fazê-lo, ele informará por qual das placas ele recebeu a solicitação
original. Com base nesta informação, o DHCP Server, que atende a vários escopos,
saber de qual deles enviará um endereço. |
|
||||||||||||||