diff options
author | Florian Obser <florian@cvs.openbsd.org> | 2021-09-14 07:51:52 +0000 |
---|---|---|
committer | Florian Obser <florian@cvs.openbsd.org> | 2021-09-14 07:51:52 +0000 |
commit | 90c8f892e599e1cc7acdb9cc1004e8883ad576bb (patch) | |
tree | ef4d3fbfb6ab464a1aac9e251f6186d960d005bf /sys | |
parent | 781850460c884ebbafa6d1cb976c8ab30bf1f22e (diff) |
When the dhcp server is unreachable via unicast UDP retry broadcast.
The only indication we get is sendto(2) failing, so if our UDP packet
is silently dropped somewhere we won't notice.
This has been observed in the wild with a dhcp server at the remote
end of a VPN. The dhcp server is reachable via broadcast so we get an
initial lease. However the server is not in the same subnet as the
lease we are getting so to reach it unicast we depend on a default
route being set. When the VPN goes down we lose the default route [*]
and when dhcpleased then tries to renew the lease (unicast), sendto(2)
fails with "network unreachable".
[*] The exact mechanics on how this happens are unclear. I.e. why
didn't dhcpleased(8) see a link-state change and transitioned to
REBOOTING / INIT? Regardless, we shouldn't ignore sendto(2) errors.
Reported by stsp, OK benno
Diffstat (limited to 'sys')
0 files changed, 0 insertions, 0 deletions