From b571cb8097a31ed700b3613afd0737c88ab94f0f Mon Sep 17 00:00:00 2001 From: Frank Schroeder Date: Mon, 7 Aug 2017 11:10:22 +0200 Subject: [PATCH] dns: keep NS names in consul domain --- agent/dns.go | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/agent/dns.go b/agent/dns.go index 4808b9ac8..92e956341 100644 --- a/agent/dns.go +++ b/agent/dns.go @@ -272,7 +272,7 @@ func (d *DNSServer) addSOA(msg *dns.Msg) { func (d *DNSServer) nameservers(edns bool) (ns []dns.RR, extra []dns.RR) { // get server names and store them in a map to randomize the output servers := map[string]net.IP{} - for name, addr := range d.agent.delegate.ServerAddrs() { + for _, addr := range d.agent.delegate.ServerAddrs() { host, _, err := net.SplitHostPort(addr) if err != nil { d.logger.Println("[WARN] Unable to parse address %v, got error: %v", addr, err) @@ -283,17 +283,9 @@ func (d *DNSServer) nameservers(edns bool) (ns []dns.RR, extra []dns.RR) { continue } - // name is "name.dc" and domain is "consul." - // we want "name.node.dc.consul." - lastdot := strings.LastIndexByte(name, '.') - nodeName := name[:lastdot] - if InvalidDnsRe.MatchString(nodeName) { - d.logger.Printf("[WARN] dns: Node name %q is not a valid dns host name, will not be added to NS record", nodeName) - continue - } - fqdn := nodeName + ".node" + name[lastdot:] + "." + d.domain - // create a consistent, unique and sanitized name for the server + r := strings.NewReplacer(".", "-", ":", "-") + fqdn := "server-" + r.Replace(host) + "." + d.domain fqdn = dns.Fqdn(strings.ToLower(fqdn)) servers[fqdn] = ip