What are these 100.x.x.x addresses?
tailscale.com
tailscale.com
It took a bit of digging through RFC6598 to realize that, if it's only being used properly (and I had never seen it used directly), then it would be generally available for an overlay network.
Since then we've run into a couple of other edge cases where people are using CGNAT. More reason for us to get our IPv6 support sorted out.
The problem I ran into with ipv6 is that the OS (either macOS or Android, I don't recall which unfortunately) won't query for AAAA records when it does DNS lookups unless there is a DNS resolver configured that is reachable over ipv6.
ZeroTier doesn't provide its own DNS, so I'd manually entered A and AAAA records into Google Cloud DNS on a domain I own, but because of that quirk I wasn't able to use ipv6 since my Internet links at home and work were both ipv4 only.
One solution would be to run a local DNS service like Cloudflare DNS-over-HTTPS proxy and then enter ::1 (IPv6 loopback) as your DNS. I bet that would work, but I haven't tried it. It also improves privacy and security on untrusted networks. Not sure how it handles the captive portal problem though. Maybe Cloudflare's service has a shim for that.
MacOS used to do the simple thing, but at some point in a recent release they started being "smart" and added this annoying restriction.
We have unfortunately discovered phone carriers who hang out cgnat addresses directly to phones, so we will need to do something else there.
The phone carrier situation is similar - CGNAT address is assigned to customer device on radio interface, whether that device is phone or LTE-based router is customer decision.
RFC6598 requires that, when used as a routable address, the device must be able to do address translation across router interfaces when the addresses are identical on two different interfaces.
0.x.x.x is currently incompatible with WordPress: https://github.com/WordPress/WordPress/blob/641c632b0c9fde4e...
To put it another way, 0.x.x.x and 100.x.x.x don't have equivalent properties in WordPress. 0.x.x.x is blocked in some cases to prevent SSRF attacks. 100.x.x.x is considered a "normal" IP address.