My upstream provider occasionally renumbers my network.

Based on previous e-mails from you[^1], your ISP _rarely_-like once a
year-changes the IP addresses assigned to you. Has this changed?

My ISP, Xfinity, also rarely changes the IP addresses leased to me. In
fact the only time they have changed is when my server/router misses
the renewal window[^2] almost always due to poorly timed upgrades and
turning off the circuit it belongs to due to the need to mess with wiring
that shares the same circuit. I'm now very good at doing such stuff
when my DHCP, DHCPv6-ND, and DHCPv6-PD leases are pretty fresh. Obviously
"acts of god" like a power outage or a very long maintenance window on
Xfinity's side can cause the renewal window to be missed.

Because of the rarity of such events, I rely on a simple ksh(1) script
that uses sed(1) to substitute the new IP addresses and prefixes. I
recommend taking the time to write a proper script because the rarity of
such events makes it such that you _will_ forget to edit certain files.
My setup is fairly static so I rarely need to manipulate this script.
Now if these events are happening a lot more frequently than they used
to, I think your best best is a cron(8) job that runs every 30 minutes
or whatever that compares the existing IP addresses to what they should
be; and in the event they have changed, automatically run the ksh(1)
script.

Last, I use ULAs as much as possible. The only config on my router that
needs to be manipulated are hostname.if(5) files, pf.conf(5),
unbound.conf(5), ntpd.conf(5), and rad.conf(5). Even for files like
unbound.conf(5), I use a ULA for the interface that it listens on and
only need to change the outgoing-interface. If you have other servers
that get IPs based on this server, I'd just configure them to use
slaacd(8) for a globally-routable IP and a ULA for static configuration
that any service on it uses since you control the routing stack. This
may even be possible when hosts are separated across the global Internet
so long as you use something like wg(4) to tunnel the traffic that uses
ULAs.

The most annoying problem that couldn't really be fixed with cron(8) and
ksh(1) in the event Xfinity changes such that my leases are changing
frequently is one of my hostname.wg(5) files relies on a site-to-site
connection to a VPS I have. Whenever the DHCPv6-ND address assigned to
my external interface changes, I also need to change the config on my
VPS. Again, this is so rare that I do this manually; but if this were
to change, I'd simply convert my site-to-site config to one where my
router/server relies on keepalive packets.

[^1]: https://marc.info/?l=openbsd-misc&m=172532010412538&w=2
[^2]: Xfinity lease windows follow the following cadence:
        * ~First two weeks of the month: 4-day leases.
        * ~Next week: 1-day leases.
        * ~Last two weeks: 2-hour leases.
        * ~Last day of the month: 4-hour leases.

Reply via email to