]> granicus.if.org Git - pdns/commitdiff
Add 2 simple NTA tests
authorPieter Lexis <pieter.lexis@powerdns.com>
Fri, 27 May 2016 11:18:00 +0000 (13:18 +0200)
committerPieter Lexis <pieter.lexis@powerdns.com>
Tue, 7 Jun 2016 09:17:34 +0000 (11:17 +0200)
regression-tests.recursor-dnssec/recursortests.py
regression-tests.recursor-dnssec/test_NTA.py [new file with mode: 0644]

index 93fb8e11b52fc6e34271b3fcaa18861030110631..1d2db69404ad09d947ce8fdec6c2c1fe2dc22295 100644 (file)
@@ -101,6 +101,7 @@ ns.secure.example.       3600 IN A    {prefix}.9
 host1.secure.example.    3600 IN A    192.0.2.2
 cname.secure.example.    3600 IN CNAME host1.secure.example.
 cname-to-insecure.secure.example. 3600 IN CNAME node1.insecure.example.
+cname-to-bogus.secure.example.    3600 IN CNAME ted.bogus.example.
 
 host1.sub.secure.example. 3600 IN A    192.0.2.11
 
diff --git a/regression-tests.recursor-dnssec/test_NTA.py b/regression-tests.recursor-dnssec/test_NTA.py
new file mode 100644 (file)
index 0000000..7f58c5b
--- /dev/null
@@ -0,0 +1,31 @@
+import dns
+from recursortests import RecursorTest
+
+class testSimple(RecursorTest):
+    _confdir = 'NTA'
+
+    _config_template = """dnssec=validate"""
+    _lua_config_file = """addNTA("bogus.example")"""
+
+    def testDirectNTA(self):
+        """Ensure a direct query to a bogus name with an NTA is Insecure"""
+
+        msg = dns.message.make_query("ted.bogus.example.", dns.rdatatype.A)
+        msg.flags = dns.flags.from_text('AD RD')
+        msg.use_edns(edns=0, ednsflags=dns.flags.edns_from_text('DO'))
+
+        res = self.sendUDPQuery(msg)
+
+        self.assertMessageHasFlags(res, ['QR', 'RA', 'RD'], ['DO'])
+        self.assertRcodeEqual(res, dns.rcode.NOERROR)
+
+    def testCNAMENTA(self):
+        """Ensure a CNAME from a secure zone to a bogus one with an NTA is Insecure"""
+        msg = dns.message.make_query("cname-to-bogus.secure.example.", dns.rdatatype.A)
+        msg.flags = dns.flags.from_text('AD RD')
+        msg.use_edns(edns=0, ednsflags=dns.flags.edns_from_text('DO'))
+
+        res = self.sendUDPQuery(msg)
+
+        self.assertMessageHasFlags(res, ['QR', 'RA', 'RD'], ['DO'])
+        self.assertRcodeEqual(res, dns.rcode.NOERROR)