Um servidor DHCP extremamente simples funciona de forma confiável com PCs com Windows 10 e dispositivos Android. Ele recebe DHCP Discover de um cliente, responde com DHCP Offer e, em seguida, recebe DHCP Request de um cliente.
No entanto, não funciona com um dispositivo usando DHCP4. Ele recebe DHCP Discover dele e responde com DHCP Offer, mas nunca recebe DHCP Request do cliente. Isso é confirmado pela análise do Wireshark. Parece que o cliente DHCP4 não recebe a oferta DHCP ou a ignora completamente.
O cliente DHCP funciona com servidores DHCP de diferentes roteadores sem nenhum problema, então culpo o servidor DHCP.
Este servidor DHCP tem uma coisa diferente de um servidor DHCP típico: ele não usa a porta privilegiada 67 como porta de origem para enviar mensagens. Achei que os clientes DHCP não se importariam com a porta de origem das respostas ao DHCP Discover. O protocolo não parece exigir que as mensagens do servidor sejam enviadas da porta 67. Ele exige que sejam enviadas para a porta 68.
Algum especialista poderia oferecer algumas pistas sobre o assunto? Tenho o controle total do servidor DHCP e ficarei muito feliz em tentar qualquer sugestão.
Editar:
Por favor, note que esta pergunta não é para fazer nenhum dispositivo específico rodando DHCP4 funcionar com o servidor DHCP. Esta questão é sobre como modificar o servidor DHCP para que funcione com todos os clientes DHCP4.
Suspeito de uma limitação do Android (e também não consigo ver um uso legal para criar um aplicativo de servidor DHCP no Android). Consulte RFC2131 para obter mais referências.