

Yeah, the issue is that people’s resolvers are wildly different and I guess some of them do not cater to weird and wacky self-hosting setups (most people just use anycast highly-available DNS, usually provided by a registrar or by some other company).
I had a hunch that resolvers break because one of my nodes does not have a public IPv6 address: meaning,
- node2: externally-facing node, I host it from my home, IP
178.44.116.85, acts as NSns1. It has IPv6 connectivity but no external IPv6; - node4: a cloud VPS that I rent. Externally-facing, with IPv4
91.219.150.30and IPv62a06:dd00:1:4::4189, acts as NSns2.
If node4 decides to break, then ns2 becomes unavailable - but since resolvers can see that ns1 does not have an IPv4 address, and since everyone knows that IPv6 is better because 6 is greater than 4, then these resolvers would always prefer ns2, even though it’s clearly down.
This could be solved by asking my ISP to set up a static IPv6 prefix for me (they already provide static IPv4), except my ISP does not do that, unfortunately. I could also rent another VPS (so I would have two VPS’es, giving me some resilience from downtimes) but that means extra $$$… anyway, I guess I should probably test the IPv6-preference hypothesis first and then act on the results.
At this point I pretty much think this may be the exact case - and it may work in reverse: “since
ns2has AAAA listed then it’s an IPv6-capable deployment and we are allowed to fall back to IPv4, but sincens1lacks the AAAA record, then we won’t even consider falling back tons1ifns2is down”.Or maybe another scenario:
ns2’s AAAA recordns2’s A recordns1…ns2was down, repeating the cycle