Kioskea
Recherche

O protocolo DHCP

Março 2015

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 (quer dizer, sem intervenção específica) a sua configuração (principalmente, a sua configuração rede). Tem apenas de dizer ao computador para encontrar sozinho um endereço IP através do DHCP. O objectivo 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 à partida como complemento do protocolo BOOTP (Bootstrap Protocol) que é utilizado, por exemplo, quando se instala 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 ficheiros a carregar e copiar para o disco duro). Um servidor DHCP pode reenviar parâmetros BOOTP ou de configuração próprios a um dado hóspede.

Funcionamento do protocolo DHCP

É necessário inicialmente 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, pode-se por conseguinte ter só 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 arranca, não tem nenhuma informação sobre a sua configuração de rede e, sobretudo, o utilizador 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 sobre 255.255.255.255 com outras informações como o tipo de pedido, as portas de conexão…) na rede local. Quando o servidor DHCP receber o pacote de broadcast, 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 está directamente contactável) que contém todas as informações requeridas para o cliente.

Poder-se-ia pensar que um só um pacote pode ser suficiente para o bom funcionamento do protocolo. Com efeito, existem vários tipos de pacotes DHCP susceptíveis de serem emitido quer pelo cliente para os servidores, quer pelo servidor para um cliente:

  • DHCPDISCOVER (para localizar os servidores DHCP disponíveis)
  • DHCPOFFER (resposta do servidor um pacote DHCPDISCOVER, que contém os primeiros parâmetros)
  • DHCPREQUEST (pedido diverso do cliente para por exemplo prolongar o seu arrendamento)
  • 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 arrendamento acabou ou se o cliente apresenta uma má configuração de rede)
  • DHCPDECLINE (o cliente anuncia ao servidor que o endereço já é utilizado)
  • DHCPRELEASE (o cliente libera o seu endereço IP)
  • DHCPINFORM (o cliente pede os parâmetros locais, tem já o seu endereço IP)



O primeiro pacote emitido pelo cliente é um pacote de tipo DHCPDISCOVER. O servidor responde por um pacote DHCPOFFER, em especial para apresentar um endereço IP ao cliente. O cliente estabelece a sua configuração, seguidamente 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 por um DHCPACK com o endereço IP para confirmação da atribuição. Normalmente, isto é suficiente para que um cliente obtenha uma configuração de rede eficaz, mas pode ser mais ou menos longo conforme o cliente aceite ou não o endereço IP…

As concessões

Por motivos de optimização dos recursos 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 o quer prolongar. Se o servidor não receber resposta válida, torna disponível o endereço IP.

É esta a subtileza do DHCP: pode-se optimizar 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 ao fim de um certo tempo, mais nenhum pedido DHCP não poderá ser satisfeiao, por falta de endereços a distribuir.

Numa rede constituída maioritariamente por máquinas fixas, 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 banda concorrida 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. ATENÇÃO! Um servidor DHCP não é nada simples de desenvolver, e os servidores que propõem são completados regularmente. A última versão em data é a 3.0 mas está ainda em beta. Uma das principais inovações desta versão é a possibilidade de actualizar um DNS dinamicamente, em função dos endereços IP fornecidos pelo servidor DHCP. Para informação, o primeiro draft sobre o DNS dinâmico data de Março de 1996… Mais informações sobre a actualização de DNS por servidores DHCP.



A Microsoft tem naturalmente o seu próprio servidor DHCP para NT, mas este ainda não aplica a actualização dinâmica de DNS.

Mais informações

A principal documentação sobre o DHCP é constituída pelos incontornáveis RFCs:




[mailto:sylbau@hplb.hpl.hp.com escrito por Sylvain Baudoin]

Para uma leitura offline, é possível baixar gratuitamente este artigo no formato PDF:
O-protocolo-dhcp.pdf

A ver igualmente


The DHCP protocol
The DHCP protocol
El protocolo DHCP
El protocolo DHCP
Das DHCP Protokoll
Das DHCP Protokoll
Le protocole DHCP
Le protocole DHCP
Il protocollo DHCP
Il protocollo DHCP
Este documento, intitulado « O protocolo DHCP »a partir de Kioskea (pt.kioskea.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.