serverwentdown / dns64 Goto Github PK
View Code? Open in Web Editor NEWCoreDNS plugin to run a DNS64 server
License: Apache License 2.0
CoreDNS plugin to run a DNS64 server
License: Apache License 2.0
Hi,
I'm trying to build DNS64 plugin with recent coredns code and github.com/missdeer/proxy (an updated version of github.com/coredns/proxy) in a go1.13 fresh docker env and get this error when I add DNS64 plugin :
# GO111MODULE=auto go clean -modcache && GO111MODULE=auto go mod tidy && GO111MODULE=auto go build
<...>
go: finding golang.org/x/text v0.3.2
go: finding gopkg.in/square/go-jose.v2 v2.3.1
# github.com/serverwentdown/dns64
./dns64.go:65:22: r.DNS64.Proxy.Lookup undefined (type proxy.Proxy has no field or method Lookup)
./setup.go:60:12: undefined: proxy.NewLookup
#
Beside I "generated" a go.mod for DNS64 plugin (unsure if it was necessary) :
module github.com/serverwentdown/dns64
go 1.13
replace (
github.com/coredns/coredns v1.6.3 => /go/src/github.com/coredns/coredns
github.com/miekg/dns v1.1.3 => github.com/miekg/dns v1.1.17
github.com/missdeer/proxy v0.0.0-20190830011929-ab38cbb8fdfa => /go/src/github.com/missdeer/proxy
golang.org/x/net v0.0.0-20190813000000-74dc4d7220e7 => golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7
)
require (
github.com/caddyserver/caddy v1.0.3
github.com/coredns/coredns v1.6.3
github.com/dnstap/golang-dnstap v0.1.0 // indirect
github.com/farsightsec/golang-framestream v0.0.0-20190425193708-fa4b164d59b8 // indirect
github.com/klauspost/cpuid v1.2.1 // indirect
github.com/mholt/certmagic v0.7.0 // indirect
github.com/miekg/dns v1.1.17
github.com/missdeer/proxy v0.0.0-20190830011929-ab38cbb8fdfa
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 // indirect
github.com/prometheus/procfs v0.0.4 // indirect
golang.org/x/net v0.0.0-20190912160710-24e19bdeb0f2 // indirect
golang.org/x/sys v0.0.0-20190912141932-bc967efca4b8 // indirect
google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51 // indirect
google.golang.org/grpc v1.23.1 // indirect
)
I may have done something wrong (I am totally unfamiliar/new to Go..).
Except for DNS64 plugin everything compiles and works (coredns & the external proxy plugin). But I don't know how to solve this DNS64 error neither exactly where it's coming from.. maybe the proxy plugin or coredns version I'm using are too recent ? I just don't know.
Some help would be nice. Thanks.
Feature Request
I am testing Kubernetes ipv6-only in a ipv4-only environment (company IT network). A problem is that when a process in the ipv6 space makes a AAAA query the DNS may actually get a AAAA response and (correctly) return it to the process.
The problem is that my ipv6 test environment does not have ipv6 access to the internet for reasons out of my control.
I would like a configuration option that forces all external queries to be A (ipv4) and be translated to ipv6 using the prefix. E.g; translateAll: yes
.
I have not even included CoreDNS+dns64 in my Kubernetes ipv6-only cluster yet, so if this can already be configured I apologize, but if so, please update the documentation.
In bind9
this can be done with an exclude { any; }
in the dns64
configuration. As a work-around I can use a local bind9 but then I would not test the coredns dns64 plugin properly.
I think this is a good plugin to have by default. @fturib (I think?) expressed interest as well. Could you possibly work together and push for upstream inclusion?
Was trying to work out a dockerfile for dns64, but hit this error:
github.com/coredns/coredns/vendor/github.com/openzipkin/zipkin-go-opentracing
github.com/coredns/coredns/plugin/whoami
github.com/mholt/caddy/onevent/hook
github.com/mholt/caddy/onevent
github.com/serverwentdown/dns64
# github.com/serverwentdown/dns64
../../serverwentdown/dns64/dns64.go:65:22: r.DNS64.Proxy.Lookup undefined (type proxy.Proxy has no field or method Lookup)
../../serverwentdown/dns64/setup.go:59:12: undefined: proxy.NewLookup
github.com/coredns/coredns/vendor/github.com/DataDog/dd-trace-go/tracer
github.com/coredns/coredns/vendor/github.com/DataDog/dd-trace-go/opentracing
How to replicate it:
FROM golang:1.12
ENV GO111MODULE=off
ENV TAG=v1.4.0
RUN mkdir -p $GOPATH/src/github.com/coredns \
&& cd $GOPATH/src/github.com/coredns/ \
&& git clone --branch ${TAG} https://github.com/coredns/coredns \
&& go get -d -v github.com/serverwentdown/dns64 \
&& cd coredns \
&& cp plugin.cfg /tmp \
&& echo dns64:github.com/serverwentdown/dns64 > plugin.cfg \
&& cat /tmp/plugin.cfg >> plugin.cfg \
&& go generate \
&& make \
&& coredns -plugins
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.