
Quando você conecta um dispositivo, exemplo: celular, pc ou notebook, à uma rede, esse dispositivo procura um servidor DHCP na rede para receber os configuração de rede pronta, de forma que você como usuário não precise configurar nada.
Hoje iremos ver, de modo técnico, como é essa relação entre servidor e cliente DHCP.
Aqui não entra em questão dispositivos com rede configurado manualmente.
Atribuição Dinâmica de Endereço DHCP
Falaremos aqui de alocar no sentido de atribuir algo, que nesse caso é a atribuição de informações de rede do servidor DHCP para os dispositivos clientes.
Cada dispositivo que se conecta a uma rede, sem sem fio ou com fio, possui um aplicativo/serviço que chamamos de cliente dhcp. Esse cliente procura um servidor automaticamente quando o dispositivo é conectado a uma rede.
Abaixo falo de forma mais técnica sobre a alocação de endereço.
A alocação(atribuição) de endereço é realmente feita apenas quando um cliente está no estado INIT e enviou
uma mensagem DHCPDISCOVER. Se o cliente achar que tem uma concessão válida e enviar um DHCPRE‐
QUEST para iniciar ou renovar essa concessão, o servidor tem apenas três opções – pode ignorar o DHCPREQUEST, envie um DHCPNAK para informar ao cliente que ele deve parar de usar o endereço ou
envie um DHCPACK, dizendo ao cliente para prosseguir e usar o endereço por um tempo.
Se o servidor encontrar o endereço que o cliente está solicitando e esse endereço estiver disponível para o cliente, o servidor enviará um DHCPACK. Se o endereço não estiver mais disponível, ou o cliente não tem permissão para tê-lo, o servidor enviará um DHCPNAK. Se o servidor não sabe nada sobre o endereço, ele permanecerá em silêncio, a menos que o endereço esteja incorreto para o segmento de rede ao qual o cliente foi conectado e o servidor tem autoridade tativa para aquele segmento de rede, caso em que o servidor enviará um DHCPNAK mesmo embora não saiba sobre o endereço.
Pode haver uma declaração de host correspondente à identificação do cliente. Se essa declaração host contém uma declaração de endereço fixo que lista um endereço IP válido para o segmento de rede ao qual o cliente está conectado. Neste caso, o servidor DHCP nunca fará alocação dinâmica de endereços. este caso, o cliente é obrigado a levar o endereço especificado na declaração do host. Se o cliente enviar um DHCPREQUEST para algum outro endereço, o servidor responderá com um DHCPNAK.
Quando o servidor DHCP aloca um novo endereço para um cliente(lembre-se, isso só acontece se o cliente enviou um DHCPDISCOVER), ele primeiro verifica se o cliente já uma concessão(lease) válida em um endereço IP ou se houver um endereço IP antigo que o cliente tinha antes que ainda não foi reatribuído. Nesse caso, o servidor pegará esse endereço e verificará se o cliente ainda tem permissão para usá-lo. Se o cliente não tiver mais permissão para usá-lo, a concessão(lease) é liberada se o servidor achar que ainda estava em uso. Saiba que o fato de o cliente ter enviado um DHCPDISCOVER prova ao servidor que o cliente não está mais usando o lease.
Se não for encontrado nenhum contrato de arrendamento existente, ou se o cliente estiver proibido de receber o contrato existente lease, o servidor procurará na lista de pools de endereços o segmento de rede para qual o cliente está vinculado a uma lease que não está em uso e que o cliente é permitido ter. Ele examina cada declaração de pool em sequência(todas as declarações de intervalo que aparecem fora das declarações do pool são agrupadas em um único pool sem lista de permissões). Se a lista de permissões para o pool permitir que o cliente receba um endereço desse pool, o pool é examinado para ver se há um endereço disponível.
Em caso afirmativo, o cliente recebe provisoriamente esse endereço. Caso contrário, o próximo pool
é testado. Se não forem encontrados endereços que possam ser atribuídos ao cliente, nenhuma resposta é
enviado ao cliente.
Se for encontrado um endereço que o cliente está autorizado a ter, e que nunca foi atribuído a qualquer cliente antes, o endereço é imediatamente atribuído ao cliente. Se o endereço está disponível para alocação, mas foi atribuído anteriormente a um cliente diferente, o servidor continuará procurando na esperança de encontrar um endereço que nunca antes foi atribuído a um cliente.
O servidor DHCP gera a lista de endereços IP disponíveis a partir de uma tabela hash. Esse significa que os endereços não são classificados em nenhuma ordem específica e, portanto, não é possível prever a ordem na qual o servidor DHCP alocará/atribuirá endereços IP.