This middleware acts in the same way as SkyDNS. We might add options to allow it to be behave different, but for now it will suffice. A Corefile like: .:1053 { etcd miek.nl proxy . 8.8.8.8:53 } will perform lookup in etcd and proxy everything not miek.nl to Google for further resolution. The internal etcd forwarding *also* uses the proxy infrastructure, meaning you get health check and such for (almost) free
8 lines
180 B
Go
8 lines
180 B
Go
package middleware
|
|
|
|
import "github.com/miekg/dns"
|
|
|
|
func Exchange(c *dns.Client, m *dns.Msg, server string) (*dns.Msg, error) {
|
|
r, _, err := c.Exchange(m, server)
|
|
return r, err
|
|
}
|