The code in dns_common.py tells:
# DNS updates take time to propagate and checking to see if the update has occurred is not
# reliable (the machine this code is running on might be able to see an update before
# the ACME server). So: we sleep for a short amount of time we believe to be long enough.
but I do not agree: there's no such thing as "DNS propagation" there's "DNS cache invalidation".
So I bet the only fix this option provides is to wait for the providers to actually setup their DNS after their receive the order from their API. For example I use OVH in France, and it can take like 110s±100s to setup in their side, so either I set the wait time to 300s, either I have random failures (it's not a cache invalidation issue, it's just the time it take for their script to update their DNS configuration).
If that's true, active waiting should work, but we should not send the DNS requests to the locally configured resolver (with cache, and thus invalidation again), we should send them directly to the right name server, dig-speaking it would not look like:
dig _acme-challenge.mdk.fr TXT +short
but:
dig @$(dig mdk.fr NS +short | head -n 1) _acme-challenge.mdk.fr TXT +short
(I know a Python POC would be nicer than a bash/dig POC, but I bet the dig one is shorter?)
Am I wrong?
The code in dns_common.py tells:
but I do not agree: there's no such thing as "DNS propagation" there's "DNS cache invalidation".
So I bet the only fix this option provides is to wait for the providers to actually setup their DNS after their receive the order from their API. For example I use OVH in France, and it can take like 110s±100s to setup in their side, so either I set the wait time to 300s, either I have random failures (it's not a cache invalidation issue, it's just the time it take for their script to update their DNS configuration).
If that's true, active waiting should work, but we should not send the DNS requests to the locally configured resolver (with cache, and thus invalidation again), we should send them directly to the right name server, dig-speaking it would not look like:
but:
(I know a Python POC would be nicer than a bash/dig POC, but I bet the dig one is shorter?)
Am I wrong?