Це питання про стандарти Інтернет-протоколу.
- DHCP-клієнт (dhcpcd-5.2.10 з Android 4.x) ініціалізує інтерфейс
- DHCP-клієнт надсилає повідомлення DHCPDISCOVER
- DHCP-сервер надсилає повідомлення DHCPOFFER
- Потім клієнт надсилає повідомлення DHCPREQUEST, яке містить "Запитуваний IP-адреса", відмінне від "Ваш IP-адреса" від DHCPOFFER і не містить "Ідентифікатор DHCP-сервера".
Я бачу це з захоплення пакета (можна відкрити за допомогою Wireshark) на пристрої dhcp-сервера.
RFC 2131 говорить:
The client broadcasts a DHCPREQUEST message that MUST include
the 'server identifier' option to indicate which server
it has selected, and that MAY include other options specifying
desired configuration values.
The 'requested IP address' option MUST be set to the value
of 'yiaddr' in the DHCPOFFER message from the server.
Питання: правильна поведінка DHCP-клієнта? Чи змінилися стандарти?
This DHCPREQUEST message is broadcast and relayed through DHCP/BOOTP relay agents.
. Ммм, отже, нам потрібен інший метод, щоб побачити, чи є це RENEW
чи ні. (Мені потрібно зробити деякі читання на цьому :) Але, як я прочитав це є деякі випадки, де 'server identifier' MUST NOT be filled in
.
RENEW DHCPREQUEST
? Згідно з це ідентифікатор сервера НЕ ПОВИНЕН бути заповнені протягом aRENEW
-запит. І бачачи як призначення вашоїDHCPREQUEST
є одноадресний (0.0.0.0 до 255.255.255.255) може бутиRENEW DHCPREQUEST
. (PS. Не експерт тут :)