diff --git a/tests/testdata/nsec3_wildcard_answer_response.rpl b/tests/testdata/nsec3_wildcard_answer_response.rpl new file mode 100644 index 0000000000000000000000000000000000000000..2a0ff14d560799718c8973e06836f60614175264 --- /dev/null +++ b/tests/testdata/nsec3_wildcard_answer_response.rpl @@ -0,0 +1,203 @@ +; config options +server: + trust-anchor: ". 3600 IN DS 17272 13 4 B87AD8C76DC2244E7AA57285057BF533F2E248CC8D7E1A071D8A3837A711A5EA705C4707E6E8911DA653BE1AE019927B" + val-override-date: "1442489540" + +stub-zone: + name: "." + stub-addr: 127.0.0.1 # ns. +CONFIG_END + +SCENARIO_BEGIN Test validation of NSEC wildcard answer response. + +; ns. +RANGE_BEGIN 0 100 + ADDRESS 127.0.0.1 + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR AA NOERROR +SECTION QUESTION +. IN NS +SECTION ANSWER +. 3600 IN NS ns. +. 3600 IN RRSIG NS 13 0 3600 20151014142315 20150914142315 17272 . aEIYUS4S8Hd7vAVYvHwFyV97lKx4xt2PgAUbM4A7JUXHkTJDHUQEDVQh LWGxK6e+AUeuq4qlDo4vSz3IedmOBQ== +SECTION ADDITIONAL +ns. 3600 IN A 127.0.0.1 +ns. 3600 IN RRSIG A 13 1 3600 20151014142315 20150914142315 17272 . 27h0pFJyb5t/2cZsFjynp0TRIdUlQwPYcAwCer2UbXTiBBaD8n15hfh8 PFU0if8X0ikqHusz6rCNTx/aBraYdQ== +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR AA NOERROR +SECTION QUESTION +. IN DNSKEY +SECTION ANSWER +. 3600 IN DNSKEY 256 3 13 qKlBZ0TvdY8C8+7bTcdnQdrLZxEwvxEwlGmIOTd/ccL5Jiei1whNktoE /Qzo1lJ0cXfVssy4EVMaqEdzIa+pkA== +. 3600 IN RRSIG DNSKEY 13 0 3600 20151014142315 20150914142315 17272 . FaY+kslqSPIRZsk65z8SrROt7kfx+RGUEBGbVgLQxKruJxc9+MMrl4e4 +RefYIlwpecj4jXwb75RTbT0g7OGGg== +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +aaa.local.nsec3.example. IN A +SECTION AUTHORITY +example. 3600 IN NS ns.example. +example. 3600 IN DS 11225 13 4 B4BDAB0B3751300BFB9D0D240649279B4BA0E67A308E1B0BFE2931D9 47F7FD71A2BD807D84CDE24286D955A35752484F +example. 3600 IN RRSIG DS 13 1 3600 20151014143533 20150914143533 17272 . b0+fXKmsBBXkzf+Myr5eRsXWDvY75oMlr4Yi5j+3iF7cOviVGKz3Dw8u bfKW+OmyHiuTeL71gez/84P+vHEvHA== +SECTION ADDITIONAL +ns.example. 3600 IN A 127.0.0.2 +ENTRY_END + +RANGE_END + +; ns.example. +RANGE_BEGIN 0 100 + ADDRESS 127.0.0.2 + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR AA NOERROR +SECTION QUESTION +example. IN NS +SECTION ANSWER +example. 3600 IN NS ns.example. +example. 3600 IN RRSIG NS 13 1 3600 20151014143225 20150914143225 11225 example. C6KOyVJzeRh/3KL9BxSVOVZN0RIyBhlBmmmnVEFT5qPUrn3m5FjcIBtI hi7cAl2FeY1rqstztvKAY6UOBE0kGQ== +SECTION ADDITIONAL +ns.example. 3600 IN A 127.0.0.2 +ns.example. 3600 IN RRSIG A 13 2 3600 20151014143225 20150914143225 11225 example. fM/mwUOtyIbKTxgxaekZf5A8kV3qYIFADtvhcQi0TUh09nfkHQtUqhew zVBXCEtjKMnYFvNhWF6PyiirtOeM8w== +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR AA NOERROR +SECTION QUESTION +example. IN DNSKEY +SECTION ANSWER +example. 3600 IN DNSKEY 256 3 13 d9Qb4Tj90Y2cvdWcZfu45clfoLKqGbJn2vQKqZv07nc4FMf2oRkrNXtP fixVTLfbbWAFtbbFf3mhCNUsetRUVQ== +example. 3600 IN RRSIG DNSKEY 13 1 3600 20151015124839 20150915124839 11225 example. 4DemFjvys9Gfq+gG1i8IB6GPBUw9lIv3F082JwW7O8tqNIn45n2z14gg ieeJTRhU9xXOVIfj6amITZWbjvGyFA== +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +aaa.local.nsec3.example. IN A +SECTION AUTHORITY +nsec3.example. 3600 IN NS ns.nsec3.example. +nsec3.example. 3600 IN DS 29913 13 4 9CCAE2E2369F5CE2725B0CCED256E746D4CB8CDA8A1A936C852A3810 1680F6F0D311476C891A5107DEA71165F72DAD01 +nsec3.example. 3600 IN RRSIG DS 13 2 3600 20151015124611 20150915124611 11225 example. Ur24uOPBVJV8dXlVzsEYq50QDzsKgzwdQ197/JR1Pjpo6hm+Q5qqGN5v TP57rCIDvqNY0L7ZnYjFDa1HlUie1A== +SECTION ADDITIONAL +ns.nsec3.example. 3600 IN A 127.0.0.3 +ENTRY_END + +RANGE_END + +; ns.nsec3.example. +RANGE_BEGIN 0 100 + ADDRESS 127.0.0.3 + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR AA NOERROR +SECTION QUESTION +nsec3.example. IN NS +SECTION ANSWER +nsec3.example. 3600 IN NS ns.nsec3.example. +nsec3.example. 3600 IN RRSIG NS 13 2 3600 20151015124917 20150915124917 29913 nsec3.example. 5CtvbOiUnPE4yVM9tRDWAjHT0X1X5M8tTez1ZkGVd+c9iwwX+PJV+tWW Q40UIqMVEDW1BG39uzGi82XINdvt4Q== +SECTION ADDITIONAL +ns.nsec3.example. 3600 IN A 127.0.0.3 +ns.nsec3.example. 3600 IN RRSIG A 13 3 3600 20151015124917 20150915124917 29913 nsec3.example. CYnl5b4taGLcGp2cZhlB93zbf4CfAEQPVBJVKQXIHlGCshMdakBKCJ5a o9wB+HfnA6VW0/2YgKxdv3j45qVWwQ== +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR AA NOERROR +SECTION QUESTION +nsec3.example. IN DNSKEY +SECTION ANSWER +nsec3.example. 3600 IN DNSKEY 256 3 13 p2ZjJQmvVGYMkFIzttVodmLNuxBqSbIjk/U9vsiWjWkYhgAHbCVDyH2I rKx3aqidW7Wnuaj//zDrXGxKu99WPQ== +nsec3.example. 3600 IN RRSIG DNSKEY 13 2 3600 20151015124917 20150915124917 29913 nsec3.example. M+WnKqDgEcgKxWi6n6hEKm61/OOqeZXVUOj+v8v9pRA/Kp0XVWL5G+hc tbQgGaUv7OFV5doYEI5XwuMazHzumg== +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +aaa.local.nsec3.example. IN A +SECTION ANSWER +aaa.local.nsec3.example. 3600 IN A 127.0.0.3 +aaa.local.nsec3.example. 3600 IN RRSIG A 13 3 3600 20151017113144 20150917113144 29913 nsec3.example. Lu3/XpqnhkiTPTWdPFeANaVlmo7pFYMRL+z4p/G6/jHwDC087w8++fPv Ppr79whH3MWnVY5tKTvnABRck4odzQ== +SECTION AUTHORITY +ivmjat46u4s0qgn5ouqtsut9mtut0230.nsec3.example. 3600 IN NSEC3 1 0 10 ED699434FF4B1D16 Q1VKA08M8TAP08SMQN0BU8HAI8BU51NB +ivmjat46u4s0qgn5ouqtsut9mtut0230.nsec3.example. 3600 IN RRSIG NSEC3 13 3 3600 20151015124917 20150915124917 29913 nsec3.example. YAAp004WrK5E/tgiq93/5UUx4Ze8mHibu3is2jogALKFsRbJPvYcbUoR AQu9KNK/ym2Mjk9VShNSSQPjtqrdVQ== +ENTRY_END + +; Missing NSEC covering the wildcard. +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +bbb.local.nsec3.example. IN A +SECTION ANSWER +bbb.local.nsec3.example. 3600 IN A 127.0.0.3 +bbb.local.nsec3.example. 3600 IN RRSIG A 13 3 3600 20151017113144 20150917113144 29913 nsec3.example. Lu3/XpqnhkiTPTWdPFeANaVlmo7pFYMRL+z4p/G6/jHwDC087w8++fPv Ppr79whH3MWnVY5tKTvnABRck4odzQ== +SECTION AUTHORITY +ENTRY_END + +RANGE_END + +;STEP 0 TIME_PASSES ELAPSE 1000 + +STEP 1 QUERY +ENTRY_BEGIN +REPLY RD DO +SECTION QUESTION +aaa.local.nsec3.example. IN A +ENTRY_END + +; recursion happens here. +STEP 2 CHECK_ANSWER +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR RD RA AD NXDOMAIN +SECTION QUESTION +aaa.local.nsec3.example. IN A +SECTION ANSWER +SECTION ANSWER +aaa.local.nsec3.example. 3600 IN A 127.0.0.3 +aaa.local.nsec3.example. 3600 IN RRSIG A 13 3 3600 20151017113144 20150917113144 29913 nsec3.example. Lu3/XpqnhkiTPTWdPFeANaVlmo7pFYMRL+z4p/G6/jHwDC087w8++fPv Ppr79whH3MWnVY5tKTvnABRck4odzQ== +SECTION AUTHORITY +ivmjat46u4s0qgn5ouqtsut9mtut0230.nsec3.example. 3600 IN NSEC3 1 0 10 ED699434FF4B1D16 Q1VKA08M8TAP08SMQN0BU8HAI8BU51NB +ivmjat46u4s0qgn5ouqtsut9mtut0230.nsec3.example. 3600 IN RRSIG NSEC3 13 3 3600 20151015124917 20150915124917 29913 nsec3.example. YAAp004WrK5E/tgiq93/5UUx4Ze8mHibu3is2jogALKFsRbJPvYcbUoR AQu9KNK/ym2Mjk9VShNSSQPjtqrdVQ== +ENTRY_END + +STEP 3 QUERY +ENTRY_BEGIN +REPLY RD DO +SECTION QUESTION +bbb.local.nsec3.example. IN A +ENTRY_END + +STEP 2 CHECK_ANSWER +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR RD RA AD SERVFAIL +SECTION QUESTION +bbb.local.nsec3.example. IN A +ENTRY_END + +SCENARIO_END diff --git a/tests/testdata/nsec_wildcard_answer_response.rpl b/tests/testdata/nsec_wildcard_answer_response.rpl new file mode 100644 index 0000000000000000000000000000000000000000..799e1c56a744c0af8e3125102ba81a82fcfa8792 --- /dev/null +++ b/tests/testdata/nsec_wildcard_answer_response.rpl @@ -0,0 +1,202 @@ +; config options +server: + trust-anchor: ". 3600 IN DS 17272 13 4 B87AD8C76DC2244E7AA57285057BF533F2E248CC8D7E1A071D8A3837A711A5EA705C4707E6E8911DA653BE1AE019927B" + val-override-date: "1442489440" + +stub-zone: + name: "." + stub-addr: 127.0.0.1 # ns. +CONFIG_END + +SCENARIO_BEGIN Test validation of NSEC wildcard answer response. + +; ns. +RANGE_BEGIN 0 100 + ADDRESS 127.0.0.1 + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR AA NOERROR +SECTION QUESTION +. IN NS +SECTION ANSWER +. 3600 IN NS ns. +. 3600 IN RRSIG NS 13 0 3600 20151014142315 20150914142315 17272 . aEIYUS4S8Hd7vAVYvHwFyV97lKx4xt2PgAUbM4A7JUXHkTJDHUQEDVQh LWGxK6e+AUeuq4qlDo4vSz3IedmOBQ== +SECTION ADDITIONAL +ns. 3600 IN A 127.0.0.1 +ns. 3600 IN RRSIG A 13 1 3600 20151014142315 20150914142315 17272 . 27h0pFJyb5t/2cZsFjynp0TRIdUlQwPYcAwCer2UbXTiBBaD8n15hfh8 PFU0if8X0ikqHusz6rCNTx/aBraYdQ== +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR AA NOERROR +SECTION QUESTION +. IN DNSKEY +SECTION ANSWER +. 3600 IN DNSKEY 256 3 13 qKlBZ0TvdY8C8+7bTcdnQdrLZxEwvxEwlGmIOTd/ccL5Jiei1whNktoE /Qzo1lJ0cXfVssy4EVMaqEdzIa+pkA== +. 3600 IN RRSIG DNSKEY 13 0 3600 20151014142315 20150914142315 17272 . FaY+kslqSPIRZsk65z8SrROt7kfx+RGUEBGbVgLQxKruJxc9+MMrl4e4 +RefYIlwpecj4jXwb75RTbT0g7OGGg== +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +aaa.local.nsec.example. IN A +SECTION AUTHORITY +example. 3600 IN NS ns.example. +example. 3600 IN DS 11225 13 4 B4BDAB0B3751300BFB9D0D240649279B4BA0E67A308E1B0BFE2931D9 47F7FD71A2BD807D84CDE24286D955A35752484F +example. 3600 IN RRSIG DS 13 1 3600 20151014143533 20150914143533 17272 . b0+fXKmsBBXkzf+Myr5eRsXWDvY75oMlr4Yi5j+3iF7cOviVGKz3Dw8u bfKW+OmyHiuTeL71gez/84P+vHEvHA== +SECTION ADDITIONAL +ns.example. 3600 IN A 127.0.0.2 +ENTRY_END + +RANGE_END + +; ns.example. +RANGE_BEGIN 0 100 + ADDRESS 127.0.0.2 + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR AA NOERROR +SECTION QUESTION +example. IN NS +SECTION ANSWER +example. 3600 IN NS ns.example. +example. 3600 IN RRSIG NS 13 1 3600 20151014143225 20150914143225 11225 example. C6KOyVJzeRh/3KL9BxSVOVZN0RIyBhlBmmmnVEFT5qPUrn3m5FjcIBtI hi7cAl2FeY1rqstztvKAY6UOBE0kGQ== +SECTION ADDITIONAL +ns.example. 3600 IN A 127.0.0.2 +ns.example. 3600 IN RRSIG A 13 2 3600 20151014143225 20150914143225 11225 example. fM/mwUOtyIbKTxgxaekZf5A8kV3qYIFADtvhcQi0TUh09nfkHQtUqhew zVBXCEtjKMnYFvNhWF6PyiirtOeM8w== +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR AA NOERROR +SECTION QUESTION +example. IN DNSKEY +SECTION ANSWER +example. 3600 IN DNSKEY 256 3 13 d9Qb4Tj90Y2cvdWcZfu45clfoLKqGbJn2vQKqZv07nc4FMf2oRkrNXtP fixVTLfbbWAFtbbFf3mhCNUsetRUVQ== +example. 3600 IN RRSIG DNSKEY 13 1 3600 20151015124839 20150915124839 11225 example. 4DemFjvys9Gfq+gG1i8IB6GPBUw9lIv3F082JwW7O8tqNIn45n2z14gg ieeJTRhU9xXOVIfj6amITZWbjvGyFA== +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +aaa.local.nsec.example. IN A +SECTION AUTHORITY +nsec.example. 3600 IN NS ns.nsec.example. +nsec.example. 3600 IN DS 54343 13 4 90ABD4FB9F053CF67F6D838DD2437FB16104B8BF127319706223004F 2ED72AF2872B4E507EB483A303BF60BF08C87364 +nsec.example. 3600 IN RRSIG DS 13 2 3600 20151015124611 20150915124611 11225 example. HYzlEdyYugggsEwUVyyY4XHFVUZZ8yiIh4vnuViGBQQJP+yryYh1aLyN ap2Q51nkmSG1fXDb2IySiAYuqUJyLw== +SECTION ADDITIONAL +ns.nsec.example. 3600 IN A 127.0.0.3 +ENTRY_END + +RANGE_END + +; ns.nsec.example. +RANGE_BEGIN 0 100 + ADDRESS 127.0.0.3 + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR AA NOERROR +SECTION QUESTION +nsec.example. IN NS +SECTION ANSWER +nsec.example. 3600 IN NS ns.nsec.example. +nsec.example. 3600 IN RRSIG NS 13 2 3600 20151015124917 20150915124917 54343 nsec.example. 6s75LEuylIKAxqAbcPmmnkOMC7jxF6cPZGW5EFbhOOeR63ENyh642GE1 71WtJc7Ta4Y/PsnAT+/dTv8NSTDCHQ== +SECTION ADDITIONAL +ns.nsec.example. 3600 IN A 127.0.0.3 +ns.nsec.example. 3600 IN RRSIG A 13 3 3600 20151015124917 20150915124917 54343 nsec.example. oJpF87bjXR0DjIoNvEAo+Wu+p9jF+URX5lxi+g53OFCX1Q1lxqj5ujGd KOPsNAbKvTCsoFFW4tQyhCYJYD1HlQ== +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR AA NOERROR +SECTION QUESTION +nsec.example. IN DNSKEY +SECTION ANSWER +nsec.example. 3600 IN DNSKEY 256 3 13 HA6nKf+X7/mYkmmRO8qS2tIKT0B60P7COAiRs25xKs/rAP+tDtGWkrkG NQx2D3ajccC9whjRaKz2JVS3ItTFQg== +nsec.example. 3600 IN RRSIG DNSKEY 13 2 3600 20151015124917 20150915124917 54343 nsec.example. 965Mfxs1QtgxwzyhfxXyKyOZ9iT1DXpvypBBR10sLyjHe/w7cRhgcyev Cza6K+2jJwHJBmbknc3Qhi+1dd+AJw== +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +aaa.local.nsec.example. IN A +SECTION ANSWER +aaa.local.nsec.example. 3600 IN A 127.0.0.3 +aaa.local.nsec.example. 3600 IN RRSIG A 13 3 3600 20151017113004 20150917113004 54343 nsec.example. 5hYzdWDetMJ5h9nrbgFBOQliFc+HH7QAsS32CzpXGHd2rpbr3OvzNDqP bvvWD/9BPJ8nVFLnrgh+xfBqtYhUzA== +SECTION AUTHORITY +*.local.nsec.example. 3600 IN NSEC loop.nsec.example. A AAAA RRSIG NSEC +*.local.nsec.example. 3600 IN RRSIG NSEC 13 3 3600 20151017113004 20150917113004 54343 nsec.example. iMTPQUvd9v3W5qOMGZaTHBwjDpnb14S3FwZ2B1ry4G5ZEQzNC/mLGoex XqY2zBLFhs37KKSrmmWQZMOonTcYNw== +ENTRY_END + +; Missing NSEC covering the wildcard. +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +bbb.local.nsec.example. IN A +SECTION ANSWER +bbb.local.nsec.example. 3600 IN A 127.0.0.3 +bbb.local.nsec.example. 3600 IN RRSIG A 13 3 3600 20151017113004 20150917113004 54343 nsec.example. 5hYzdWDetMJ5h9nrbgFBOQliFc+HH7QAsS32CzpXGHd2rpbr3OvzNDqP bvvWD/9BPJ8nVFLnrgh+xfBqtYhUzA== +SECTION AUTHORITY +ENTRY_END + +RANGE_END + +;STEP 0 TIME_PASSES ELAPSE 1000 + +STEP 1 QUERY +ENTRY_BEGIN +REPLY RD DO +SECTION QUESTION +aaa.local.nsec.example. IN A +ENTRY_END + +; recursion happens here. +STEP 2 CHECK_ANSWER +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR RD RA AD NXDOMAIN +SECTION QUESTION +aaa.local.nsec.example. IN A +SECTION ANSWER +aaa.local.nsec.example. 3600 IN A 127.0.0.3 +aaa.local.nsec.example. 3600 IN RRSIG A 13 3 3600 20151017113004 20150917113004 54343 nsec.example. 5hYzdWDetMJ5h9nrbgFBOQliFc+HH7QAsS32CzpXGHd2rpbr3OvzNDqP bvvWD/9BPJ8nVFLnrgh+xfBqtYhUzA== +SECTION AUTHORITY +*.local.nsec.example. 3600 IN NSEC loop.nsec.example. A AAAA RRSIG NSEC +*.local.nsec.example. 3600 IN RRSIG NSEC 13 3 3600 20151017113004 20150917113004 54343 nsec.example. iMTPQUvd9v3W5qOMGZaTHBwjDpnb14S3FwZ2B1ry4G5ZEQzNC/mLGoex XqY2zBLFhs37KKSrmmWQZMOonTcYNw== +ENTRY_END + +STEP 3 QUERY +ENTRY_BEGIN +REPLY RD DO +SECTION QUESTION +bbb.local.nsec.example. IN A +ENTRY_END + +STEP 2 CHECK_ANSWER +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR RD RA AD SERVFAIL +SECTION QUESTION +bbb.local.nsec.example. IN A +ENTRY_END + +SCENARIO_END