Replies: 2 comments
-
We only do an auth query for ANY requests if there are NO records available at all, otherwise we answer with what we happen have in cache. (But note the CNAME chains from the cache might trigger additional resolving even for ANY queries). In general there has been a tendency to move away form fully supporting ANY queries. See https://datatracker.ietf.org/doc/html/rfc8482, section 4.1 in particular. It is unwise to depend on any particular behaviour for ANY queries. |
Beta Was this translation helpful? Give feedback.
0 replies
-
Moving this to a discussion. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
This is not a support question, I have read about opensource and will send support questions to the IRC channel, GitHub Discussions or the mailing list.
I have read and understood the 'out in the open' support policy
Program: Recursor
Issue type: Maybe bug report
Short description
When pdns-recursor is configured with packetcache or recordcache enabled, when qtype ANY queries may or may not be answered from records in cache.
The behaviour I'm observing is that when a given record has multiple qtype defined with different TTL,
recordcache.refresh_on_ttl_perc=15
does not refresh the record of the particular expiring qtype. I would assume thatrecordcache.refresh_on_ttl_perc
would refresh the about to expire qtype.When a qtype has expired from pdns-recursor cache, ANY qtype would not return that record, but as soon a query is received for the expiring qtype, a new request to authoritative is made, returning the expected result to the client, but also now returned for ANY qtype.
Should not pdns-recursor refresh each qtype when they are about to expire from ANY qtype ? This is the behaviour I'm observing with 8.8.8.8
Environment
Steps to reproduce
Configuration:
watch -n 1 dig in ANY pants-on.net @<ip>
A
record has a TTL for 60 seconds for debugging purposeA
record TTL expire and noA
record is returned from previousdig
requestA
query is made to pants-on.net, the proper record is returned andANY
request also return the record with a fresh TTLExpected behaviour
I would expect that when
A
record fromANY
request expire, it would be refreshed. Assuming theA
record non longer exist, thennegative_ttl
would apply and just stop being returned.Actual behaviour
See above for details
Beta Was this translation helpful? Give feedback.
All reactions