running dhclient on a statically configured interface?

From: Jon Clausen <freebsd-questions_at_ymmv.dk>
Date: Mon, 06 Jan 2025 17:57:01 UTC
Hi

I have a slightly overengineered network at home, which is based on the idea
that all routing is handled by (vnet) jails.

Central in the network is a "link net" that all routing instances have one
interface in, while the other interface goes to "whereever". It has a lot of
flexibility, and it lets me have dedicated devices do dedicated things
without affecting the rest of the network.

One of the jails is the "uplink router". This one knows the public ipv4 address
and runs PF in order to do NAT. The uplink is business grade, with a proper
public, static address, with no carrier grade NAT  and no filtering.

This is all good.


A while ago my ISP was aquired by some other ISP.


The other day, the ISP provided (redundant) DNS stopped working for a while. It
was fixed later, but not before I had written "support" to ask what was
going on. (Basically: "what's the point of having redundant resolvers if
they're both allowed to go offline at the same time?")

The explanation was that one of the servers had malfunctioned, which was
fixed, but the other one had been fine all along.

It then became apparent that they were referring to a *different* ip for one
of the pair of resolvers, than the one I had configured.

And now it turns out that this new ISP expects all customers to run dhcp
clients, even on the static IPs. This makes me uncomfortable. I have a lot
of things set up under the assumption that my IP is *my* IP, and that it
stays the same - as in *static*

But on top of that, my setup really doesn't match the "single device that
does all the things".


ISPs reasoning is that changes such as replacing the IP of a resolver can be
deployed in the network without much effort on their part, by using DHCP.
And for this reason they simply do not support communicating such a change
by any other method.

So when they decided to replace one of the resolvers, they just did that,
and changed the DHCP server to match.

I do understand their POV, and if push comes to shove, I'm sure their legal
department has this situation covered in the EULA somewhere.


BUT:
Aside from the "surprise element" that some misconfiguration of their DHCP
server might provide, I am *also* not running a local resolver in the
"uplink" jail.
So even if the uplink *was* a DHCP client, I would still need to have the
resolver info propagated to the "resolver jail" that I have for that
purpose.


So now finally the question(s):

Is it feasible to run dhclient(8) on the uplink interface, but still have
the interface itself be statically configured?

And secondly, is there some method to propagate the options that dhclient
receives from the server for other non-standard purposes?


I am not very well acquainted with DHCP client stuffs, so all hints are
welcome and appreciated.

br
/jon
-- 
YMMV