2020-08-31
Adding static IPv4 routes for devices that still need those
I decided to have a look whether I can set up the static routes like those needed to get ads-b data out to plane finder via the dhcp server. This works a lot better than having to set those routes by hand after a reboot. This can be done with the rfc3442 classless static routes extension in DHCP, which isn't supported out of the box by isc dhcpd. But there is support in the dhclient configuration on raspbian, so I only had to add the server side. All the samples I could find for adding this to the server side added arrays of bytes which is harder to read/comprehend. I had a look at the dhcp-options manpage which showed the option to add a structured record with IPv4 addresses. Main configuration adding the option:option rfc3442-classless-static-routes code 121 = array of { integer 8, ip-address, ip-address }; # netmask bit count, destination, viaSpecific host configuration using the option with the current address for pfclient-upload.planefinder.net. Which may change!host joy { hardware ethernet b8:27:eb:ae:ad:47; option rfc3442-classless-static-routes 32 80.84.58.2 10.42.2.1; }This pushes route to 80.84.58.2/32 via 10.42.2.1. Hosts that get this option via dhcp should ignore the default router option so if you need that too you will need to add a route for 0.0.0.0/0. In my specific usecase I don't want to set a default IPv4 route.