Can you share any of such recorded packets? The existing pcap file would be useful. isc.org is example of signed name with TTL=300. If you have names you don't want to share publicly only, please send them to me. I am RHEL maintainer, but haven't noticed a behaviour you are describing. It sounds like worth investigation. I doubt any state of TTL should make requests different.

Do I understand it correctly you have enabled a dnssec validation? If you see those on RHEL derivative, consider please filling a bug on bugzilla.redhat.com. Even if not using rhel directly, it should be fixed there.

Have you tried a CentOS 9 version also?

On 08. 07. 22 19:17, James Brown via Dnsmasq-discuss wrote:
Hello:

We use dnsmasq as a local caching resolver (binding to ::1) and are currently upgrading some systems to EL8 (Rocky Linux 8 specifically, which is a rebuild of Red Hat 8). We've noticed that a fairly significant fraction of name resolutions fail when `|option edns0|` is enabled in /etc/resolv.conf and dnsmasq is being used; that is to say, when resolv.conf looks like

|option edns0
nameserver ::1|

These failures manifest for queries issued very close to a TTL expiry (that is to say, if you request a name X with a TTL of 300 seconds, then wait 299.99 seconds, then request X again, it will fail about ½ of the time).

I've tried backporting dnsmasq 2.86, but it shows the same behavior.

I used tcpdump to capture the actual request issued and the Wireshark protocol analyzer says that dnsmasq is emitting malformed DNS queries.

The query from libc to dnsmasq looks correct and the "additional records" portion of the packet contains the following bytes:

00 00 29 04 b0  00 00 00 00 00 00

Based on my reading of EDNS0, this looks right (domain name is 0 bytes long and is the root domain; packet type is 0x29 == 41).

However, on failed requests, the packet sent from dnsmasq to the upstream DNS server ends with the following "additional records" section:

c0 0c 00 05 00 01 00 00 0c e4 00

This looks like a compressed label, since it starts with 0xc...? Which doesn't make any sense to put in the OPT section?

The rest of the query looks fine.

Neither add-mac nor add-subnet is set, and edns-packet-max is set to 4096.

If I turn off dnsmasq and send queries directly to the upstream nameserver, I don't ever see any of these "c00c" packets emitted, so I am pretty confident that these bad bytes are coming from dnsmasq itself.

Has anyone ever seen anything like this? I'm glad to privately share pcaps if that would help.

James Brown
Infrastructure Architect

_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss

--
Petr Menšík
Software Engineer, RHEL
Red Hat,http://www.redhat.com/
PGP: DFCF908DB7C87E8E529925BC4931CA5B6C9FC5CB
_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss

Reply via email to