]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
add test for parent/child confusion
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Thu, 16 Aug 2018 20:46:41 +0000 (22:46 +0200)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Fri, 17 Aug 2018 20:29:11 +0000 (22:29 +0200)
21 files changed:
modules/tinydnsbackend/data
modules/tinydnsbackend/data.cdb
regression-tests.nobackend/rectify-axfr/expected_result
regression-tests.nobackend/tinydns-data-check/expected_result
regression-tests/tests/00dnssec-grabkeys/expected_result.dnssec
regression-tests/tests/1dyndns-correct-zone/command [new file with mode: 0755]
regression-tests/tests/1dyndns-correct-zone/description [new file with mode: 0644]
regression-tests/tests/1dyndns-correct-zone/expected_result [new file with mode: 0644]
regression-tests/tests/1dyndns-correct-zone/skip.nodyndns [new file with mode: 0644]
regression-tests/tests/1dyndns-update-delegate-in-between/expected_result.nsec3
regression-tests/tests/1dyndns-update-nsec3params-with-others/expected_result
regression-tests/tests/1dyndns-update-nsec3params-with-others/expected_result.nsec3
regression-tests/tests/1dyndns-update-nsec3params-with-others/expected_result.nsec3-optout [new file with mode: 0644]
regression-tests/tests/1dyndns-update-nsec3params/expected_result
regression-tests/tests/1dyndns-update-nsec3params/expected_result.nsec3
regression-tests/tests/1dyndns-update-nsec3params/expected_result.nsec3-optout [new file with mode: 0644]
regression-tests/tests/5dyndns-restore-zone/command
regression-tests/tests/verify-dnssec-zone/expected_result
regression-tests/tests/verify-dnssec-zone/expected_result.nsec3-optout
regression-tests/zones/.gitignore
regression-tests/zones/test.dyndns.orig

index 02e788864c2c01b6b8073eccdfe98432c3e86c78..72c7a006324b5e24e154e8f34269f8b6aab1dbbc 100644 (file)
 :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
 :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
index 976aaa277b917d9fb4b10d0fb4a3e97eef76321c..e2bf2c3e586eccfb4a193fe5470ee76200d5e45c 100644 (file)
Binary files a/modules/tinydnsbackend/data.cdb and b/modules/tinydnsbackend/data.cdb differ
index 0da83a2e594c45e6b56005cc0a892ff7ae2b2790..04e2d37ccdbf4328b520b1bb29aff9f8b0ae9c68 100644 (file)
@@ -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
 
index 2d92795ea18311df3284e443b43890df02143364..215d8240d0afdee36f72019ba3cab77b6214c339 100644 (file)
@@ -1,6 +1,7 @@
 9f88091d3d1b793bf15a2cf5015bf92d  ../regression-tests/zones/example.com
 fe49d2784b1bcc3b91ddd5619f0b6cc1  ../regression-tests/zones/test.com
-005b3381db2a7dc70b690484f6ab7770  ../regression-tests/zones/test.dyndns
+f0df67fa656d33fd85098cbe43893395  ../regression-tests/zones/test.dyndns
+dee3e8b568549d9450134b555ca73990  ../regression-tests/zones/sub.test.dyndns
 e7c0fd528e8aaedb1ea3b6daaead4de2  ../regression-tests/zones/wtest.com
 42b442de632686e94bde75acf66cf524  ../regression-tests/zones/nztest.com
 aeff58ea1eb6e63096e6da18337be312  ../regression-tests/zones/dnssec-parent.com
@@ -11,4 +12,4 @@ a63dc120391d9df0003f2ec4f461a6af  ../regression-tests/zones/secure-delegated.dns
 b1f775045fa2cf0a3b91aa834af06e49  ../regression-tests/zones/stest.com
 a98864b315f16bcf49ce577426063c42  ../regression-tests/zones/cdnskey-cds-test.com
 9aeed2c26d0c3ba3baf22dfa9568c451  ../regression-tests/zones/2.0.192.in-addr.arpa
-3cfc26fade6f3c30da8e18ca33b03498  ../modules/tinydnsbackend/data.cdb
+7145702efe04410a480114206dea2da6  ../modules/tinydnsbackend/data.cdb
diff --git a/regression-tests/tests/1dyndns-correct-zone/command b/regression-tests/tests/1dyndns-correct-zone/command
new file mode 100755 (executable)
index 0000000..eb14ef6
--- /dev/null
@@ -0,0 +1,55 @@
+#!/bin/sh
+
+mysqldiff
+
+RECORDNAME=occluded.sub.test.dyndns
+
+echo '* Check that the name cannot be found'
+cleandig $RECORDNAME ANY hidesoadetails
+
+echo '* Create the occluded name in the parent zone'
+cleannsupdate <<!
+server $nameserver $port
+zone test.dyndns
+update add $RECORDNAME. 3600 CNAME parent
+send
+answer
+!
+
+echo '* Check that the name cannot be found'
+cleandig $RECORDNAME ANY hidesoadetails
+
+echo '* Create a record in the child zone'
+cleannsupdate <<!
+server $nameserver $port
+zone sub.test.dyndns
+update add $RECORDNAME. 3600 CNAME child
+send
+answer
+!
+
+echo '* Check that the child zone record is visible'
+cleandig $RECORDNAME A hidesoadetails
+
+echo '* Remove child record'
+cleannsupdate <<!
+server $nameserver $port
+zone sub.test.dyndns
+update delete $RECORDNAME. 3600 CNAME child
+send
+answer
+!
+
+echo '* Check that the occluded name is invisible again'
+cleandig $RECORDNAME ANY hidesoadetails
+
+echo '* Remove parent record'
+cleannsupdate <<!
+server $nameserver $port
+zone test.dyndns
+update delete $RECORDNAME. 3600 CNAME parent
+send
+answer
+!
+
+mysqldiff 1 "check that we cleaned up correctly"
\ No newline at end of file
diff --git a/regression-tests/tests/1dyndns-correct-zone/description b/regression-tests/tests/1dyndns-correct-zone/description
new file mode 100644 (file)
index 0000000..fba4e45
--- /dev/null
@@ -0,0 +1,2 @@
+When writing a record to a child zone, while the name also exists (occluded)
+in the parent zone, make sure the update ends up in the child zone.
diff --git a/regression-tests/tests/1dyndns-correct-zone/expected_result b/regression-tests/tests/1dyndns-correct-zone/expected_result
new file mode 100644 (file)
index 0000000..1dd2dfb
--- /dev/null
@@ -0,0 +1,49 @@
+* 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 the occluded name in the parent zone
+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 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 (file)
index 0000000..e69de29
index f63abb396b0ac8584b31d768353b115232502a4e..b58351de24e1a5cd11e48ff8d220278afd0c82fa 100644 (file)
@@ -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. ...
index d7d3c791577b6e47bda1209274f236ca28869ee1..85380832c612e519d424d21ac4ba38388efddebf 100644 (file)
@@ -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
index c6700fcdb791cf0d5eb788fc8796975ce6a90862..aba3c834854035eb564ff3695ab686b2207e4b9c 100644 (file)
@@ -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 (file)
index 0000000..c6700fc
--- /dev/null
@@ -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
index 01bbf05d840d3fd378c8ba3824ba2e93427dba7d..78314d356a825ca5063c54898c3b304281689d8b 100644 (file)
@@ -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
index 5d4b3926e898311371a531d9f2f8997b4a0c833b..e794dc6873e3c5b3719b7f25cf15f00703216154 100644 (file)
@@ -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 (file)
index 0000000..d899e43
--- /dev/null
@@ -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 ---
+
index da8a53486118d81b59f748a60b4cf2321f29de44..9f3949a39c43e39c1473d3d0e213306303503ab2 100755 (executable)
@@ -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'"
index f2f0e6bb5fe836359077078bbff11a5067d8f4a1..539d1ef5706ace686998e9af95df3280f426e2fe 100644 (file)
@@ -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
 
index 667918b8b9240e6cc05141697727c69ce81c0595..ff1fec3396d0aed796175143e91fadf9b22b8991 100644 (file)
@@ -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
 
index 444a318bd2b18cb2e4667ef59cad2bdd9db9c492..936d3b67bd7cae20b9b884f2ba892316fbffd5b9 100644 (file)
@@ -1,4 +1,5 @@
 /test.dyndns
+/sub.test.dyndns
 /*.bind
 /*.com-slave
 /*.dyndns-slave
index ad2261448fc659ba4dca844a0735a7b439b49632..3f843c591601c5b68edd2113bb035e03531efa8a 100644 (file)
@@ -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