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.
É 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:
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…
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.
É 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.
A principal documentação sobre o DHCP é constituída pelos incontornáveis RFCs:
[mailto:sylbau@hplb.hpl.hp.com escrito por Sylvain Baudoin]
Última modificação do dia Quarta 5 de Agosto de 2009 às 00:29:13.