Conditional Forwarder Zone does not forward TXT records that start with underscore _ #2036
-
|
I am unsure if this is a bug and I should post this as an issue, or if I just not have the correct configuration on my Technitium instance. ProblemTechnitium does not seem to forward TXT records that start with an underscore. For example: will not return the TXT record, but will return the txt record. I have been prepending both commands with Setup
On the other hand, if the TXT record does not start with underscore, there is no problem. help (?) In reality I'm trying to set up the ACME DNS-01 challenge, and _acme-challenge.mydomain.com records are failing to resolve. |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 6 replies
-
|
Thanks for the post. I tried the steps you have provided and not able to reproduce the issue. Its working very well here. I would suggest that you share a screenshot of the zone to show all records. You can also export the zone and share the records in text format instead of screenshot. I would also recommend that you use the built in DNS Client tool on the admin panel to do these tests and share the complete output you see in there for both the This Server and Cloudflare tests. |
Beta Was this translation helpful? Give feedback.
-
|
Thanks for the reply and for taking the time to look at this. I ran the DNS queries using the client tool and I discovered something else. When using "This Server {this-server}" and "Recursive Query {recursive-resolver}", a (newly created) TXT record starting with underscore created in cloudflare resolves just fine. But when selecting "System DNS {system-dns}" it doesn't resolve. Here is the output: Also, here is the forward zone. When a (newly created) TXT record does not start with underscore, there all three "This Server {this-server}", "Recursive Query {recursive-resolver}" and "System DNS {system-dns}" include the txt data in the answer section. I think there is something I don't understand entirely, but my guess is that my problem is related to a propagation issue into the System DNS. Ultimately, this affects the rest of the clients in my local network. --- some minutes later I waited a bit and tried the test again without deleting the records. Now "System DNS {system-dns}" resolves it too. But, this slow propagation into the System DNS is making my DNS-01 acme challenges fail. So, any further advice is appreciated. The dig commands keep failing to resolve regardless of this tests. I'm quite puzzled by this. |
Beta Was this translation helpful? Give feedback.
-
|
Alright, I spent some more time trying to figure out what is happening. I think I misdiagnosed myself in my first post. I am now able to reproduce the issue I'm having consistently. Here is what (I think) I know.
To reproduce:
In technitium's cache browser, I can see the response for the TXT record is empty, it includes the SOA record, and it has a TTL of Below is an example of the cache for So, in the particular case of the ACME DNS-01 challenge, if the first request for the TXT record of _acme-challenge.mydomain.com happens to be empty because of propagation or timing issues, then it stays like that for 30 min in technitium's cache. The ACME DNS-01 challenge fails much earlier than that, after about 5 min. Finally, something interesting is that when using the dns client tab in the web app, after step 1. above. I see the following: For "Recursive Query {recursive-resolver}" For "This Server {this-server}" and "System DNS {system-dns}". is it ok that the ExtendedRCODE are not the same? |
Beta Was this translation helpful? Give feedback.
You're welcome. All ACME clients provide an option to add a delay to verify the TXT record. This option exist precisely for this reason since if you add a TXT record on your primary name server, it may take a while for the secondary name servers to sync that record. Thus it prevents your local DNS resolver from caching a negative response when it queries a secondary name server which is yet to sync the TXT record from the primary name server.
I would suggest to add a delay of about 30 sec and see if that works. If not then increase it to say 1 min and test again.