Temos salas de treinamento em que normalmente o Windows XP está instalado (via PXE). A infraestrutura DNS / DHCP "normal" é Windows-Servers. A sala de treinamento possui sua própria VLAN (diferente dos servidores Windows), portanto, é mais provável que haja um auxiliar de IP para solicitações DHCP ativas no roteador Cisco em que todos os PCs dessa sala estejam conectados.
Agora, queríamos converter alguns dos PCs para Linux. A idéia era: Coloque nosso próprio laptop com um servidor DHCP na VLAN da sala e substitua a resposta DHCP "normal". A idéia era que isso funcionasse, pois um servidor DHCP conectado diretamente na VLAN deveria ter um tempo de resposta mais rápido que o servidor DHCP "normal" localizado a alguns saltos da VLAN.
Acabou que isso não funcionou. Tivemos que liberar manualmente a concessão no servidor DHCP original para fazê-lo funcionar.
No laptop, vimos o cliente solicitando o IP e o "nosso" dhcp estava enviando NACKs para a solicitação de IP do Windows, antes disso oferecemos nossa própria resposta.
Pergunta antiga: Por que isso não funcionou como esperado? O que está fazendo com que o PC recupere seu antigo contrato?
Atualização 2012-08-08:
O problema de recuperação foi explicado no DHCP-RFC. Agora, isso explica por que o PC recupera sua antiga concessão.
Agora, liberamos o IP do servidor DHCP do Windows antes de tentar novamente.
Mais uma vez - o Windows-DHCP-server vence.
Suspeito que exista algum algoritmo para o dhcp-client que determine a "melhor" resposta dhcp para o cliente. A nova pergunta é:
Como o cliente escolhe a resposta "melhor"?