I have a suggestion: if the client requests are from ipv4 network, the server prefers ipv4 first, then try ipv6. And if the requests are from ipv6 network, the server should try ipv6 first, then try ipv4.
I split this post into its own thread since its a separate feature request and not directly tied to the troubleshooting in the other ticket. Thanks!
That's an interesting idea but I think the primary flaw is that it conflates the network the ACME client is on and the network the server being contacted for validation is on. They aren't necessarily the same.
It also strikes me as something fairly non-standard, do you know of any other implementations of this idea? The method we use today is closer to the "happy eyeballs" methodology that is common across this space and I suspect easier to explain to folks than an approach based on the address family of the ACME client request.
I don’t see any other implementations. That’s just my thoughts.
When a user is requesting from ipv4 network, probably he prefers ipv4 than ipv6, although there are both A record and AAAA record on his domain.
It also might be possible that his ipv6 address is not (good) route-able to the letsencryptCA’s ipv6 network. That’s why he prefers ipv4 to connect to letsencrypt CA server.
Anyway, I think there might be something the CA server can do here.
There is no inherent reason why an IPv4 client should cause an IPv4 connection from the server. If you don’t want IPv6, don’t advertise it in your DNS records. It’s as simple as that. If your IPv6 connection is flaky, fix the problem instead of creating more and more workarounds.