mirror of
https://github.com/hickory-dns/hickory-dns.git
synced 2026-04-25 03:05:51 +03:00
[GH-ISSUE #98] [Server] Support DNS64 (RFC 6147) #347
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#347
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 @vi on GitHub (Feb 28, 2017).
Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/98
I struggle to find something for DNS64 that is not BIND.
@bluejekyll commented on GitHub (Feb 28, 2017):
I'm happy to take feature requests. I haven't had plans to support something like this, as it's not in my own use cases. It looks like a fairly strait forward implementation.
Is your plan to use this to auto-populate AAAA records for a NAT64? If so, I would see this as a magic option that could as easily be implemented with a dynamic update where on registration of the A record, you would perform the auto translation to the AAAA and IPv6 address. Is there a reason that doesn't work that I'm missing?
@vi commented on GitHub (Feb 28, 2017):
I haven't tried to use trust-dns [yet]. Just saw that it is aimed to be BIND replacement, but also that RFC 6147 is not mentioned in README list of RFCs.
@bluejekyll commented on GitHub (Mar 1, 2017):
I am definitely aiming for the project to be able to be used in the place of BIND, but I very early on decided not to make it a drop-in replacement. So it will not be 100% compatible with the BIND feature set. In this particular case, it seems like an RFC which provides value for configurations where you want some type of server logic to kick in to auto response to AAAA for NAT64 setups.
If someone requires this, I'll consider adding it, but I still fail to see why it couldn't just be part of deployment/management scripts as opposed to baked into the DNS server itself. Thanks for your interest in the project!
@vi commented on GitHub (Mar 1, 2017):
Does trust-dns have executable configuration files (like in Lua or Python often have) and can be told to turn e.g.
A 178.172.160.4intoAAAA fd11:1:1:ffff::b2ac:a004wherefd11:1:1:ffff::is configurable prefix andb2ac:a004is IPv4 address in disguise for all resolved addresses?@bluejekyll commented on GitHub (Mar 1, 2017):
The server supports dynamic DNS with SIG0 authentication. I've always imagine tools would be build around that interface to perform updates of the server. In that context, you could use any scripting language you want to manage it. I haven't considered scripted configs before, but it would be feasible... not on my road-map right now.
For example, in this case I would imagine the tool that is being used to manage the zones would be responsible for the logic you describe... The TRust-DNS client and server support atomic update operations, on a per record-set basis, which should make scripting this pretty straightforward.
@vi commented on GitHub (Mar 1, 2017):
DNS64 is mostly not about being authoritative DNS server for some zone, but more like a DNS proxy that also patches request on the fly, changing all IPv4 addresses into IPv6 ones for NAT64.
@bluejekyll commented on GitHub (Mar 1, 2017):
Ah, thanks for the explanation. That makes sense to me. If your look at TRust-DNS as something you want to use and this is a blocker to that, I can try and fit it into my development at a future date. I'm also happy to accept PRs.
@briansmith commented on GitHub (Jan 1, 2018):
I'm not the OP, but this is my plan.
Imagine that you want to NAT64/DNS64 for the entire internet: IPv6-only LAN (not dual stack) that can access IPv4-only websites. In this case we need to give every IPv4-only-site on the internet an IPv6 address. That means that ideally the recursive resolver, not the server, would implement DNS64, and it would happen on-the-fly; i.e. require no disk/memory storage. That is, the recursive resolver would cache the AAAA records and throw away the A records from which it synthesized the AAAA records.
@briansmith commented on GitHub (Jan 2, 2018):
In particular, see https://tools.ietf.org/html/rfc6144#section-3.1.4:
In particular, It doesn't work for Scenerio 1 (IPv6 network to IPv4 internet), which is the scenerio I described above.
@briansmith commented on GitHub (Jan 2, 2018):
It may be useful to add some knobs to this to control the behavior w.r.t. DNSSEC:
#2 and #3 are complementary. I would suggest splitting out this kind of DNSSEC-stuff into a separate issue; I'm recording it here just to draw attention to the issue.