plugin/kubernetes: fix SOA response for non-apex queries (#4592)
* fix SOA response for non-apex queries Signed-off-by: Chris O'Haver <cohaver@infoblox.com> * handle mixed case Signed-off-by: Chris O'Haver <cohaver@infoblox.com> * do full string compare Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
This commit is contained in:
parent
e1931d48d1
commit
d6d8a9974b
3 changed files with 17 additions and 2 deletions
|
@ -43,7 +43,9 @@ func (k Kubernetes) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.M
|
|||
case dns.TypeSRV:
|
||||
records, extra, err = plugin.SRV(ctx, &k, zone, state, plugin.Options{})
|
||||
case dns.TypeSOA:
|
||||
records, err = plugin.SOA(ctx, &k, zone, state, plugin.Options{})
|
||||
if qname == zone {
|
||||
records, err = plugin.SOA(ctx, &k, zone, state, plugin.Options{})
|
||||
}
|
||||
case dns.TypeAXFR, dns.TypeIXFR:
|
||||
return dns.RcodeRefused, nil
|
||||
case dns.TypeNS:
|
||||
|
@ -82,7 +84,6 @@ func (k Kubernetes) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.M
|
|||
m.Authoritative = true
|
||||
m.Answer = append(m.Answer, records...)
|
||||
m.Extra = append(m.Extra, extra...)
|
||||
|
||||
w.WriteMsg(m)
|
||||
return dns.RcodeSuccess, nil
|
||||
}
|
||||
|
|
|
@ -38,6 +38,13 @@ var dnsPreserveCaseCases = []test.Case{
|
|||
test.A("svc1.testns.svc.cLuStEr.LoCaL. 5 IN A 10.0.0.1"),
|
||||
},
|
||||
},
|
||||
{
|
||||
Qname: "Cluster.local.", Qtype: dns.TypeSOA,
|
||||
Rcode: dns.RcodeSuccess,
|
||||
Answer: []dns.RR{
|
||||
test.SOA("Cluster.local. 5 IN SOA ns.dns.Cluster.local. hostmaster.Cluster.local. 1499347823 7200 1800 86400 5"),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
func TestPreserveCase(t *testing.T) {
|
||||
|
|
|
@ -396,6 +396,13 @@ var dnsTestCases = []test.Case{
|
|||
test.AAAA("svc-dual-stack.testns.svc.cluster.local. 5 IN AAAA 10::3"),
|
||||
},
|
||||
},
|
||||
{
|
||||
Qname: "svc1.testns.svc.cluster.local.", Qtype: dns.TypeSOA,
|
||||
Rcode: dns.RcodeSuccess,
|
||||
Ns: []dns.RR{
|
||||
test.SOA("cluster.local. 5 IN SOA ns.dns.cluster.local. hostmaster.cluster.local. 1499347823 7200 1800 86400 5"),
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
func TestServeDNS(t *testing.T) {
|
||||
|
|
Loading…
Add table
Reference in a new issue