1
0
Fork 0
Go to file
Ambrose Chua 4efeb9f3bf
Merge pull request #4 from Nordix/issue-3
Add "translateAll" parameter. Fix for #3
2018-10-31 16:12:54 +08:00
LICENSE Create LICENSE 2017-12-24 05:16:24 +08:00
README.md Add warning 2017-12-26 23:47:10 +08:00
dns64.go Add "translateAll" parameter. Fix for #3 2018-10-28 10:03:13 +01:00
dns64_test.go Initial commit based on @miekg's work 2017-12-20 15:16:50 +08:00
setup.go Add "translateAll" parameter. Fix for #3 2018-10-28 10:03:13 +01:00
setup_test.go bugfix user defined prefix can not setup correctly 2018-06-27 17:10:24 +08:00

README.md

dns64

The dns64 plugin implements the DNS64 IPv6 transition mechanism. From Wikipedia:

DNS64 describes a DNS server that when asked for a domain's AAAA records, but only finds A records, synthesizes the AAAA records from the A records.

The synthesis in only performed if the query came in via IPv6.

TODO

Not all features required by DNS64 are implemented, only basic AAAA synthesis.

  • Resolve PTR records
  • Follow CNAME records
  • Make resolver DNSSEC aware

Syntax

dns64 {
    upstream ADDRESS...
    prefix IPV6
}
  • upstream specifies the upstream resolver.
  • prefix specifies any local IPv6 prefix to use, in addition to the well known prefix (64:ff9b::/96).

Examples

In recursive resolver mode:

# Perform dns64 AAAA synthesizing using 8.8.8.8 for resolving any A 
dns64 {
    upstream 8.8.8.8:53
}
proxy . 8.8.8.8:53

To make DNS64 resolve authoritatively, do:

dns64 {
    upstream localhost:53
    # caveat: additional round trip through networking stack
}
file example.com.db

See Also

https://en.wikipedia.org/wiki/IPv6_transition_mechanism#DNS64 and RFC 6147.

Installation

$ go get github.com/coredns/coredns
$ go get github.com/serverwentdown/dns64
$ cd $GOPATH/src/github.com/coredns/coredns
$ vim plugin.cfg
# Add the line dns64:github.com/serverwentdown/dns64 before the hosts middleware
$ go generate
$ go build
$ ./coredns -plugins | grep dns64