classless route not updated when receving a new RFC3442 message on RENEW or REBIND
Describe the bug If a DHCP server RENEW or REBIND a lease with the same IP but updated classless routes, routes are not modified o, the client
To Reproduce Steps to reproduce the behavior:
- Start a DHCP client and get a lease
- Modify classless route configuration in the DHCP server, and emit a RENEW lease
- Observe that the route are not updated on the client
- If you release the lease, and get a new one, the route are applied properly (via ip route for example)
Expected behavior A clear and concise description of what you expected to happen: I am expecting that the new classless route configuration sent by the server to the client to be applied
Environment:
-
ISC DHCP version: Any release I know, at least since 2016.
-
OS: Observed on Ubuntu 14 and newer, as well as debian.
Additional Information I know where the bug is, and tested a local patch. Found it originaly in https://www.apt-browse.org/browse/ubuntu/trusty/main/amd64/isc-dhcp-client/4.2.4-7ubuntu12/file/etc/dhcp/dhclient-exit-hooks.d/rfc3442-classless-routes line 13: test for reason RENEW or rebind should be added. I found that the bug was also present here: https://github.com/isc-projects/dhcp/blob/master/client/scripts/linux#L287. This if bloc should not be dependent of this condition https://github.com/isc-projects/dhcp/blob/master/client/scripts/linux#L272, and always been executed in the case of BOUND|RENEW|REBIND|REBOOT)
Some initial questions
- Are you sure your feature is not already implemented in the latest ISC DHCP version? I don't find the patch here
- Are you sure your requrested feature is not already impemented in Kea? Perhaps it's a good time to consider migration? N/A
- Are you sure what you would like to do is not possible using some other mechanisms? No. It require a patch of the script to be fixed.
- Have you discussed your idea on dhcp-users and/or dhcp-workers mailing lists? No.
Is your feature request related to a problem? Please describe. If you have a setup dependent of classless route and you use lease renew to modify or advertise new routes, then the change will not be automatically propagated unless you reboot the clients. that can lead in disconnection and partition of servers clusters.
Describe the solution you'd like rfc3442 should be applied on REBOOT, REBIND, RENEW and BIND, not just REBOOT and BIND.
Describe alternatives you've considered I have no alternative except patching the hook script during provisionning
Additional context https://datatracker.ietf.org/doc/html/rfc3442 don't seems to reduce the application of the RFC only to REBOOT or BIND messages.
Funding its development ISC DHCP is run by ISC, which is a small non-profit organization without any government funding or any permanent sponsorship organizations. Are you able and willing to participate financially in the development costs? I will consider it.
Participating in development Are you willing to participate in the feature development? ISC team always tries to make a feature as generic as possible, so it can be used in wide variety of situations. That means the proposed solution may be a bit different that you initially thought. Are you willing to take part in the design discussions? Are you willing to test an unreleased engineering code? I am greatly willing to provide a patch.
Contacting you How can ISC reach you to discuss this matter further? If you do not specify any means such as e-mail, jabber id or a telephone, we may send you a message on github with questions when we have them. You can contact me at pauloonesand@gmail.com