diff --git a/node/dns.go b/node/dns.go
index 3aaeeff0f69f372d41f64c498ef6a0556bdfaf93..59b3edb2c3bdbd8bbb226d74fb36b375e7220763 100644
--- a/node/dns.go
+++ b/node/dns.go
@@ -19,9 +19,7 @@ const (
 )
 
 func newDNSHandler(n *Node, origin string, nameservers []string) dns.Handler {
-	if !strings.HasSuffix(origin, ".") {
-		origin += "."
-	}
+	origin = ensureFinalDot(origin)
 
 	dnsz := newDNSZone(n.lb, origin, nameservers)
 	mux := dns.NewServeMux()
@@ -90,7 +88,7 @@ func (d *dnsZone) ServeDNS(w dns.ResponseWriter, req *dns.Msg) {
 					Class:  dns.ClassINET,
 					Ttl:    nsTTL,
 				},
-				Ns: ns,
+				Ns: ensureFinalDot(ns),
 			})
 		}
 
@@ -238,3 +236,11 @@ func runDNSServerWithContext(ctx context.Context, srv *dns.Server) error {
 	}()
 	return srv.ListenAndServe()
 }
+
+func ensureFinalDot(s string) string {
+	if !strings.HasSuffix(s, ".") {
+		return s + "."
+	}
+	return s
+}
+