|
11 months ago | |
---|---|---|
LICENSE | 3 years ago | |
README.md | 11 months ago | |
dns64.go | 1 year ago | |
dns64_test.go | 1 year ago | |
go.mod | 1 year ago | |
go.sum | 1 year ago | |
setup.go | 1 year ago | |
setup_test.go | 1 year ago |
DEPRECATED: This plugin has been merged upstream. Credit goes to @SuperQ.
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.
Not all features required by DNS64 are implemented, only basic AAAA synthesis.
The syntax has changed since 20 September 2019. "upstream" has been renamed to proxy
Translate with the well known prefix. Applies to all queries
dns64
Use a custom prefix
dns64 64:1337::/96
# Or
dns64 {
prefix 64:1337::/96
}
Use a reverse proxy, with a custom prefix
dns64 {
proxy . 1.1.1.1 1.0.0.1
prefix 64:1337::/96
}
Enable translation even if an existing AAAA record is present
dns64 {
translateAll
}
prefix
specifies any local IPv6 prefix to use, instead of the well known prefix (64:ff9b::/96)proxy
optionally specifies upstream DNS protocol addresses like the proxy
pluginRFC 6147
See CoreDNS Documentation for more information on how to include this plugin. A DNS64 example is available too.
Here's the summary:
package main
import (
_ "github.com/coredns/coredns/core/plugin"
_ "github.com/coredns/proxy"
_ "github.com/serverwentdown/dns64"
"github.com/coredns/coredns/core/dnsserver"
"github.com/coredns/coredns/coremain"
)
var additionalDirectives = []string{
"dns64",
"proxy",
}
func init() {
dnsserver.Directives = append(dnsserver.Directives, additionalDirectives...)
}
func main() {
coremain.Run()
}