mirror of
https://github.com/hickory-dns/hickory-dns.git
synced 2026-04-25 03:05:51 +03:00
[GH-ISSUE #2514] DNSSEC Not Working as Expected #1009
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#1009
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 @ngocnha on GitHub (Oct 17, 2024).
Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/2514
Upon successful DNSSEC configuration on my hickory-dns server, I anticipated receiving an NSEC record in response to a query for a non-existent RRset. However, the server is only returning an SOA record.
I'm certain DNSSEC is configured correctly. I'm using the latest hickory-dns version pulled from the git repository. What could I be missing?
@djc commented on GitHub (Oct 17, 2024):
Do you have a minimal reproduction?
@ngocnha commented on GitHub (Oct 17, 2024):
The parameters I used to build hickory-dns are in this command line
cargo build --target x86_64-unknown-linux-musl --release -p hickory-dns --no-default-features --features sqlite,dnssec,dnssec-ring,dns-over-quic
I've configured a server on ip addr 45.63.4.93. You can query it to verify.
dig @45.63.4.93 -p 1053 abcdef.pro-service.top A +dnssec +multiline
@marcus0x62 commented on GitHub (Oct 18, 2024):
This is related to the issue(s) addressed in #2502. Right now, the recursor does not do any dnssec processing of any error response (which include negative responses.)
There are also some bugs related to nsec3 record validation that are not addressed in that PR, but for the basic case of properly delegated secure zone returning a nodata response with an nsec proof, 2502 should provide a complete fix.
@marcus0x62 commented on GitHub (Oct 20, 2024):
Hi @ngocnha, I've merged #2502 into our main branch. Please check this out and see if it fixes the problem you are seeing. Note: the domain you included in your example does not appear to return NSEC records, at least not for abcdef.pro-service.top. If you query against google dns, it will return an EDE error code 12 - NSEC Missing. I rebuilt a server from the current main branch and verified a query against that server did return NSEC records for another domain which I know is configured correctly.
@ngocnha commented on GitHub (Oct 21, 2024):
I pulled the code from the main branch and built it. I configured DNSSEC according to the example template, and it can automatically generate RRSIG records, but I don't know why it still can't automatically generate NSEC records.
@marcus0x62 commented on GitHub (Oct 21, 2024):
Can you post your named.toml file?
@ngocnha commented on GitHub (Oct 21, 2024):
This is my config file
pro-service.top.zone
and my build command
@divergentdave commented on GitHub (Oct 21, 2024):
I think you may need to add
nx_proof_kind = "nsec"ornx_proof_kind = { nsec3 = { iterations = 0 } }belowenable_dnssec = trueto generate those records. (I haven't tested this myself FWIW)@marcus0x62 commented on GitHub (Oct 21, 2024):
I just tested it. @divergentdave is correct.
@ngocnha commented on GitHub (Oct 21, 2024):
Thank @marcus0x62 and @divergentdave for your support. I think I'm missing something, but I couldn't find this option in the document and examples. I just tried searching based on your suggestion and found it somewhere in the testing code.
@marcus0x62 commented on GitHub (Oct 21, 2024):
@ngocnha I don't think you missed anything. I think our documentation is a bit behind the code, and for this case we should probably have a default instead of requiring a selection for each zone. Sorry for the confusion.