mirror of
https://github.com/hickory-dns/hickory-dns.git
synced 2026-04-25 11:15:54 +03:00
[GH-ISSUE #1187] Can not query Glue Records with Resolver #625
Labels
No labels
blocked
breaking-change
bug
bug:critical
bug:tests
cleanup
compliance
compliance
compliance
crate:all
crate:client
crate:native-tls
crate:proto
crate:recursor
crate:resolver
crate:resolver
crate:rustls
crate:server
crate:util
dependencies
docs
duplicate
easy
easy
enhance
enhance
enhance
feature:dns-over-https
feature:dns-over-quic
feature:dns-over-tls
feature:dnsssec
feature:global_lb
feature:mdns
feature:tsig
features:edns
has workaround
ops
perf
platform:WASM
platform:android
platform:fuchsia
platform:linux
platform:macos
platform:windows
pull-request
question
test
tools
tools
trust
unclear
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/hickory-dns#625
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @wavenator on GitHub (Aug 11, 2020).
Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/1187
What I was trying to do is to query one of the Tld Nameservers
com - a.gtld-servers.net. 192.5.6.30for the NS record ofgoogle.com.The result is an error:
To Reproduce
Expected behavior
Getting a list of Authoritative Nameservers
System:
Version:
Crate: resolver
Version: 0.19.5
@bluejekyll commented on GitHub (Aug 11, 2020):
Thank you for the report. I'm wondering if there is a resolution expectation here that isn't being met. The Resolver currently won't traverse the graph as necessary to go from the root name server to the glue records. This requires recursive resolution, which isn't (yet) implemented by the resolver.
If you could enable logging for the resolver,
debugwould probably be enough, and that would probably show that the query to the root node is getting no records as a response.@wavenator commented on GitHub (Aug 11, 2020):
The problem with glue records is where the response lays in the packet. Specifically, it lays inside the Authority RRs. When the Answer RRs are empty (as in that case), the library panics with
NoRecordsFound@bluejekyll commented on GitHub (Aug 11, 2020):
Ah, I see. Today we only use the
answersandadditionalssections of the response for looking for records. That happens here:https://github.com/bluejekyll/trust-dns/blob/main/crates/resolver/src/lookup_state.rs#L298-L301
To fix this we could simply
chaintheauthoritiessection into the that search like theadditionals, and that would fix this particular issue. I was being conservative in the search of the response packet before, but maybe we should just include it?@wavenator commented on GitHub (Aug 11, 2020):
I highly recommend chaining Authority RR too. Or at least stop returning NoRecordsFound. Using Wireshark I can see that the response not only included Authority RRs but also Additionals RRs
@bluejekyll commented on GitHub (Aug 11, 2020):
I don't think I see any strong reason not to do this. Is this something you'd be interested in contributing a fix for?
@wavenator commented on GitHub (Aug 12, 2020):
I will definitely give it a try. I'll keep commenting here if I will get into trouble. Thanks!
@wavenator commented on GitHub (Aug 12, 2020):
#1188 Added a pull request
@bluejekyll commented on GitHub (Aug 12, 2020):
Fixed in #1188