Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This commit added a heuristic to detect DHCP servers that supposedly ignored DHCPREQUEST messages that were sent by ndhc while it is in the RENEWING state, but this was an incorrect workaround for a bug in ndhc. The real problem was that ndhc was setting SO_DONTROUTE on the UDP socket that was used to send the DHCPREQUEST via unicast UDP while in RENEWING. If the destination DHCP server was not on the same subnet as the ndhc client, then this flag would cause the DHCPREQUEST to be unable to reach the server, since it disallows the local kernel from performing routing table lookups and thus confines that UDP socket to only being able to reach subnet-local peers. In contrast, REBINDING uses broadcast instead of unicast, and the DHCP relay agent acting on behalf of the DHCP server would see the packet broadcast on the local subnet and dutifully forward it along to the DHCP server; thus the SO_DONTROUTE flag caused no harm in the REBINDING case. So, the previous commit to this one was the real fix all along and this workaround is no longer required.
- Loading branch information