-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
In v0.33.0 dnstap
can no longer parse DNS records with DNSSEC/RRSIG RRs
#18854
Comments
This is the trace logging the exact same DNS query & response
The |
I see in the error, the fourth "bytes received" is quite different bad
good
Looking at the correct DNS response to the test query, the lower number seems more reasonable to me and I can see how getting the length incorrectly too long, and incorporating lots of extra spurious data, would cause the record parser to flag the packet as invalid. NOTE: The
This will only record the queries & responses when NOTE: the |
I have confirmed this is NOT an issue for v0.32.2 on RHEL9 - DNSSEC/RRSIG records are correctly parsed using this version
NOTE: For me, using the v0.32.2 binary provided by OEM required two environment variables to be set
The first one was a required setting related to On RHEL9 these settings can be put into |
👋 Thanks for the report and detailed config(s) @james-stevens . I was able to reproduce this locally on Ubuntu, using Indeed the warning shows up in v0.33.0 but not in v0.32.0 or v0.32.2. I'll paste my findings for the record. The next step is to sort out what caused this 😓
|
Ok, I think I tracked this down. In Vector That dependency crate upgrade from We can see from the warning message in the Vector log that this is the rdata type we are receiving:
Inspecting the relevant code, it looks like that rdata type was previously considered "Unknown" by the vector/lib/dnsmsg-parser/src/dns_message_parser.rs Lines 747 to 750 in 8a5b67e
So this is a case of an upstream dependency upgrade silently (our existing tests didn't cover this case) introducing logic that results in a functional regression in Vector. |
I am working on the fix for this. |
thanks, mate !! |
that was quick ! |
A note for the community
Problem
In v0.33.0
dnstap
can no longer succesfully parse DNS records with DNSSEC/RRSIG records and fails with aWARN
(see below)The exact same DNSSEC/RRSIG records could be successfully parsed by v0.32.1
The same issue happens on RHEL9 and Alpine v3.18 - Bug appears in
dnstap
records sent from eitherdnsdist
(tested on both RHEL9 & Alpine) orunbound
(only tested on RHEL9)Configuration
Example Data
dig @192.168.1.145 +dnssec nominet.uk
Additional Context
No response
References
No response
The text was updated successfully, but these errors were encountered: