O protocolo DHCP pode ser implementado tanto em redes locais como em redes corporativas, sendo compatível com o IPv4 e o IPv6, eliminando a necessidade de atribuição manual tanto dos endereços IP quanto de informações de configuração como máscara de sub-rede, gateway padrão e servidores DNS.
É utilizado um modelo cliente-servidor, onde um servidor gerencia um pool de endereços IP que podem ser atribuídos aos clientes. Quando um dispositivo conecta a uma rede, ele envia a solicitação DHCP e recebe as informações necessárias para a configuração da sub-rede. O agente de retransmissão (DHCP relay) também pode compor o sistema, trata-se de um recurso usado por um switch que permite a comunicação DHCP entre hosts e servido-res DHCP remotos que não estão na mesma rede. Neste caso, quando um cliente envia um broadcast DHCP para um endereço IP, o agente de retransmissão encaminha a solicitação para a sub-rede em que o servidor DHCP remoto reside.
O processo de obtenção de um endereço de host via DHCP envolve as seguintes trocas de mensagens, cada uma com seu ID de transação:
- DHCP Discover: o dispositivo que deseja se conectar é rede envia uma mensagem de descoberta DHCP pelo endereço de broadcast (ou seja, é encaminhado a todos os dispositivos que estão na rede). O objetivo é encontrar um servidor DHCP que possa lhe oferecer as configurações;
- DHCP Offer: o servidor recebe a mensagem de descoberta e responde com a oferta contendo os parâmetros de configuração, também encaminhada ao endereço broadcast;
- DHCP Request: o cliente escolhe a oferta (caso tenha recebido de mais de um servidor DHCP) e responde ao servidor com a solicitação;
- DHCP ACK: por fim, o servidor confirma a concessão dos parâmetros de configuração.
A figura a seguir mostra a interação entre um cliente e os servidores DHCP em uma rede.
Além das mencionadas anteriormente, ainda há outras mensagens DHCP que podem ser trocadas:
- DHCP Nack: O servidor DHCP envia esta mensagem para rejeitar uma mensagem DHCP Request de um cliente DHCP (caso não haja endereço disponível, por exemplo);
- DHCP Decline: O cliente DHCP envia esta mensagem para notificar o servidor DHCP de que o endereço IP alocado está em conflito com outro endereço IP. O cliente DHCP então solicita ao servidor DHCP outro endereço IP;
- DHCP Release: O cliente DHCP envia esta mensagem para liberar seu endereço IP alocado. Após receber uma mensagem DHCP Release, o servidor DHCP pode alocar este endereço IP para outro cliente DHCP;
- DHCP Inform: O cliente DHCP envia esta mensagem para obter parâmetros de configuração de rede, como o endereço do gateway e o endereço do servidor DNS, depois de ter obtido um endereço IP.
As mensagens DHCP são transmitidas usando o
protocolo UDP (User Datagram Protocol). Um cliente DHCP usa a porta UDP 68 para enviar mensagens a um servidor DHCP, e um servidor DHCP usa a porta UDP 67 para enviar mensagens a um cliente DHCP.
O uso do UDP como seu protocolo de transporte proporciona algumas vantagens, como velocidade e eficiência (como não é voltado é conexão, permite maior rapidez entre as trocas de mensagens), simplicidade (não requer manutenções de informações de estado de conexão), utilização de menos recursos (comparado ao UTP), suporte ao broadcast e multicast (permite a distribuição eficiente para vários dispositivos simultaneamente), possui flexibilidade na implementação (complexidade de código mínima para desenvolvimento de servidores e clientes) e escalabilidade, visto que permite lidar eficientemente com múltiplos dispositivos e condições de rede dinâmicas (BOUGUEZZI, 2023).
Na configuração realizada para demonstrar o funcionamento do protocolo foi utilizado o servidor ISC DHCP, uma solução de código aberto para a implementação de servidores DHCP, agentes de retransmissão e clientes. O grupo responsável pelo seu desenvolvimento atualmente trabalha no Kea (o seu substituto). Além dele, há outras opções disponíveis para as distribuições
GNU/Linux, como o BusyBox e o Dibbler. No Windows, o serviço DHCP já está incluído no sistema operacional.
A tabela a seguir apresenta alguns servidores DHCP, a plataforma e os recursos que eles disponibilizam.
Como já apontado anteriormente, informações adicionais são fornecidas, conhecidas como opções DHCP, visando a otimização da rede. Vejamos as principais:
- Gateway Padrão: roteador que permite a comunicação do seu dispositivo com outras redes. é fornecido o seu endereço IP para que o cliente saiba como encaminhar o tráfego para redes externas;
- Máscara de sub-rede: determina a quantidade de endereços IP disponíveis em uma rede local. Fornecido ao cliente para que se saiba quais endereços IP estão na mesma rede local;
- Servidores DNS: responsáveis pela tradução de nomes de domínio em endereços IP, permitindo que dispositivos acessem a Internet. O servidor DHCP pode fornecer os endereços IP dos servidores DNS para que o dispositivo possa resolver nomes de domínio em endereços IP;
- Opções personalizadas: além disso, pode-se incluir configurações de segurança, como autenticação e criptografia, configurações de servidor de impressão que estejam disponíveis na rede, configurações de tempo e fuso horário, bem como configurações específicas para servidores de e-mail ou de banco de dados.
O DHCP oferece suporte a alguns mecanismos diferentes para alocação de endereços IP: alocação estática, dinâmica, dinâmica estática e manual. Na alocação estática o servidor atribui um endereço IP permanente a um cliente com base em seu endereço MAC (Media Access Control). Na dinâmica, um endereço IP é atribuído por um período limitado ou até que ele seja liberado. A dinâmica estática combina os dois métodos anteriores, atribuindo um endereço estático a um dispositivo em específico e dinâmico aos demais. A alocação manual ocorre quando o servidor transmite um endereço ao cliente que foi especificamente atribuído pelo administrador de rede.
A alocação dinâmica permite a reutilização de endereços IP de modo automático e é o modo que o DHCP ajuda a controlar o problema de esgotamento de endereços, principalmente em locais em que há diversos clientes conectados é rede e que há algum fluxo de usuários. Assim, quando um host se desconectar, o mesmo endereço IP pode ser atribuído a outro que acabou de se conectar é rede, sem que seja necessária a configuração manual, ao mesmo tempo em que é realizada a administração pelo servidor dos endereços disponíveis (evitando a alocação de um mesmo endereço a diferentes clientes).
O lease time, ou tempo de locação, é um mecanismo do servidor DHCP para realizar o gerenciamento dos endereços. Trata-se da duração de tempo em que o servidor atribui um endereço IP a um determinado cliente. Quando esse tempo expira, o cliente deve solicitar uma renovação da concessão para continuar utilizando o mesmo endereço. também é responsável configurar, se necessário, o max lease time (tempo máximo de locação), sendo o tempo máximo que um cliente pode manter o endereço IP antes que seja obrigado a liberá-lo. é uma medida utilizada para evitar que dispositivos retenham IPs por longos perãodos sem usá-los.
A escolha do lease time adequado depende de vários fatores, como o tipo de rede, número de dispositivos, disponibilidade de endereços IP e os requisitos de segurança e estabilidade da rede. Por exemplo, lease time curtos são adequados para redes com muitos dispositivos transitários, enquanto um tempo mais longo pode ser melhor em grupos fixos de usuários, reduzindo o tráfego e a sobrecarga na rede causados por renovações frequentes de locação.