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.

