Merge pull request #1277 from weaveworks/1275-negative-dns

Return NXDOMAIN when we don't have entries

and drop the non-authoritative special case for recursive dns.

Fixes #1275.
This commit is contained in:
Matthias Radestock committed 2015-08-10 17:19:44 +01:00
commit 755a949f6d
3 files changed
+17 -21

No files matched your search

+5 -5
View File
@@ -134,6 +134,10 @@ func (d *DNSServer) handleLocal(defaultMaxResponseSize int) func(dns.ResponseWri
}
addrs := d.ns.Lookup(hostname)
if len(addrs) == 0 {
d.errorResponse(req, dns.RcodeNameError, w)
return
}
response := dns.Msg{}
response.RecursionAvailable = true
@@ -233,12 +237,8 @@ func (d *DNSServer) handleRecursive(client *dns.Client, defaultMaxResponseSize i
d.ns.debugf("error trying %s: %v", server, err)
continue
}
if response.Rcode != dns.RcodeSuccess && !response.Authoritative {
d.ns.debugf("non-authoritative error trying %s: %v", server, response.Rcode)
continue
}
d.ns.debugf("response: %+v", response)
response.SetReply(req)
response.Id = req.Id
if err := w.WriteMsg(response); err != nil {
d.ns.infof("error responding: %v", err)
}
-16
View File
@@ -1,16 +0,0 @@
#! /bin/bash
. ./config.sh
C1=10.2.0.78
start_suite "Cross host dns-lookup"
weave_on $HOST1 launch
weave_on $HOST2 launch $HOST1
start_container $HOST1 $C1/24 --name c1
assert "weave_on $HOST2 dns-lookup c1" $C1
end_suite
+12
View File
@@ -0,0 +1,12 @@
#! /bin/bash
. ./config.sh
start_suite "Negative DNS queries"
weave_on $HOST1 launch
start_container_with_dns $HOST1 --name c1
assert_raises "exec_on $HOST1 c1 dig A foo.weave.local | grep 'status: NXDOMAIN'"
assert_raises "exec_on $HOST1 c1 dig A foo.invalid | grep 'status: NXDOMAIN'"
end_suite