From c9ff6ee5b6c8cb1263c4fc726cfc781e3b8e0064 Mon Sep 17 00:00:00 2001 From: Peter van Dijk Date: Thu, 16 Aug 2018 22:46:41 +0200 Subject: [PATCH] add test for parent/child confusion --- modules/tinydnsbackend/data | 16 +- modules/tinydnsbackend/data.cdb | Bin 1352115 -> 1352532 bytes .../rectify-axfr/expected_result | 15 ++ .../tinydns-data-check/expected_result | 5 +- .../00dnssec-grabkeys/expected_result.dnssec | 2 +- .../tests/1dyndns-correct-zone/command | 55 +++++ .../tests/1dyndns-correct-zone/description | 2 + .../1dyndns-correct-zone/expected_result | 49 +++++ .../tests/1dyndns-correct-zone/skip.nodyndns | 0 .../expected_result.nsec3 | 4 +- .../expected_result | 2 +- .../expected_result.nsec3 | 2 +- .../expected_result.nsec3-optout | 76 +++++++ .../expected_result | 4 + .../expected_result.nsec3 | 8 + .../expected_result.nsec3-optout | 189 ++++++++++++++++++ .../tests/5dyndns-restore-zone/command | 2 +- .../tests/verify-dnssec-zone/expected_result | 15 ++ .../expected_result.nsec3-optout | 15 ++ regression-tests/zones/.gitignore | 1 + regression-tests/zones/test.dyndns.orig | 2 - 21 files changed, 449 insertions(+), 15 deletions(-) create mode 100755 regression-tests/tests/1dyndns-correct-zone/command create mode 100644 regression-tests/tests/1dyndns-correct-zone/description create mode 100644 regression-tests/tests/1dyndns-correct-zone/expected_result create mode 100644 regression-tests/tests/1dyndns-correct-zone/skip.nodyndns create mode 100644 regression-tests/tests/1dyndns-update-nsec3params-with-others/expected_result.nsec3-optout create mode 100644 regression-tests/tests/1dyndns-update-nsec3params/expected_result.nsec3-optout diff --git a/modules/tinydnsbackend/data b/modules/tinydnsbackend/data index 02e788864c..72c7a00632 100644 --- a/modules/tinydnsbackend/data +++ b/modules/tinydnsbackend/data @@ -20106,8 +20106,8 @@ :hightype.example.com:65534:\007\355\046\000\001:120 :host-0.example.com:108:\000PV\233\000\347:120 :host-1.example.com:109:\000PV\233\000\347\176W:120 -:hostmaster.mb.example.com:8:\300\035:120 -:hostmaster.mb.example.com:8:\300\072:120 +:hostmaster.mb.example.com:8:\004phil\303\177:120 +:hostmaster.mb.example.com:8:\006sheila\303\177:120 :hwinfo.example.com:13:\003abc\003def:120 :ipv6.example.com:28:\040\001\006\250\000\000\000\001\002\020K\377\376KLa:120 :location.example.com:29:\0002\026\023\213\044\323e\176\273\347\100\000\230\230\020:120 @@ -20115,9 +20115,9 @@ :location.example.com:29:\000\022\026\023\213\044\310\373\201D\030\300\000\230\230\020:120 :location.example.com:29:\000\042\026\023t\3331\320\201D\030\300\000\230\230\020:120 :multitext.example.com:16:\015text\040part\040one\015text\040part\040two\017text\040part\040three:120 -:phil.mb.example.com:7:\002pc\300\044:120 -:philip.mb.example.com:9:\300\072:120 -:sheila.mb.example.com:7:\004bill\300\044:120 +:phil.mb.example.com:7:\002pc\303\177:120 +:philip.mb.example.com:9:\303\216:120 +:sheila.mb.example.com:7:\004bill\303\177:120 :text.example.com:16:\025Hi\054\040this\040is\040some\040text:120 :text0.example.com:16:\014k\075rsa\073\040p\075one:120 :text1.example.com:16:\014k\075rsa\073\040p\075one:120 @@ -20186,6 +20186,8 @@ Cwithin-server.test.com:outpost.example.com.:3600 Cwww.test.com:server1.test.com.:3600 Ztest.com:ns1.test.com.:ahu.example.com.:2005092501:28800:7200:604800:86400:3600 #2012060701 auto axfr-get +&sub.test.dyndns::ns1.test.dyndns.:3600 +&sub.test.dyndns::ns2.test.dyndns.:3600 &test.dyndns::ns1.test.dyndns.:3600 &test.dyndns::ns2.test.dyndns.:3600 +\052.wild.test.dyndns:127.0.1.255:3600 @@ -20209,6 +20211,10 @@ Ztest.com:ns1.test.com.:ahu.example.com.:2005092501:28800:7200:604800:86400:3600 Ccname1.test.dyndns:host-1.test.dyndns.:3600 Ccname2.test.dyndns:host-2.test.dyndns.:3600 Ztest.dyndns:ns1.test.dyndns.:ahu.example.dyndns.:2012060701:28800:7200:604800:86400:3600 +#2012060701 auto axfr-get +&sub.test.dyndns::ns1.test.dyndns.:3600 +&sub.test.dyndns::ns2.test.dyndns.:3600 +Zsub.test.dyndns:ns1.test.dyndns.:ahu.example.dyndns.:2012060701:28800:7200:604800:86400:3600 #2005092501 auto axfr-get &wtest.com::..:3600 &wtest.com::ns1.wtest.com.:3600 diff --git a/modules/tinydnsbackend/data.cdb b/modules/tinydnsbackend/data.cdb index 976aaa277b917d9fb4b10d0fb4a3e97eef76321c..e2bf2c3e586eccfb4a193fe5470ee76200d5e45c 100644 GIT binary patch delta 5161 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 delta 4916 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 opcode: UPDATE, status: NOERROR, id: [id] +;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 +;; ZONE SECTION: +;test.dyndns. IN SOA + +* Check that the name cannot be found +1 sub.test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400 +Rcode: 3 (Non-Existent domain), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='occluded.sub.test.dyndns.', qtype=ANY +* Create a record in the child zone +Answer: +;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id] +;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 +;; ZONE SECTION: +;sub.test.dyndns. IN SOA + +* Check that the child zone record is visible +0 occluded.sub.test.dyndns. IN CNAME 3600 child. +Rcode: 0 (No Error), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='occluded.sub.test.dyndns.', qtype=A +* Remove child record +Answer: +;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id] +;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 +;; ZONE SECTION: +;sub.test.dyndns. IN SOA + +* Check that the occluded name is invisible again +1 sub.test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400 +Rcode: 3 (Non-Existent domain), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='occluded.sub.test.dyndns.', qtype=ANY +* Remove parent record +Answer: +;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id] +;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 +;; ZONE SECTION: +;test.dyndns. IN SOA + +check that we cleaned up correctly +--- Start: diff start step.1 --- +no difference +--- End: diff start step.1 --- + diff --git a/regression-tests/tests/1dyndns-correct-zone/skip.nodyndns b/regression-tests/tests/1dyndns-correct-zone/skip.nodyndns new file mode 100644 index 0000000000..e69de29bb2 diff --git a/regression-tests/tests/1dyndns-update-delegate-in-between/expected_result.nsec3 b/regression-tests/tests/1dyndns-update-delegate-in-between/expected_result.nsec3 index f63abb396b..b58351de24 100644 --- a/regression-tests/tests/1dyndns-update-delegate-in-between/expected_result.nsec3 +++ b/regression-tests/tests/1dyndns-update-delegate-in-between/expected_result.nsec3 @@ -286,8 +286,8 @@ Rcode: 3 (Non-Existent domain), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 Reply to question for qname='b.b.host.test.dyndns.', qtype=ANY 1 fgun0ru4oe3g76tr551hg97mpu37b6mi.test.dyndns. IN NSEC3 86400 1 [flags] 1 abcd FQU365VN7BR5CSV8CG6NE9V8HA6D008P 1 fgun0ru4oe3g76tr551hg97mpu37b6mi.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... -1 lresbbp3lv8blgj9fsgtdmm4q7vj3d6j.test.dyndns. IN NSEC3 86400 1 [flags] 1 abcd Q75PNOE7PB74PND6OGN44T5BTUURBHRF A RRSIG -1 lresbbp3lv8blgj9fsgtdmm4q7vj3d6j.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 ncja3un028k84h59aoloj6bh06s80071.test.dyndns. IN NSEC3 86400 1 [flags] 1 abcd Q75PNOE7PB74PND6OGN44T5BTUURBHRF NS +1 ncja3un028k84h59aoloj6bh06s80071.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... 1 r9s1cj8dkmnmenjn95sti8nhh9utpq9k.test.dyndns. IN NSEC3 86400 1 [flags] 1 abcd S30OPRHQREKH5SUH6L530KD668ELK9OS 1 r9s1cj8dkmnmenjn95sti8nhh9utpq9k.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... 1 test.dyndns. IN RRSIG 3600 SOA 13 2 3600 [expiry] [inception] [keytag] test.dyndns. ... diff --git a/regression-tests/tests/1dyndns-update-nsec3params-with-others/expected_result b/regression-tests/tests/1dyndns-update-nsec3params-with-others/expected_result index d7d3c79157..85380832c6 100644 --- a/regression-tests/tests/1dyndns-update-nsec3params-with-others/expected_result +++ b/regression-tests/tests/1dyndns-update-nsec3params-with-others/expected_result @@ -21,7 +21,7 @@ Rcode: 0 (No Error), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 Reply to question for qname='test.dyndns.', qtype=NSEC3PARAM 1 ac2jl1kik929tr9i5rfcmbucm547n51a.test.dyndns. IN NSEC3 86400 1 [flags] 10 dcbe EE295AK1NDT9O0RLL1A4RPPB4NAOV4QM 1 ac2jl1kik929tr9i5rfcmbucm547n51a.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... -1 lavvds84bcal6n6qnavn3q1u4jcpjev9.test.dyndns. IN NSEC3 86400 1 [flags] 10 dcbe PE3H59F3RU6VID4OK0T4TSU6D0NDRVHS A RRSIG +1 lavvds84bcal6n6qnavn3q1u4jcpjev9.test.dyndns. IN NSEC3 86400 1 [flags] 10 dcbe N6N81NDT5KU73E19K457TOUB8E6D2LPM A RRSIG 1 lavvds84bcal6n6qnavn3q1u4jcpjev9.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... 1 test.dyndns. IN RRSIG 3600 SOA 13 2 3600 [expiry] [inception] [keytag] test.dyndns. ... 1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400 diff --git a/regression-tests/tests/1dyndns-update-nsec3params-with-others/expected_result.nsec3 b/regression-tests/tests/1dyndns-update-nsec3params-with-others/expected_result.nsec3 index c6700fcdb7..aba3c83485 100644 --- a/regression-tests/tests/1dyndns-update-nsec3params-with-others/expected_result.nsec3 +++ b/regression-tests/tests/1dyndns-update-nsec3params-with-others/expected_result.nsec3 @@ -23,7 +23,7 @@ Rcode: 0 (No Error), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 Reply to question for qname='test.dyndns.', qtype=NSEC3PARAM 1 ac2jl1kik929tr9i5rfcmbucm547n51a.test.dyndns. IN NSEC3 86400 1 [flags] 10 dcbe EE295AK1NDT9O0RLL1A4RPPB4NAOV4QM 1 ac2jl1kik929tr9i5rfcmbucm547n51a.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... -1 lavvds84bcal6n6qnavn3q1u4jcpjev9.test.dyndns. IN NSEC3 86400 1 [flags] 10 dcbe PE3H59F3RU6VID4OK0T4TSU6D0NDRVHS A RRSIG +1 lavvds84bcal6n6qnavn3q1u4jcpjev9.test.dyndns. IN NSEC3 86400 1 [flags] 10 dcbe N6N81NDT5KU73E19K457TOUB8E6D2LPM A RRSIG 1 lavvds84bcal6n6qnavn3q1u4jcpjev9.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... 1 test.dyndns. IN RRSIG 3600 SOA 13 2 3600 [expiry] [inception] [keytag] test.dyndns. ... 1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400 diff --git a/regression-tests/tests/1dyndns-update-nsec3params-with-others/expected_result.nsec3-optout b/regression-tests/tests/1dyndns-update-nsec3params-with-others/expected_result.nsec3-optout new file mode 100644 index 0000000000..c6700fcdb7 --- /dev/null +++ b/regression-tests/tests/1dyndns-update-nsec3params-with-others/expected_result.nsec3-optout @@ -0,0 +1,76 @@ +0 test.dyndns. IN NSEC3PARAM 86400 1 0 1 abcd 0 test.dyndns. IN RRSIG 86400 NSEC3PARAM 13 2 86400 [expiry] [inception] [keytag] test.dyndns. ... 2 . IN OPT 32768 Rcode: 0 (No Error), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 Reply to question for qname='test.dyndns.', qtype=NSEC3PARAM +1 4i84rosksbmegcqfnkf6n6ci093h7rq4.test.dyndns. IN NSEC3 86400 1 [flags] 1 abcd 8PQJV4B3M0LCFMVAE0HP394LC154L1I7 CNAME RRSIG +1 4i84rosksbmegcqfnkf6n6ci093h7rq4.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 dsa3ti9nu3apdsvl3f63qlvakv555sr6.test.dyndns. IN NSEC3 86400 1 [flags] 1 abcd FQU365VN7BR5CSV8CG6NE9V8HA6D008P A RRSIG +1 dsa3ti9nu3apdsvl3f63qlvakv555sr6.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 lmrsadk2bb62qpruaules5i5ap06cp55.test.dyndns. IN NSEC3 86400 1 [flags] 1 abcd LRESBBP3LV8BLGJ9FSGTDMM4Q7VJ3D6J +1 lmrsadk2bb62qpruaules5i5ap06cp55.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN RRSIG 3600 SOA 13 2 3600 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400 +2 . IN OPT 32768 +Rcode: 3 (Non-Existent domain), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='c.host.test.dyndns.', qtype=A +Answer: +;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id] +;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 +;; ZONE SECTION: +;test.dyndns. IN SOA + +0 test.dyndns. IN NSEC3PARAM 86400 1 0 10 dcbe +0 test.dyndns. IN RRSIG 86400 NSEC3PARAM 13 2 86400 [expiry] [inception] [keytag] test.dyndns. ... +2 . IN OPT 32768 +Rcode: 0 (No Error), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='test.dyndns.', qtype=NSEC3PARAM +1 ac2jl1kik929tr9i5rfcmbucm547n51a.test.dyndns. IN NSEC3 86400 1 [flags] 10 dcbe EE295AK1NDT9O0RLL1A4RPPB4NAOV4QM +1 ac2jl1kik929tr9i5rfcmbucm547n51a.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 lavvds84bcal6n6qnavn3q1u4jcpjev9.test.dyndns. IN NSEC3 86400 1 [flags] 10 dcbe PE3H59F3RU6VID4OK0T4TSU6D0NDRVHS A RRSIG +1 lavvds84bcal6n6qnavn3q1u4jcpjev9.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN RRSIG 3600 SOA 13 2 3600 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400 +2 . IN OPT 32768 +Rcode: 3 (Non-Existent domain), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='c.host.test.dyndns.', qtype=A +Answer: +;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id] +;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 +;; ZONE SECTION: +;test.dyndns. IN SOA + +1 test.dyndns. IN NSEC 86400 cname1.test.dyndns. NS SOA MX RRSIG NSEC DNSKEY +1 test.dyndns. IN RRSIG 3600 SOA 13 2 3600 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN RRSIG 86400 NSEC 13 2 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400 +2 . IN OPT 32768 +Rcode: 0 (No Error), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='test.dyndns.', qtype=NSEC3PARAM +1 a.host.test.dyndns. IN NSEC 86400 e.host.test.dyndns. A RRSIG NSEC +1 a.host.test.dyndns. IN RRSIG 86400 NSEC 13 4 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 delete-add.test.dyndns. IN NSEC 86400 a.host.test.dyndns. A TXT RRSIG NSEC +1 delete-add.test.dyndns. IN RRSIG 86400 NSEC 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN RRSIG 3600 SOA 13 2 3600 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400 +2 . IN OPT 32768 +Rcode: 3 (Non-Existent domain), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='c.host.test.dyndns.', qtype=A +Answer: +;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id] +;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 +;; ZONE SECTION: +;test.dyndns. IN SOA + +0 test.dyndns. IN NSEC3PARAM 86400 1 0 1 abcd +0 test.dyndns. IN RRSIG 86400 NSEC3PARAM 13 2 86400 [expiry] [inception] [keytag] test.dyndns. ... +2 . IN OPT 32768 +Rcode: 0 (No Error), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='test.dyndns.', qtype=NSEC3PARAM +1 4i84rosksbmegcqfnkf6n6ci093h7rq4.test.dyndns. IN NSEC3 86400 1 [flags] 1 abcd 8PQJV4B3M0LCFMVAE0HP394LC154L1I7 CNAME RRSIG +1 4i84rosksbmegcqfnkf6n6ci093h7rq4.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 dsa3ti9nu3apdsvl3f63qlvakv555sr6.test.dyndns. IN NSEC3 86400 1 [flags] 1 abcd FQU365VN7BR5CSV8CG6NE9V8HA6D008P A RRSIG +1 dsa3ti9nu3apdsvl3f63qlvakv555sr6.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 lmrsadk2bb62qpruaules5i5ap06cp55.test.dyndns. IN NSEC3 86400 1 [flags] 1 abcd LRESBBP3LV8BLGJ9FSGTDMM4Q7VJ3D6J +1 lmrsadk2bb62qpruaules5i5ap06cp55.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN RRSIG 3600 SOA 13 2 3600 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400 +2 . IN OPT 32768 +Rcode: 3 (Non-Existent domain), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='c.host.test.dyndns.', qtype=A diff --git a/regression-tests/tests/1dyndns-update-nsec3params/expected_result b/regression-tests/tests/1dyndns-update-nsec3params/expected_result index 01bbf05d84..78314d356a 100644 --- a/regression-tests/tests/1dyndns-update-nsec3params/expected_result +++ b/regression-tests/tests/1dyndns-update-nsec3params/expected_result @@ -46,6 +46,8 @@ Check if NSEC3PARAM record exists and A-record added < ns1.test.dyndns A 0 127.0.0.1 3600 'ns1' 1 < ns2.test.dyndns A 0 127.0.0.2 3600 'ns2' 1 < replace.test.dyndns A 0 127.0.0.1 3600 'replace' 1 +< sub.test.dyndns NS 0 ns1.test.dyndns 3600 'sub' 0 +< sub.test.dyndns NS 0 ns2.test.dyndns 3600 'sub' 0 < test.dyndns MX 10 host-1.test.dyndns 3600 '' 1 < test.dyndns MX 20 host-2.test.dyndns 3600 '' 1 < test.dyndns NS 0 ns1.test.dyndns 3600 '' 1 @@ -70,6 +72,8 @@ Check if NSEC3PARAM record exists and A-record added > ns1.test.dyndns A 0 127.0.0.1 3600 'uba3qp1vffon9pq2r07e7ldrnh5mg90v' 1 > ns2.test.dyndns A 0 127.0.0.2 3600 'pe3h59f3ru6vid4ok0t4tsu6d0ndrvhs' 1 > replace.test.dyndns A 0 127.0.0.1 3600 'hcj69ok6nqcmebhuprvga4kagcb9cfrf' 1 +> sub.test.dyndns NS 0 ns1.test.dyndns 3600 'n6n81ndt5ku73e19k457toub8e6d2lpm' 0 +> sub.test.dyndns NS 0 ns2.test.dyndns 3600 'n6n81ndt5ku73e19k457toub8e6d2lpm' 0 > test.dyndns MX 10 host-1.test.dyndns 3600 '62qbu7pvpt7cm7bdpu7geb3je1l0aure' 1 > test.dyndns MX 20 host-2.test.dyndns 3600 '62qbu7pvpt7cm7bdpu7geb3je1l0aure' 1 > test.dyndns NS 0 ns1.test.dyndns 3600 '62qbu7pvpt7cm7bdpu7geb3je1l0aure' 1 diff --git a/regression-tests/tests/1dyndns-update-nsec3params/expected_result.nsec3 b/regression-tests/tests/1dyndns-update-nsec3params/expected_result.nsec3 index 5d4b3926e8..e794dc6873 100644 --- a/regression-tests/tests/1dyndns-update-nsec3params/expected_result.nsec3 +++ b/regression-tests/tests/1dyndns-update-nsec3params/expected_result.nsec3 @@ -48,6 +48,8 @@ Check if NSEC3PARAM record exists and A-record added < ns1.test.dyndns A 0 127.0.0.1 3600 '2gp5rdnjoq5oospc5o1ih9lali101di8' 1 < ns2.test.dyndns A 0 127.0.0.2 3600 'fqu365vn7br5csv8cg6ne9v8ha6d008p' 1 < replace.test.dyndns A 0 127.0.0.1 3600 'ituduke14pthsno7ii6h5sboshr8rfqs' 1 +< sub.test.dyndns NS 0 ns1.test.dyndns 3600 'ncja3un028k84h59aoloj6bh06s80071' 0 +< sub.test.dyndns NS 0 ns2.test.dyndns 3600 'ncja3un028k84h59aoloj6bh06s80071' 0 < test.dyndns MX 10 host-1.test.dyndns 3600 'u36f0tjooqv1kspatto6qns0vap731v2' 1 < test.dyndns MX 20 host-2.test.dyndns 3600 'u36f0tjooqv1kspatto6qns0vap731v2' 1 < test.dyndns NS 0 ns1.test.dyndns 3600 'u36f0tjooqv1kspatto6qns0vap731v2' 1 @@ -72,6 +74,8 @@ Check if NSEC3PARAM record exists and A-record added > ns1.test.dyndns A 0 127.0.0.1 3600 'uba3qp1vffon9pq2r07e7ldrnh5mg90v' 1 > ns2.test.dyndns A 0 127.0.0.2 3600 'pe3h59f3ru6vid4ok0t4tsu6d0ndrvhs' 1 > replace.test.dyndns A 0 127.0.0.1 3600 'hcj69ok6nqcmebhuprvga4kagcb9cfrf' 1 +> sub.test.dyndns NS 0 ns1.test.dyndns 3600 'n6n81ndt5ku73e19k457toub8e6d2lpm' 0 +> sub.test.dyndns NS 0 ns2.test.dyndns 3600 'n6n81ndt5ku73e19k457toub8e6d2lpm' 0 > test.dyndns MX 10 host-1.test.dyndns 3600 '62qbu7pvpt7cm7bdpu7geb3je1l0aure' 1 > test.dyndns MX 20 host-2.test.dyndns 3600 '62qbu7pvpt7cm7bdpu7geb3je1l0aure' 1 > test.dyndns NS 0 ns1.test.dyndns 3600 '62qbu7pvpt7cm7bdpu7geb3je1l0aure' 1 @@ -122,6 +126,8 @@ Check if NSEC3PARAM is deleted < ns1.test.dyndns A 0 127.0.0.1 3600 '2gp5rdnjoq5oospc5o1ih9lali101di8' 1 < ns2.test.dyndns A 0 127.0.0.2 3600 'fqu365vn7br5csv8cg6ne9v8ha6d008p' 1 < replace.test.dyndns A 0 127.0.0.1 3600 'ituduke14pthsno7ii6h5sboshr8rfqs' 1 +< sub.test.dyndns NS 0 ns1.test.dyndns 3600 'ncja3un028k84h59aoloj6bh06s80071' 0 +< sub.test.dyndns NS 0 ns2.test.dyndns 3600 'ncja3un028k84h59aoloj6bh06s80071' 0 < test.dyndns MX 10 host-1.test.dyndns 3600 'u36f0tjooqv1kspatto6qns0vap731v2' 1 < test.dyndns MX 20 host-2.test.dyndns 3600 'u36f0tjooqv1kspatto6qns0vap731v2' 1 < test.dyndns NS 0 ns1.test.dyndns 3600 'u36f0tjooqv1kspatto6qns0vap731v2' 1 @@ -146,6 +152,8 @@ Check if NSEC3PARAM is deleted > ns1.test.dyndns A 0 127.0.0.1 3600 'ns1' 1 > ns2.test.dyndns A 0 127.0.0.2 3600 'ns2' 1 > replace.test.dyndns A 0 127.0.0.1 3600 'replace' 1 +> sub.test.dyndns NS 0 ns1.test.dyndns 3600 'sub' 0 +> sub.test.dyndns NS 0 ns2.test.dyndns 3600 'sub' 0 > test.dyndns MX 10 host-1.test.dyndns 3600 '' 1 > test.dyndns MX 20 host-2.test.dyndns 3600 '' 1 > test.dyndns NS 0 ns1.test.dyndns 3600 '' 1 diff --git a/regression-tests/tests/1dyndns-update-nsec3params/expected_result.nsec3-optout b/regression-tests/tests/1dyndns-update-nsec3params/expected_result.nsec3-optout new file mode 100644 index 0000000000..d899e4327d --- /dev/null +++ b/regression-tests/tests/1dyndns-update-nsec3params/expected_result.nsec3-optout @@ -0,0 +1,189 @@ +0 test.dyndns. IN NSEC3PARAM 86400 1 0 1 abcd 0 test.dyndns. IN RRSIG 86400 NSEC3PARAM 13 2 86400 [expiry] [inception] [keytag] test.dyndns. ... 2 . IN OPT 32768 Rcode: 0 (No Error), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 Reply to question for qname='test.dyndns.', qtype=NSEC3PARAM +1 4i84rosksbmegcqfnkf6n6ci093h7rq4.test.dyndns. IN NSEC3 86400 1 [flags] 1 abcd 8PQJV4B3M0LCFMVAE0HP394LC154L1I7 CNAME RRSIG +1 4i84rosksbmegcqfnkf6n6ci093h7rq4.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 8ti9tgh8d81frr5vr4o1o5bvko42v9dq.test.dyndns. IN NSEC3 86400 1 [flags] 1 abcd DSA3TI9NU3APDSVL3F63QLVAKV555SR6 A RRSIG +1 8ti9tgh8d81frr5vr4o1o5bvko42v9dq.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 lmrsadk2bb62qpruaules5i5ap06cp55.test.dyndns. IN NSEC3 86400 1 [flags] 1 abcd LRESBBP3LV8BLGJ9FSGTDMM4Q7VJ3D6J +1 lmrsadk2bb62qpruaules5i5ap06cp55.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN RRSIG 3600 SOA 13 2 3600 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400 +2 . IN OPT 32768 +Rcode: 3 (Non-Existent domain), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='b.host.test.dyndns.', qtype=A +Answer: +;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id] +;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 +;; ZONE SECTION: +;test.dyndns. IN SOA + +0 test.dyndns. IN NSEC3PARAM 86400 1 0 10 dcbe +0 test.dyndns. IN RRSIG 86400 NSEC3PARAM 13 2 86400 [expiry] [inception] [keytag] test.dyndns. ... +2 . IN OPT 32768 +Rcode: 0 (No Error), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='test.dyndns.', qtype=NSEC3PARAM +1 ac2jl1kik929tr9i5rfcmbucm547n51a.test.dyndns. IN NSEC3 86400 1 [flags] 10 dcbe EE295AK1NDT9O0RLL1A4RPPB4NAOV4QM +1 ac2jl1kik929tr9i5rfcmbucm547n51a.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN RRSIG 3600 SOA 13 2 3600 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400 +1 uba3qp1vffon9pq2r07e7ldrnh5mg90v.test.dyndns. IN NSEC3 86400 1 [flags] 10 dcbe 4KLD1OCH52V50U3NG1HM8R7960VRSVOM A RRSIG +1 uba3qp1vffon9pq2r07e7ldrnh5mg90v.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +2 . IN OPT 32768 +Rcode: 3 (Non-Existent domain), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='b.host.test.dyndns.', qtype=A +Check if NSEC3PARAM record exists and A-record added +--- Start: diff start step.1 --- +< a.host.test.dyndns A 0 1.1.1.1 3600 'dsa3ti9nu3apdsvl3f63qlvakv555sr6' 1 +< cname1.test.dyndns CNAME 0 host-1.test.dyndns 3600 '8pqjv4b3m0lcfmvae0hp394lc154l1i7' 1 +< cname2.test.dyndns CNAME 0 host-2.test.dyndns 3600 '4i84rosksbmegcqfnkf6n6ci093h7rq4' 1 +< delete-add.test.dyndns A 0 127.0.0.108 3600 'slsck1enia56lrkr5gep7clu9j1o5ifn' 1 +< delete-add.test.dyndns TXT 0 "Should be gone after a while" 3600 'slsck1enia56lrkr5gep7clu9j1o5ifn' 1 +< e.host.test.dyndns A 0 1.1.1.1 3600 '8ti9tgh8d81frr5vr4o1o5bvko42v9dq' 1 +< host-1.test.dyndns A 0 127.0.0.101 3600 'tdhv9cbk13jg8drivldhsl3mji8qqqe2' 1 +< host-2.test.dyndns A 0 127.0.0.102 3600 's30oprhqrekh5suh6l530kd668elk9os' 1 +< host-3.test.dyndns A 0 127.0.0.103 3600 'gou9ao3rkdcnhqldf4056m9oigmtkuh6' 1 +< host.test.dyndns NULL NULL NULL NULL 'lmrsadk2bb62qpruaules5i5ap06cp55' 1 +< multi.test.dyndns A 0 127.0.0.1 3600 'tntcbdfsihhd24nt96bq9973vd019u43' 1 +< multi.test.dyndns A 0 127.0.0.2 3600 'tntcbdfsihhd24nt96bq9973vd019u43' 1 +< multi.test.dyndns A 0 127.0.0.3 3600 'tntcbdfsihhd24nt96bq9973vd019u43' 1 +< ns1.test.dyndns A 0 127.0.0.1 3600 '2gp5rdnjoq5oospc5o1ih9lali101di8' 1 +< ns2.test.dyndns A 0 127.0.0.2 3600 'fqu365vn7br5csv8cg6ne9v8ha6d008p' 1 +< replace.test.dyndns A 0 127.0.0.1 3600 'ituduke14pthsno7ii6h5sboshr8rfqs' 1 +< test.dyndns MX 10 host-1.test.dyndns 3600 'u36f0tjooqv1kspatto6qns0vap731v2' 1 +< test.dyndns MX 20 host-2.test.dyndns 3600 'u36f0tjooqv1kspatto6qns0vap731v2' 1 +< test.dyndns NS 0 ns1.test.dyndns 3600 'u36f0tjooqv1kspatto6qns0vap731v2' 1 +< test.dyndns NS 0 ns2.test.dyndns 3600 'u36f0tjooqv1kspatto6qns0vap731v2' 1 +< ttl.test.dyndns A 0 127.0.0.1 3600 'q75pnoe7pb74pnd6ogn44t5btuurbhrf' 1 +< txt.test.dyndns TXT 0 "This is some text" 3600 'lbj6718q27qsm7q020pqmhj0emg1neac' 1 +< wild.test.dyndns NULL NULL NULL NULL 'r9s1cj8dkmnmenjn95sti8nhh9utpq9k' 1 +< *.wild.test.dyndns A 0 127.0.1.255 3600 'lresbbp3lv8blgj9fsgtdmm4q7vj3d6j' 1 +> a.host.test.dyndns A 0 1.1.1.1 3600 '56ack4bc22vbotda2c16ovse4fn25rq9' 1 +> cname1.test.dyndns CNAME 0 host-1.test.dyndns 3600 '8uit4g0g6a2bhd4k1jqm8vss2ped90or' 1 +> cname2.test.dyndns CNAME 0 host-2.test.dyndns 3600 '4kld1och52v50u3ng1hm8r7960vrsvom' 1 +> delete-add.test.dyndns A 0 127.0.0.108 3600 'qos1o6fh2fhqsrobhfu5fo4jod7kbm31' 1 +> delete-add.test.dyndns TXT 0 "Should be gone after a while" 3600 'qos1o6fh2fhqsrobhfu5fo4jod7kbm31' 1 +> e.host.test.dyndns A 0 1.1.1.1 3600 'feibo0ol87v167hotqml6lfp3ertsvsm' 1 +> host-1.test.dyndns A 0 127.0.0.101 3600 '5oj69l0a9ivclkj9od2jo4nhea4dqqrr' 1 +> host-2.test.dyndns A 0 127.0.0.102 3600 'h5scf8d2fiklli0eejrr6ib9uurde8jo' 1 +> host-3.test.dyndns A 0 127.0.0.103 3600 'g29j5ivi5i6rr1aoe2l59a9s1rohha2o' 1 +> host.test.dyndns NULL NULL NULL NULL 'ac2jl1kik929tr9i5rfcmbucm547n51a' 1 +> multi.test.dyndns A 0 127.0.0.1 3600 'lavvds84bcal6n6qnavn3q1u4jcpjev9' 1 +> multi.test.dyndns A 0 127.0.0.2 3600 'lavvds84bcal6n6qnavn3q1u4jcpjev9' 1 +> multi.test.dyndns A 0 127.0.0.3 3600 'lavvds84bcal6n6qnavn3q1u4jcpjev9' 1 +> ns1.test.dyndns A 0 127.0.0.1 3600 'uba3qp1vffon9pq2r07e7ldrnh5mg90v' 1 +> ns2.test.dyndns A 0 127.0.0.2 3600 'pe3h59f3ru6vid4ok0t4tsu6d0ndrvhs' 1 +> replace.test.dyndns A 0 127.0.0.1 3600 'hcj69ok6nqcmebhuprvga4kagcb9cfrf' 1 +> test.dyndns MX 10 host-1.test.dyndns 3600 '62qbu7pvpt7cm7bdpu7geb3je1l0aure' 1 +> test.dyndns MX 20 host-2.test.dyndns 3600 '62qbu7pvpt7cm7bdpu7geb3je1l0aure' 1 +> test.dyndns NS 0 ns1.test.dyndns 3600 '62qbu7pvpt7cm7bdpu7geb3je1l0aure' 1 +> test.dyndns NS 0 ns2.test.dyndns 3600 '62qbu7pvpt7cm7bdpu7geb3je1l0aure' 1 +> ttl.test.dyndns A 0 127.0.0.1 3600 'fa878afqjafu98itdnj0744n7g1f8uei' 1 +> txt.test.dyndns TXT 0 "This is some text" 3600 'rps6lu4mfq3fl71qp8np9gf8addr9k8t' 1 +> wild.test.dyndns NULL NULL NULL NULL 'a5s5svjou2lfs8r30prflluuqqui51q8' 1 +> *.wild.test.dyndns A 0 127.0.1.255 3600 'ee295ak1ndt9o0rll1a4rppb4naov4qm' 1 +--- End: diff start step.1 --- + +Answer: +;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id] +;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 +;; ZONE SECTION: +;test.dyndns. IN SOA + +1 test.dyndns. IN NSEC 86400 cname1.test.dyndns. NS SOA MX RRSIG NSEC DNSKEY +1 test.dyndns. IN RRSIG 3600 SOA 13 2 3600 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN RRSIG 86400 NSEC 13 2 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400 +2 . IN OPT 32768 +Rcode: 0 (No Error), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='test.dyndns.', qtype=NSEC3PARAM +1 a.host.test.dyndns. IN NSEC 86400 e.host.test.dyndns. A RRSIG NSEC +1 a.host.test.dyndns. IN RRSIG 86400 NSEC 13 4 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 delete-add.test.dyndns. IN NSEC 86400 a.host.test.dyndns. A TXT RRSIG NSEC +1 delete-add.test.dyndns. IN RRSIG 86400 NSEC 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN RRSIG 3600 SOA 13 2 3600 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400 +2 . IN OPT 32768 +Rcode: 3 (Non-Existent domain), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='b.host.test.dyndns.', qtype=A +Check if NSEC3PARAM is deleted +--- Start: diff start step.2 --- +< a.host.test.dyndns A 0 1.1.1.1 3600 'dsa3ti9nu3apdsvl3f63qlvakv555sr6' 1 +< cname1.test.dyndns CNAME 0 host-1.test.dyndns 3600 '8pqjv4b3m0lcfmvae0hp394lc154l1i7' 1 +< cname2.test.dyndns CNAME 0 host-2.test.dyndns 3600 '4i84rosksbmegcqfnkf6n6ci093h7rq4' 1 +< delete-add.test.dyndns A 0 127.0.0.108 3600 'slsck1enia56lrkr5gep7clu9j1o5ifn' 1 +< delete-add.test.dyndns TXT 0 "Should be gone after a while" 3600 'slsck1enia56lrkr5gep7clu9j1o5ifn' 1 +< e.host.test.dyndns A 0 1.1.1.1 3600 '8ti9tgh8d81frr5vr4o1o5bvko42v9dq' 1 +< host-1.test.dyndns A 0 127.0.0.101 3600 'tdhv9cbk13jg8drivldhsl3mji8qqqe2' 1 +< host-2.test.dyndns A 0 127.0.0.102 3600 's30oprhqrekh5suh6l530kd668elk9os' 1 +< host-3.test.dyndns A 0 127.0.0.103 3600 'gou9ao3rkdcnhqldf4056m9oigmtkuh6' 1 +< host.test.dyndns NULL NULL NULL NULL 'lmrsadk2bb62qpruaules5i5ap06cp55' 1 +< multi.test.dyndns A 0 127.0.0.1 3600 'tntcbdfsihhd24nt96bq9973vd019u43' 1 +< multi.test.dyndns A 0 127.0.0.2 3600 'tntcbdfsihhd24nt96bq9973vd019u43' 1 +< multi.test.dyndns A 0 127.0.0.3 3600 'tntcbdfsihhd24nt96bq9973vd019u43' 1 +< ns1.test.dyndns A 0 127.0.0.1 3600 '2gp5rdnjoq5oospc5o1ih9lali101di8' 1 +< ns2.test.dyndns A 0 127.0.0.2 3600 'fqu365vn7br5csv8cg6ne9v8ha6d008p' 1 +< replace.test.dyndns A 0 127.0.0.1 3600 'ituduke14pthsno7ii6h5sboshr8rfqs' 1 +< sub.test.dyndns NS 0 ns1.test.dyndns 3600 NULL 0 +< sub.test.dyndns NS 0 ns2.test.dyndns 3600 NULL 0 +< test.dyndns MX 10 host-1.test.dyndns 3600 'u36f0tjooqv1kspatto6qns0vap731v2' 1 +< test.dyndns MX 20 host-2.test.dyndns 3600 'u36f0tjooqv1kspatto6qns0vap731v2' 1 +< test.dyndns NS 0 ns1.test.dyndns 3600 'u36f0tjooqv1kspatto6qns0vap731v2' 1 +< test.dyndns NS 0 ns2.test.dyndns 3600 'u36f0tjooqv1kspatto6qns0vap731v2' 1 +< ttl.test.dyndns A 0 127.0.0.1 3600 'q75pnoe7pb74pnd6ogn44t5btuurbhrf' 1 +< txt.test.dyndns TXT 0 "This is some text" 3600 'lbj6718q27qsm7q020pqmhj0emg1neac' 1 +< wild.test.dyndns NULL NULL NULL NULL 'r9s1cj8dkmnmenjn95sti8nhh9utpq9k' 1 +< *.wild.test.dyndns A 0 127.0.1.255 3600 'lresbbp3lv8blgj9fsgtdmm4q7vj3d6j' 1 +> a.host.test.dyndns A 0 1.1.1.1 3600 'host a' 1 +> cname1.test.dyndns CNAME 0 host-1.test.dyndns 3600 'cname1' 1 +> cname2.test.dyndns CNAME 0 host-2.test.dyndns 3600 'cname2' 1 +> delete-add.test.dyndns A 0 127.0.0.108 3600 'delete-add' 1 +> delete-add.test.dyndns TXT 0 "Should be gone after a while" 3600 'delete-add' 1 +> e.host.test.dyndns A 0 1.1.1.1 3600 'host e' 1 +> host-1.test.dyndns A 0 127.0.0.101 3600 'host-1' 1 +> host-2.test.dyndns A 0 127.0.0.102 3600 'host-2' 1 +> host-3.test.dyndns A 0 127.0.0.103 3600 'host-3' 1 +> host.test.dyndns NULL NULL NULL NULL NULL 1 +> multi.test.dyndns A 0 127.0.0.1 3600 'multi' 1 +> multi.test.dyndns A 0 127.0.0.2 3600 'multi' 1 +> multi.test.dyndns A 0 127.0.0.3 3600 'multi' 1 +> ns1.test.dyndns A 0 127.0.0.1 3600 'ns1' 1 +> ns2.test.dyndns A 0 127.0.0.2 3600 'ns2' 1 +> replace.test.dyndns A 0 127.0.0.1 3600 'replace' 1 +> sub.test.dyndns NS 0 ns1.test.dyndns 3600 'sub' 0 +> sub.test.dyndns NS 0 ns2.test.dyndns 3600 'sub' 0 +> test.dyndns MX 10 host-1.test.dyndns 3600 '' 1 +> test.dyndns MX 20 host-2.test.dyndns 3600 '' 1 +> test.dyndns NS 0 ns1.test.dyndns 3600 '' 1 +> test.dyndns NS 0 ns2.test.dyndns 3600 '' 1 +> ttl.test.dyndns A 0 127.0.0.1 3600 'ttl' 1 +> txt.test.dyndns TXT 0 "This is some text" 3600 'txt' 1 +> wild.test.dyndns NULL NULL NULL NULL NULL 1 +> *.wild.test.dyndns A 0 127.0.1.255 3600 'wild *' 1 +--- End: diff start step.2 --- + +Answer: +;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: [id] +;; flags: qr aa; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0 +;; ZONE SECTION: +;test.dyndns. IN SOA + +0 test.dyndns. IN NSEC3PARAM 86400 1 0 1 abcd +0 test.dyndns. IN RRSIG 86400 NSEC3PARAM 13 2 86400 [expiry] [inception] [keytag] test.dyndns. ... +2 . IN OPT 32768 +Rcode: 0 (No Error), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='test.dyndns.', qtype=NSEC3PARAM +1 4i84rosksbmegcqfnkf6n6ci093h7rq4.test.dyndns. IN NSEC3 86400 1 [flags] 1 abcd 8PQJV4B3M0LCFMVAE0HP394LC154L1I7 CNAME RRSIG +1 4i84rosksbmegcqfnkf6n6ci093h7rq4.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 8ti9tgh8d81frr5vr4o1o5bvko42v9dq.test.dyndns. IN NSEC3 86400 1 [flags] 1 abcd DSA3TI9NU3APDSVL3F63QLVAKV555SR6 A RRSIG +1 8ti9tgh8d81frr5vr4o1o5bvko42v9dq.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 lmrsadk2bb62qpruaules5i5ap06cp55.test.dyndns. IN NSEC3 86400 1 [flags] 1 abcd LRESBBP3LV8BLGJ9FSGTDMM4Q7VJ3D6J +1 lmrsadk2bb62qpruaules5i5ap06cp55.test.dyndns. IN RRSIG 86400 NSEC3 13 3 86400 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN RRSIG 3600 SOA 13 2 3600 [expiry] [inception] [keytag] test.dyndns. ... +1 test.dyndns. IN SOA 3600 ns1.test.dyndns. ahu.example.dyndns. [serial] 28800 7200 604800 86400 +2 . IN OPT 32768 +Rcode: 3 (Non-Existent domain), RD: 0, QR: 1, TC: 0, AA: 1, opcode: 0 +Reply to question for qname='b.host.test.dyndns.', qtype=A +Check if NSEC3PARAM is added again +--- Start: diff start step.3 --- +no difference +--- End: diff start step.3 --- + diff --git a/regression-tests/tests/5dyndns-restore-zone/command b/regression-tests/tests/5dyndns-restore-zone/command index da8a534861..9f3949a39c 100755 --- a/regression-tests/tests/5dyndns-restore-zone/command +++ b/regression-tests/tests/5dyndns-restore-zone/command @@ -7,4 +7,4 @@ mysql --user="$GMYSQLUSER" --password="$GMYSQLPASSWD" --host="$GMYSQLHOST" \ "$GMYSQLDB" \ - -e "UPDATE records SET content = 'ns2.test.dyndns. ahu.example.dyndns. 2012060701 28800 7200 604800 86400' WHERE name = 'test.dyndns' AND type = 'SOA'" + -e "UPDATE records SET content = 'ns1.test.dyndns. ahu.example.dyndns. 2012060701 28800 7200 604800 86400' WHERE name in ('test.dyndns', 'sub.test.dyndns') AND type = 'SOA'" diff --git a/regression-tests/tests/verify-dnssec-zone/expected_result b/regression-tests/tests/verify-dnssec-zone/expected_result index f2f0e6bb5f..539d1ef570 100644 --- a/regression-tests/tests/verify-dnssec-zone/expected_result +++ b/regression-tests/tests/verify-dnssec-zone/expected_result @@ -30,6 +30,21 @@ zone test.dyndns/IN: loaded serial 2012060701 (DNSSEC signed) OK RETVAL: 0 +--- ldns-verify-zone -V2 sub.test.dyndns +RETVAL: 0 + +--- validns sub.test.dyndns +RETVAL: 0 + +--- jdnssec-verifyzone sub.test.dyndns +zone verified. +RETVAL: 0 + +--- named-checkzone sub.test.dyndns +zone sub.test.dyndns/IN: loaded serial 2012060701 (DNSSEC signed) +OK +RETVAL: 0 + --- ldns-verify-zone -V2 wtest.com RETVAL: 0 diff --git a/regression-tests/tests/verify-dnssec-zone/expected_result.nsec3-optout b/regression-tests/tests/verify-dnssec-zone/expected_result.nsec3-optout index 667918b8b9..ff1fec3396 100644 --- a/regression-tests/tests/verify-dnssec-zone/expected_result.nsec3-optout +++ b/regression-tests/tests/verify-dnssec-zone/expected_result.nsec3-optout @@ -30,6 +30,21 @@ zone test.dyndns/IN: loaded serial 2012060701 (DNSSEC signed) OK RETVAL: 0 +--- ldns-verify-zone -V2 sub.test.dyndns +RETVAL: 0 + +--- validns sub.test.dyndns +RETVAL: 0 + +--- jdnssec-verifyzone sub.test.dyndns +zone verified. +RETVAL: 0 + +--- named-checkzone sub.test.dyndns +zone sub.test.dyndns/IN: loaded serial 2012060701 (DNSSEC signed) +OK +RETVAL: 0 + --- ldns-verify-zone -V2 wtest.com RETVAL: 0 diff --git a/regression-tests/zones/.gitignore b/regression-tests/zones/.gitignore index 444a318bd2..936d3b67bd 100644 --- a/regression-tests/zones/.gitignore +++ b/regression-tests/zones/.gitignore @@ -1,4 +1,5 @@ /test.dyndns +/sub.test.dyndns /*.bind /*.com-slave /*.dyndns-slave diff --git a/regression-tests/zones/test.dyndns.orig b/regression-tests/zones/test.dyndns.orig index ad2261448f..3f843c5916 100644 --- a/regression-tests/zones/test.dyndns.orig +++ b/regression-tests/zones/test.dyndns.orig @@ -32,5 +32,3 @@ e.host IN A 1.1.1.1 sub IN NS ns1.test.dyndns. sub IN NS ns2.test.dyndns. - -occluded.sub IN A 127.0.0.200 \ No newline at end of file -- 2.47.2