O protocolo DHCP

Março 2017

Definição do termo DHCP

DHCP significa Dynamic Host Configuration Protocol. Trata-se de um protocolo que permite a um computador que se conecta a uma rede obter dinamicamente (ou seja, sem intervenção específica) a sua configuração (principalmente, a sua configuração rede). Você só precisa especificar ao computador de encontrar sozinho um endereçoIP através do DHCP. O objetivo principal é a simplificação da administração de uma rede.

O protocolo DHCP serve principalmente para distribuir endereços IP numa rede, mas foi concebido, originalmente, como complemento do protocolo BOTP (Bootstrap Protocol) que é utilizado, por exemplo, quando instalamos uma máquina através de uma rede (BOOTP é utilizado em estreita colaboração com um servidor TFTP no qual o cliente vai encontrar os arquivos a serem carregados e copiados no disco rígido). Um servidor DHCP pode reenviar parâmetros BOOTP ou de configuração próprios a um determinado hóspede.

Funcionamento do protocolo DHCP

Para começar, é preciso um servidor DHCP que distribui endereços IP. Esta máquina vai servir de base para todos os pedidos DHCP e deve ter um endereço IP fixo. Numa rede, podemos ter apenas uma máquina com endereço IP fixo, o servidor DHCP.


O mecanismo básico da comunicação é BOOTP (com trama UDP). Quando uma máquina é inicializada, ela não tem nenhuma informação sobre a sua configuração de rede e, sobretudo, o usuário não deve fazer nada de especial para encontrar um endereço IP. Para fazer isto, a técnica utilizada é o broadcast: para encontrar e dialogar com um servidor DHCP, a máquina vai simplesmente emitir um pacote especial de broadcast (broadcast em 255.255.255.255 com outras informações como o tipo de pedido, as portas de conexão, etc.) na rede local. Quando o servidor DHCP receber o pacote de broadcast, ele devolverá outro pacote de broadcast (não se esqueça que o cliente não tem necessariamente o seu endereço IP e que, por isso, não pode ser contatado diretamente) contendo todas as informações requeridas para o cliente.

Poderíamos pensar que um só um pacote pode ser suficiente para o bom funcionamento do protocolo. Na verdade, existem vários tipos de pacotes DHCP susceptíveis de serem emitidos, quer pelo cliente para os servidores, quer pelo servidor para um cliente:
DHCPDISCOVER: para localizar os servidores DHCP disponíveis.
DHCPOFFER: resposta do servidor para um pacote DHCPDISCOVER, que contém os primeiros parâmetros.
DHCPREQUEST: pedido diverso do cliente para, por exemplo, prolongar o seu aluguel.
DHCPACK: resposta do servidor que contém parâmetros e o endereço IP do cliente.
DHCPNAK: resposta do servidor para informar o cliente que o seu aluguel acabou ou se o cliente anunciou uma má configuração de rede. DHCPDECLINE: o cliente anuncia ao servidor que o endereço já foi utilizado.
DHCPRELEASE: o cliente libera o seu endereço IP.
DHCPINFORM: o cliente pede os parâmetros locais, ele já tem o seu endereço IP.

O primeiro pacote emitido pelo cliente é um pacote de tipo DHCPDISCOVER. O servidor responde com um pacote DHCPOFFER, em especial para apresentar um endereço IP ao cliente. O cliente estabelece a sua configuração e faz um DHCPREQUEST para validar o seu endereço IP (pedido em broadcast porque DHCPOFFER não contém o seu endereço IP). O servidor responde simplesmente com um DHCPACK com o endereço IP para confirmar a atribuição. Normalmente, isto é suficiente para que um cliente obtenha uma configuração de rede eficaz, mas pode ser mais ou menos longo, caso o cliente aceite ou não o endereço IP.

As concessões

Por motivos de otimização dos recursos de rede, os endereços IP são emitidos com uma data de início e uma data de fim de validade. É o que se chama de concessão. Um cliente que vê a sua concessão chegar a termo pode pedir ao servidor um prolongamento, com um DHCPREQUEST. Do mesmo modo, quando o servidor vir uma concessão chegar a termo, emitirá um pacote DHCPNAK para perguntar ao cliente se ele quer prolonga-lo. Se o servidor não receber resposta válida, torna o endereço IP disponível.

A sutileza do DHCP é que podemos otimizar a atribuição dos endereços IP jogando com a duração das concessões. O problema está aí, se nenhum endereço for libertado depois de um certo tempo, nenhum outro pedido DHCP poderá ser satisfeito, por falta de endereços a serem distribuídos.

Numa rede constituída majoritariamente por dispositivos fixos, muito raramente repartidas, concessões de longa duração são suficientes. Não esqueça que o DHCP funciona principalmente por broadcast e que isto pode bloquear a banda larga em pequenas redes muito solicitadas.

Obter um servidor DHCP

É a Internet Software Consortium que desenvolve o servidor DHCP do mundo do software livre. É o servidor DHCP mais utilizado e o que “segue” o melhor possível os RFCs. Cuidado, um servidor DHCP não é nada simples de desenvolver, assim os servidores que eles propõem são completados e corrigidos regularmente. A última versão é a 3.0 mas ainda está em beta. Uma das principais inovações desta versão é a possibilidade de atualizar um DNS dinamicamente, em função dos endereços IP fornecidos pelo servidor DHCP. Saiba que o primeiro draft sobre o DNS dinâmico é de março de 1996.

A Microsoft tem naturalmente o seu próprio servidor DHCP para NT, mas este ainda não aplica a atualização dinâmica de DNS. A documentação sobre o DHCP é constituída pelos incontornáveis RFCs:
RFC 821 - BOOTP (BootStrap Protocol)
RFC 1542 - Clarifications and Extensions for the Bootstrap Protocol (Interações entre BOOTP e DHCP)
RFC 2131 - DHCP
RFC 2132 - DHCP Options and BOOTP Vendor Extensions

Veja também


The DHCP protocol
The DHCP protocol
El protocolo DHCP
El protocolo DHCP
Le protocole DHCP
Le protocole DHCP
Il protocollo DHCP
Il protocollo DHCP
Este documento, intitulado 'O protocolo DHCP', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.