From 34a9c13a90015fba5f8a8a1c516c00d4bf5003f8 Mon Sep 17 00:00:00 2001 From: George Thessalonikefs Date: Tue, 4 Oct 2022 14:32:35 +0200 Subject: [PATCH] - Disabled the nxns tests for now (to be reverted). --- testdata/iter_nxns_cached.rpl | 719 +++++++++++++++--------------- testdata/iter_nxns_fallback.rpl | 718 ++++++++++++++--------------- testdata/iter_nxns_parentside.rpl | 190 ++++---- 3 files changed, 814 insertions(+), 813 deletions(-) diff --git a/testdata/iter_nxns_cached.rpl b/testdata/iter_nxns_cached.rpl index 7671df663..490fe6d3e 100644 --- a/testdata/iter_nxns_cached.rpl +++ b/testdata/iter_nxns_cached.rpl @@ -20,365 +20,366 @@ stub-zone: CONFIG_END SCENARIO_BEGIN Test that the NXNS countermeasure is not triggered for cached NXDOMAIN +SCENARIO END -RANGE_BEGIN 0 100 - ADDRESS 127.0.0.1 - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - b.a.example.com. IN A - SECTION ANSWER - b.a.example.com. IN A 127.0.0.0 - ENTRY_END -RANGE_END - -RANGE_BEGIN 31 100 - ADDRESS 127.0.0.3 - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - ns1.nameservers.com. IN A - SECTION ANSWER - ns1.nameservers.com. IN A 127.0.0.1 - ENTRY_END - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - ns2.nameservers.com. IN A - SECTION ANSWER - ns2.nameservers.com. IN A 127.0.0.1 - ENTRY_END - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - ns3.nameservers.com. IN A - SECTION ANSWER - ns3.nameservers.com. IN A 127.0.0.1 - ENTRY_END - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - ns4.nameservers.com. IN A - SECTION ANSWER - ns4.nameservers.com. IN A 127.0.0.1 - ENTRY_END - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - ns5.nameservers.com. IN A - SECTION ANSWER - ns5.nameservers.com. IN A 127.0.0.1 - ENTRY_END - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - ns6.nameservers.com. IN A - SECTION ANSWER - ns6.nameservers.com. IN A 127.0.0.1 - ENTRY_END - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - ns7.nameservers.com. IN A - SECTION ANSWER - ns7.nameservers.com. IN A 127.0.0.1 - ENTRY_END - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - ns8.nameservers.com. IN A - SECTION ANSWER - ns8.nameservers.com. IN A 127.0.0.1 - ENTRY_END - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - ns9.nameservers.com. IN A - SECTION ANSWER - ns9.nameservers.com. IN A 127.0.0.1 - ENTRY_END - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - ns10.nameservers.com. IN A - SECTION ANSWER - ns10.nameservers.com. IN A 127.0.0.1 - ENTRY_END - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - ns11.nameservers.com. IN A - SECTION ANSWER - ns11.nameservers.com. IN A 127.0.0.1 - ENTRY_END - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - ns12.nameservers.com. IN A - SECTION ANSWER - ns12.nameservers.com. IN A 127.0.0.1 - ENTRY_END - - ; Reply no-data to AAAA queries - ENTRY_BEGIN - MATCH opcode subdomain - ADJUST copy_id copy_query - REPLY QR NOERROR - SECTION QUESTION - nameservers.com. IN A - ENTRY_END -RANGE_END - -; Query for a domain -STEP 0 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -a.example.com. IN A -ENTRY_END - -; Answer with delegation -STEP 1 REPLY -ENTRY_BEGIN -ADJUST copy_id -REPLY QR NOERROR -SECTION QUESTION -a.example.com. IN A -SECTION AUTHORITY -a.example.com. IN NS ns1.nameservers.com. -a.example.com. IN NS ns2.nameservers.com. -a.example.com. IN NS ns3.nameservers.com. -a.example.com. IN NS ns4.nameservers.com. -a.example.com. IN NS ns5.nameservers.com. -a.example.com. IN NS ns6.nameservers.com. -a.example.com. IN NS ns7.nameservers.com. -a.example.com. IN NS ns8.nameservers.com. -a.example.com. IN NS ns9.nameservers.com. -a.example.com. IN NS ns10.nameservers.com. -a.example.com. IN NS ns11.nameservers.com. -a.example.com. IN NS ns12.nameservers.com. -ENTRY_END - -; Reply NXDOMAIN to MAX_TARGET_NX queries(6) x2 (A+AAAA) -STEP 2 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -SECTION AUTHORITY -example.com. IN SOA ns.example.com email.example.com 1 2 3 4 60 -ENTRY_END -STEP 3 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -SECTION AUTHORITY -example.com. IN SOA ns.ns email.email 1 2 3 4 60 -ENTRY_END -STEP 4 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END -STEP 5 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END -STEP 6 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END -STEP 7 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END -STEP 8 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END -STEP 9 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END -STEP 10 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END -STEP 11 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END -STEP 12 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END -STEP 13 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END - -; We should receive SERVFAIL because MAX_TARGET_NX was reached -STEP 14 CHECK_ANSWER -ENTRY_BEGIN -MATCH all -REPLY QR RD RA SERVFAIL -SECTION QUESTION -a.example.com. IN A -ENTRY_END - -; Query for another domain in the same delegation -STEP 20 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -b.a.example.com. IN A -ENTRY_END - -; We still have 6 NSes that Unbound didn't try to resolve -; Reply with NXDOMAIN for 5 of them -STEP 21 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END -STEP 22 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END -STEP 23 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END -STEP 24 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END -STEP 25 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END -STEP 26 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END -STEP 27 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END -STEP 28 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END -STEP 29 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END -STEP 30 REPLY -ENTRY_BEGIN -ADJUST copy_id copy_query -REPLY QR NXDOMAIN -SECTION QUESTION -a.query. IN A -ENTRY_END - -; Unbound will reach the upstream and get the answer for the final NS -; which has the answer for the client query. - -STEP 40 CHECK_ANSWER -ENTRY_BEGIN -MATCH all -REPLY QR RD RA NOERROR -SECTION QUESTION -b.a.example.com. IN A -SECTION ANSWER -b.a.example.com. IN A 127.0.0.0 -ENTRY_END - -; Allow for possible pending NS query (AAAA) to get answered -STEP 41 TRAFFIC +;RANGE_BEGIN 0 100 +; ADDRESS 127.0.0.1 +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; b.a.example.com. IN A +; SECTION ANSWER +; b.a.example.com. IN A 127.0.0.0 +; ENTRY_END +;RANGE_END +; +;RANGE_BEGIN 31 100 +; ADDRESS 127.0.0.3 +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; ns1.nameservers.com. IN A +; SECTION ANSWER +; ns1.nameservers.com. IN A 127.0.0.1 +; ENTRY_END +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; ns2.nameservers.com. IN A +; SECTION ANSWER +; ns2.nameservers.com. IN A 127.0.0.1 +; ENTRY_END +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; ns3.nameservers.com. IN A +; SECTION ANSWER +; ns3.nameservers.com. IN A 127.0.0.1 +; ENTRY_END +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; ns4.nameservers.com. IN A +; SECTION ANSWER +; ns4.nameservers.com. IN A 127.0.0.1 +; ENTRY_END +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; ns5.nameservers.com. IN A +; SECTION ANSWER +; ns5.nameservers.com. IN A 127.0.0.1 +; ENTRY_END +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; ns6.nameservers.com. IN A +; SECTION ANSWER +; ns6.nameservers.com. IN A 127.0.0.1 +; ENTRY_END +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; ns7.nameservers.com. IN A +; SECTION ANSWER +; ns7.nameservers.com. IN A 127.0.0.1 +; ENTRY_END +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; ns8.nameservers.com. IN A +; SECTION ANSWER +; ns8.nameservers.com. IN A 127.0.0.1 +; ENTRY_END +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; ns9.nameservers.com. IN A +; SECTION ANSWER +; ns9.nameservers.com. IN A 127.0.0.1 +; ENTRY_END +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; ns10.nameservers.com. IN A +; SECTION ANSWER +; ns10.nameservers.com. IN A 127.0.0.1 +; ENTRY_END +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; ns11.nameservers.com. IN A +; SECTION ANSWER +; ns11.nameservers.com. IN A 127.0.0.1 +; ENTRY_END +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; ns12.nameservers.com. IN A +; SECTION ANSWER +; ns12.nameservers.com. IN A 127.0.0.1 +; ENTRY_END +; +; ; Reply no-data to AAAA queries +; ENTRY_BEGIN +; MATCH opcode subdomain +; ADJUST copy_id copy_query +; REPLY QR NOERROR +; SECTION QUESTION +; nameservers.com. IN A +; ENTRY_END +;RANGE_END +; +;; Query for a domain +;STEP 0 QUERY +;ENTRY_BEGIN +;REPLY RD +;SECTION QUESTION +;a.example.com. IN A +;ENTRY_END +; +;; Answer with delegation +;STEP 1 REPLY +;ENTRY_BEGIN +;ADJUST copy_id +;REPLY QR NOERROR +;SECTION QUESTION +;a.example.com. IN A +;SECTION AUTHORITY +;a.example.com. IN NS ns1.nameservers.com. +;a.example.com. IN NS ns2.nameservers.com. +;a.example.com. IN NS ns3.nameservers.com. +;a.example.com. IN NS ns4.nameservers.com. +;a.example.com. IN NS ns5.nameservers.com. +;a.example.com. IN NS ns6.nameservers.com. +;a.example.com. IN NS ns7.nameservers.com. +;a.example.com. IN NS ns8.nameservers.com. +;a.example.com. IN NS ns9.nameservers.com. +;a.example.com. IN NS ns10.nameservers.com. +;a.example.com. IN NS ns11.nameservers.com. +;a.example.com. IN NS ns12.nameservers.com. +;ENTRY_END +; +;; Reply NXDOMAIN to MAX_TARGET_NX queries(6) x2 (A+AAAA) +;STEP 2 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN AAAA +;SECTION AUTHORITY +;example.com. IN SOA ns.example.com email.example.com 1 2 3 4 60 +;ENTRY_END +;STEP 3 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN AAAA +;SECTION AUTHORITY +;example.com. IN SOA ns.ns email.email 1 2 3 4 60 +;ENTRY_END +;STEP 4 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN AAAA +;ENTRY_END +;STEP 5 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN AAAA +;ENTRY_END +;STEP 6 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN AAAA +;ENTRY_END +;STEP 7 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN AAAA +;ENTRY_END +;STEP 8 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN AAAA +;ENTRY_END +;STEP 9 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN AAAA +;ENTRY_END +;STEP 10 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN AAAA +;ENTRY_END +;STEP 11 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN AAAA +;ENTRY_END +;STEP 12 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN AAAA +;ENTRY_END +;STEP 13 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN AAAA +;ENTRY_END +; +;; We should receive SERVFAIL because MAX_TARGET_NX was reached +;STEP 14 CHECK_ANSWER +;ENTRY_BEGIN +;MATCH all +;REPLY QR RD RA SERVFAIL +;SECTION QUESTION +;a.example.com. IN A +;ENTRY_END +; +;; Query for another domain in the same delegation +;STEP 20 QUERY +;ENTRY_BEGIN +;REPLY RD +;SECTION QUESTION +;b.a.example.com. IN A +;ENTRY_END +; +;; We still have 6 NSes that Unbound didn't try to resolve +;; Reply with NXDOMAIN for 5 of them +;STEP 21 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN A +;ENTRY_END +;STEP 22 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN A +;ENTRY_END +;STEP 23 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN A +;ENTRY_END +;STEP 24 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN A +;ENTRY_END +;STEP 25 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN A +;ENTRY_END +;STEP 26 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN A +;ENTRY_END +;STEP 27 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN A +;ENTRY_END +;STEP 28 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN A +;ENTRY_END +;STEP 29 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN A +;ENTRY_END +;STEP 30 REPLY +;ENTRY_BEGIN +;ADJUST copy_id copy_query +;REPLY QR NXDOMAIN +;SECTION QUESTION +;a.query. IN A +;ENTRY_END +; +;; Unbound will reach the upstream and get the answer for the final NS +;; which has the answer for the client query. +; +;STEP 40 CHECK_ANSWER +;ENTRY_BEGIN +;MATCH all +;REPLY QR RD RA NOERROR +;SECTION QUESTION +;b.a.example.com. IN A +;SECTION ANSWER +;b.a.example.com. IN A 127.0.0.0 +;ENTRY_END +; +;; Allow for possible pending NS query (AAAA) to get answered +;STEP 41 TRAFFIC SCENARIO_END diff --git a/testdata/iter_nxns_fallback.rpl b/testdata/iter_nxns_fallback.rpl index 324068604..5872b8444 100644 --- a/testdata/iter_nxns_fallback.rpl +++ b/testdata/iter_nxns_fallback.rpl @@ -17,364 +17,364 @@ CONFIG_END SCENARIO_BEGIN Test the NXNS fallback -; K.ROOT-SERVERS.NET. -RANGE_BEGIN 0 100 - ADDRESS 193.0.14.129 - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - . IN NS - SECTION ANSWER - . IN NS K.ROOT-SERVERS.NET. - SECTION ADDITIONAL - K.ROOT-SERVERS.NET. IN A 193.0.14.129 - ENTRY_END - - ENTRY_BEGIN - MATCH opcode qtype subdomain - ADJUST copy_id copy_query - REPLY QR NOERROR - SECTION QUESTION - example.com. IN A - SECTION AUTHORITY - com. IN NS a.gtld-servers.net. - SECTION ADDITIONAL - a.gtld-servers.net. IN A 192.5.6.30 - ENTRY_END - - ENTRY_BEGIN - MATCH opcode subdomain - ADJUST copy_id copy_query - REPLY QR NOERROR - SECTION QUESTION - nonexistant.com. IN A - SECTION AUTHORITY - com. IN NS a.gtld-servers.net. - SECTION ADDITIONAL - a.gtld-servers.net. IN A 192.5.6.30 - ENTRY_END -RANGE_END - -; a.gtld-servers.net. -RANGE_BEGIN 0 100 - ADDRESS 192.5.6.30 - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - com. IN NS - SECTION ANSWER - com. IN NS a.gtld-servers.net. - SECTION ADDITIONAL - a.gtld-servers.net. IN A 192.5.6.30 - ENTRY_END - - ENTRY_BEGIN - MATCH opcode qtype subdomain - ADJUST copy_id copy_query - REPLY QR NOERROR - SECTION QUESTION - example.com. IN A - SECTION AUTHORITY - example.com. IN NS ns.example.com. - SECTION ADDITIONAL - ns.example.com. 10 IN A 1.2.3.4 - ENTRY_END - - ENTRY_BEGIN - MATCH opcode subdomain - ADJUST copy_id copy_query - REPLY QR NOERROR - SECTION QUESTION - nonexistant.com. IN A - SECTION AUTHORITY - nonexistant.com. IN NS ns.example.com. - SECTION ADDITIONAL - ns.example.com. 10 IN A 1.2.3.4 - ENTRY_END -RANGE_END - -; ns.example.com. -RANGE_BEGIN 0 100 - ADDRESS 1.2.3.4 - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - example.com. IN NS - SECTION ANSWER - example.com. IN NS ns1.nonexistant.com. - example.com. IN NS ns2.nonexistant.com. - example.com. IN NS ns3.nonexistant.com. - example.com. IN NS ns4.nonexistant.com. - example.com. IN NS ns5.nonexistant.com. - example.com. IN NS ns6.nonexistant.com. - example.com. IN NS ns7.nonexistant.com. - example.com. IN NS ns8.nonexistant.com. - example.com. IN NS ns9.nonexistant.com. - example.com. IN NS ns10.nonexistant.com. - example.com. IN NS ns11.nonexistant.com. - example.com. IN NS ns12.nonexistant.com. - ENTRY_END - - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - ns.example.com. IN A - SECTION ANSWER - ns.example.com. 10 IN A 1.2.3.4 - ENTRY_END - - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - ns.example.com. IN AAAA - ENTRY_END - - ENTRY_BEGIN - MATCH opcode subdomain - ADJUST copy_id copy_query - REPLY QR NXDOMAIN - SECTION QUESTION - nonexistant.com. IN A - ENTRY_END - - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - a.example.com. IN A - SECTION ANSWER - a.example.com. IN A 10.20.30.40 - SECTION AUTHORITY - example.com. IN NS ns1.nonexistant.com. - example.com. IN NS ns2.nonexistant.com. - example.com. IN NS ns3.nonexistant.com. - example.com. IN NS ns4.nonexistant.com. - example.com. IN NS ns5.nonexistant.com. - example.com. IN NS ns6.nonexistant.com. - example.com. IN NS ns7.nonexistant.com. - example.com. IN NS ns8.nonexistant.com. - example.com. IN NS ns9.nonexistant.com. - example.com. IN NS ns10.nonexistant.com. - example.com. IN NS ns11.nonexistant.com. - example.com. IN NS ns12.nonexistant.com. - ENTRY_END - - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - b.example.com. IN A - SECTION ANSWER - b.example.com. IN A 10.20.30.40 - SECTION AUTHORITY - example.com. IN NS ns1.nonexistant.com. - example.com. IN NS ns2.nonexistant.com. - example.com. IN NS ns3.nonexistant.com. - example.com. IN NS ns4.nonexistant.com. - example.com. IN NS ns5.nonexistant.com. - example.com. IN NS ns6.nonexistant.com. - example.com. IN NS ns7.nonexistant.com. - example.com. IN NS ns8.nonexistant.com. - example.com. IN NS ns9.nonexistant.com. - example.com. IN NS ns10.nonexistant.com. - example.com. IN NS ns11.nonexistant.com. - example.com. IN NS ns12.nonexistant.com. - ENTRY_END - - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - c.example.com. IN A - SECTION ANSWER - c.example.com. IN A 10.20.30.40 - SECTION AUTHORITY - example.com. IN NS ns1.nonexistant.com. - example.com. IN NS ns2.nonexistant.com. - example.com. IN NS ns3.nonexistant.com. - example.com. IN NS ns4.nonexistant.com. - example.com. IN NS ns5.nonexistant.com. - example.com. IN NS ns6.nonexistant.com. - example.com. IN NS ns7.nonexistant.com. - example.com. IN NS ns8.nonexistant.com. - example.com. IN NS ns9.nonexistant.com. - example.com. IN NS ns10.nonexistant.com. - example.com. IN NS ns11.nonexistant.com. - example.com. IN NS ns12.nonexistant.com. - ENTRY_END - - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - d.example.com. IN A - SECTION ANSWER - d.example.com. IN A 10.20.30.40 - SECTION AUTHORITY - example.com. IN NS ns1.nonexistant.com. - example.com. IN NS ns2.nonexistant.com. - example.com. IN NS ns3.nonexistant.com. - example.com. IN NS ns4.nonexistant.com. - example.com. IN NS ns5.nonexistant.com. - example.com. IN NS ns6.nonexistant.com. - example.com. IN NS ns7.nonexistant.com. - example.com. IN NS ns8.nonexistant.com. - example.com. IN NS ns9.nonexistant.com. - example.com. IN NS ns10.nonexistant.com. - example.com. IN NS ns11.nonexistant.com. - example.com. IN NS ns12.nonexistant.com. - ENTRY_END -RANGE_END - -STEP 1 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -a.example.com. IN A -ENTRY_END - -; This was resolved by asking the parent side nameservers -STEP 2 CHECK_ANSWER -ENTRY_BEGIN -MATCH all -REPLY QR RD RA NOERROR -SECTION QUESTION -a.example.com. IN A -SECTION ANSWER -a.example.com. IN A 10.20.30.40 -SECTION AUTHORITY -example.com. IN NS ns1.nonexistant.com. -example.com. IN NS ns2.nonexistant.com. -example.com. IN NS ns3.nonexistant.com. -example.com. IN NS ns4.nonexistant.com. -example.com. IN NS ns5.nonexistant.com. -example.com. IN NS ns6.nonexistant.com. -example.com. IN NS ns7.nonexistant.com. -example.com. IN NS ns8.nonexistant.com. -example.com. IN NS ns9.nonexistant.com. -example.com. IN NS ns10.nonexistant.com. -example.com. IN NS ns11.nonexistant.com. -example.com. IN NS ns12.nonexistant.com. -ENTRY_END - -; The child side nameservers are now known to Unbound - -; Query again, the child server nameservers will be asked now -STEP 3 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -b.example.com. IN A -ENTRY_END - -; This was resolved by falling back to the parent side nameservers -STEP 4 CHECK_ANSWER -ENTRY_BEGIN -MATCH all -REPLY QR RD RA NOERROR -SECTION QUESTION -b.example.com. IN A -SECTION ANSWER -b.example.com. IN A 10.20.30.40 -SECTION AUTHORITY -example.com. IN NS ns1.nonexistant.com. -example.com. IN NS ns2.nonexistant.com. -example.com. IN NS ns3.nonexistant.com. -example.com. IN NS ns4.nonexistant.com. -example.com. IN NS ns5.nonexistant.com. -example.com. IN NS ns6.nonexistant.com. -example.com. IN NS ns7.nonexistant.com. -example.com. IN NS ns8.nonexistant.com. -example.com. IN NS ns9.nonexistant.com. -example.com. IN NS ns10.nonexistant.com. -example.com. IN NS ns11.nonexistant.com. -example.com. IN NS ns12.nonexistant.com. -ENTRY_END - -; Query a third time, this will get the cached NXDOMAINs (no NX counter for -; those) and will go to the parent as a last resort. This query will test that -; we will not have resolution for the lame(parent side) addresses that could -; raise the NX counter because of no address addition to the delegation point -; (the same addresses are already there). -STEP 5 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -c.example.com. IN A -ENTRY_END - -; This was resolved by going back to the parent side nameservers (child side -; was exhausted from cache and queries < MAX_TARGET_NX). -STEP 6 CHECK_ANSWER -ENTRY_BEGIN -MATCH all -REPLY QR RD RA NOERROR -SECTION QUESTION -c.example.com. IN A -SECTION ANSWER -c.example.com. IN A 10.20.30.40 -SECTION AUTHORITY -example.com. IN NS ns1.nonexistant.com. -example.com. IN NS ns2.nonexistant.com. -example.com. IN NS ns3.nonexistant.com. -example.com. IN NS ns4.nonexistant.com. -example.com. IN NS ns5.nonexistant.com. -example.com. IN NS ns6.nonexistant.com. -example.com. IN NS ns7.nonexistant.com. -example.com. IN NS ns8.nonexistant.com. -example.com. IN NS ns9.nonexistant.com. -example.com. IN NS ns10.nonexistant.com. -example.com. IN NS ns11.nonexistant.com. -example.com. IN NS ns12.nonexistant.com. -ENTRY_END - -; Allow for the nameserver glue to expire -STEP 10 TIME_PASSES ELAPSE 11 - -; Query again for the parent side fallback -STEP 11 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -d.example.com. IN A -ENTRY_END - -; This was resolved by falling back to the parent side nameservers -STEP 12 CHECK_ANSWER -ENTRY_BEGIN -MATCH all -REPLY QR RD RA NOERROR -SECTION QUESTION -d.example.com. IN A -SECTION ANSWER -d.example.com. IN A 10.20.30.40 -SECTION AUTHORITY -example.com. IN NS ns1.nonexistant.com. -example.com. IN NS ns2.nonexistant.com. -example.com. IN NS ns3.nonexistant.com. -example.com. IN NS ns4.nonexistant.com. -example.com. IN NS ns5.nonexistant.com. -example.com. IN NS ns6.nonexistant.com. -example.com. IN NS ns7.nonexistant.com. -example.com. IN NS ns8.nonexistant.com. -example.com. IN NS ns9.nonexistant.com. -example.com. IN NS ns10.nonexistant.com. -example.com. IN NS ns11.nonexistant.com. -example.com. IN NS ns12.nonexistant.com. -ENTRY_END +;; K.ROOT-SERVERS.NET. +;RANGE_BEGIN 0 100 +; ADDRESS 193.0.14.129 +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; . IN NS +; SECTION ANSWER +; . IN NS K.ROOT-SERVERS.NET. +; SECTION ADDITIONAL +; K.ROOT-SERVERS.NET. IN A 193.0.14.129 +; ENTRY_END +; +; ENTRY_BEGIN +; MATCH opcode qtype subdomain +; ADJUST copy_id copy_query +; REPLY QR NOERROR +; SECTION QUESTION +; example.com. IN A +; SECTION AUTHORITY +; com. IN NS a.gtld-servers.net. +; SECTION ADDITIONAL +; a.gtld-servers.net. IN A 192.5.6.30 +; ENTRY_END +; +; ENTRY_BEGIN +; MATCH opcode subdomain +; ADJUST copy_id copy_query +; REPLY QR NOERROR +; SECTION QUESTION +; nonexistant.com. IN A +; SECTION AUTHORITY +; com. IN NS a.gtld-servers.net. +; SECTION ADDITIONAL +; a.gtld-servers.net. IN A 192.5.6.30 +; ENTRY_END +;RANGE_END +; +;; a.gtld-servers.net. +;RANGE_BEGIN 0 100 +; ADDRESS 192.5.6.30 +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; com. IN NS +; SECTION ANSWER +; com. IN NS a.gtld-servers.net. +; SECTION ADDITIONAL +; a.gtld-servers.net. IN A 192.5.6.30 +; ENTRY_END +; +; ENTRY_BEGIN +; MATCH opcode qtype subdomain +; ADJUST copy_id copy_query +; REPLY QR NOERROR +; SECTION QUESTION +; example.com. IN A +; SECTION AUTHORITY +; example.com. IN NS ns.example.com. +; SECTION ADDITIONAL +; ns.example.com. 10 IN A 1.2.3.4 +; ENTRY_END +; +; ENTRY_BEGIN +; MATCH opcode subdomain +; ADJUST copy_id copy_query +; REPLY QR NOERROR +; SECTION QUESTION +; nonexistant.com. IN A +; SECTION AUTHORITY +; nonexistant.com. IN NS ns.example.com. +; SECTION ADDITIONAL +; ns.example.com. 10 IN A 1.2.3.4 +; ENTRY_END +;RANGE_END +; +;; ns.example.com. +;RANGE_BEGIN 0 100 +; ADDRESS 1.2.3.4 +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; example.com. IN NS +; SECTION ANSWER +; example.com. IN NS ns1.nonexistant.com. +; example.com. IN NS ns2.nonexistant.com. +; example.com. IN NS ns3.nonexistant.com. +; example.com. IN NS ns4.nonexistant.com. +; example.com. IN NS ns5.nonexistant.com. +; example.com. IN NS ns6.nonexistant.com. +; example.com. IN NS ns7.nonexistant.com. +; example.com. IN NS ns8.nonexistant.com. +; example.com. IN NS ns9.nonexistant.com. +; example.com. IN NS ns10.nonexistant.com. +; example.com. IN NS ns11.nonexistant.com. +; example.com. IN NS ns12.nonexistant.com. +; ENTRY_END +; +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; ns.example.com. IN A +; SECTION ANSWER +; ns.example.com. 10 IN A 1.2.3.4 +; ENTRY_END +; +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; ns.example.com. IN AAAA +; ENTRY_END +; +; ENTRY_BEGIN +; MATCH opcode subdomain +; ADJUST copy_id copy_query +; REPLY QR NXDOMAIN +; SECTION QUESTION +; nonexistant.com. IN A +; ENTRY_END +; +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; a.example.com. IN A +; SECTION ANSWER +; a.example.com. IN A 10.20.30.40 +; SECTION AUTHORITY +; example.com. IN NS ns1.nonexistant.com. +; example.com. IN NS ns2.nonexistant.com. +; example.com. IN NS ns3.nonexistant.com. +; example.com. IN NS ns4.nonexistant.com. +; example.com. IN NS ns5.nonexistant.com. +; example.com. IN NS ns6.nonexistant.com. +; example.com. IN NS ns7.nonexistant.com. +; example.com. IN NS ns8.nonexistant.com. +; example.com. IN NS ns9.nonexistant.com. +; example.com. IN NS ns10.nonexistant.com. +; example.com. IN NS ns11.nonexistant.com. +; example.com. IN NS ns12.nonexistant.com. +; ENTRY_END +; +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; b.example.com. IN A +; SECTION ANSWER +; b.example.com. IN A 10.20.30.40 +; SECTION AUTHORITY +; example.com. IN NS ns1.nonexistant.com. +; example.com. IN NS ns2.nonexistant.com. +; example.com. IN NS ns3.nonexistant.com. +; example.com. IN NS ns4.nonexistant.com. +; example.com. IN NS ns5.nonexistant.com. +; example.com. IN NS ns6.nonexistant.com. +; example.com. IN NS ns7.nonexistant.com. +; example.com. IN NS ns8.nonexistant.com. +; example.com. IN NS ns9.nonexistant.com. +; example.com. IN NS ns10.nonexistant.com. +; example.com. IN NS ns11.nonexistant.com. +; example.com. IN NS ns12.nonexistant.com. +; ENTRY_END +; +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; c.example.com. IN A +; SECTION ANSWER +; c.example.com. IN A 10.20.30.40 +; SECTION AUTHORITY +; example.com. IN NS ns1.nonexistant.com. +; example.com. IN NS ns2.nonexistant.com. +; example.com. IN NS ns3.nonexistant.com. +; example.com. IN NS ns4.nonexistant.com. +; example.com. IN NS ns5.nonexistant.com. +; example.com. IN NS ns6.nonexistant.com. +; example.com. IN NS ns7.nonexistant.com. +; example.com. IN NS ns8.nonexistant.com. +; example.com. IN NS ns9.nonexistant.com. +; example.com. IN NS ns10.nonexistant.com. +; example.com. IN NS ns11.nonexistant.com. +; example.com. IN NS ns12.nonexistant.com. +; ENTRY_END +; +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; d.example.com. IN A +; SECTION ANSWER +; d.example.com. IN A 10.20.30.40 +; SECTION AUTHORITY +; example.com. IN NS ns1.nonexistant.com. +; example.com. IN NS ns2.nonexistant.com. +; example.com. IN NS ns3.nonexistant.com. +; example.com. IN NS ns4.nonexistant.com. +; example.com. IN NS ns5.nonexistant.com. +; example.com. IN NS ns6.nonexistant.com. +; example.com. IN NS ns7.nonexistant.com. +; example.com. IN NS ns8.nonexistant.com. +; example.com. IN NS ns9.nonexistant.com. +; example.com. IN NS ns10.nonexistant.com. +; example.com. IN NS ns11.nonexistant.com. +; example.com. IN NS ns12.nonexistant.com. +; ENTRY_END +;RANGE_END +; +;STEP 1 QUERY +;ENTRY_BEGIN +;REPLY RD +;SECTION QUESTION +;a.example.com. IN A +;ENTRY_END +; +;; This was resolved by asking the parent side nameservers +;STEP 2 CHECK_ANSWER +;ENTRY_BEGIN +;MATCH all +;REPLY QR RD RA NOERROR +;SECTION QUESTION +;a.example.com. IN A +;SECTION ANSWER +;a.example.com. IN A 10.20.30.40 +;SECTION AUTHORITY +;example.com. IN NS ns1.nonexistant.com. +;example.com. IN NS ns2.nonexistant.com. +;example.com. IN NS ns3.nonexistant.com. +;example.com. IN NS ns4.nonexistant.com. +;example.com. IN NS ns5.nonexistant.com. +;example.com. IN NS ns6.nonexistant.com. +;example.com. IN NS ns7.nonexistant.com. +;example.com. IN NS ns8.nonexistant.com. +;example.com. IN NS ns9.nonexistant.com. +;example.com. IN NS ns10.nonexistant.com. +;example.com. IN NS ns11.nonexistant.com. +;example.com. IN NS ns12.nonexistant.com. +;ENTRY_END +; +;; The child side nameservers are now known to Unbound +; +;; Query again, the child server nameservers will be asked now +;STEP 3 QUERY +;ENTRY_BEGIN +;REPLY RD +;SECTION QUESTION +;b.example.com. IN A +;ENTRY_END +; +;; This was resolved by falling back to the parent side nameservers +;STEP 4 CHECK_ANSWER +;ENTRY_BEGIN +;MATCH all +;REPLY QR RD RA NOERROR +;SECTION QUESTION +;b.example.com. IN A +;SECTION ANSWER +;b.example.com. IN A 10.20.30.40 +;SECTION AUTHORITY +;example.com. IN NS ns1.nonexistant.com. +;example.com. IN NS ns2.nonexistant.com. +;example.com. IN NS ns3.nonexistant.com. +;example.com. IN NS ns4.nonexistant.com. +;example.com. IN NS ns5.nonexistant.com. +;example.com. IN NS ns6.nonexistant.com. +;example.com. IN NS ns7.nonexistant.com. +;example.com. IN NS ns8.nonexistant.com. +;example.com. IN NS ns9.nonexistant.com. +;example.com. IN NS ns10.nonexistant.com. +;example.com. IN NS ns11.nonexistant.com. +;example.com. IN NS ns12.nonexistant.com. +;ENTRY_END +; +;; Query a third time, this will get the cached NXDOMAINs (no NX counter for +;; those) and will go to the parent as a last resort. This query will test that +;; we will not have resolution for the lame(parent side) addresses that could +;; raise the NX counter because of no address addition to the delegation point +;; (the same addresses are already there). +;STEP 5 QUERY +;ENTRY_BEGIN +;REPLY RD +;SECTION QUESTION +;c.example.com. IN A +;ENTRY_END +; +;; This was resolved by going back to the parent side nameservers (child side +;; was exhausted from cache and queries < MAX_TARGET_NX). +;STEP 6 CHECK_ANSWER +;ENTRY_BEGIN +;MATCH all +;REPLY QR RD RA NOERROR +;SECTION QUESTION +;c.example.com. IN A +;SECTION ANSWER +;c.example.com. IN A 10.20.30.40 +;SECTION AUTHORITY +;example.com. IN NS ns1.nonexistant.com. +;example.com. IN NS ns2.nonexistant.com. +;example.com. IN NS ns3.nonexistant.com. +;example.com. IN NS ns4.nonexistant.com. +;example.com. IN NS ns5.nonexistant.com. +;example.com. IN NS ns6.nonexistant.com. +;example.com. IN NS ns7.nonexistant.com. +;example.com. IN NS ns8.nonexistant.com. +;example.com. IN NS ns9.nonexistant.com. +;example.com. IN NS ns10.nonexistant.com. +;example.com. IN NS ns11.nonexistant.com. +;example.com. IN NS ns12.nonexistant.com. +;ENTRY_END +; +;; Allow for the nameserver glue to expire +;STEP 10 TIME_PASSES ELAPSE 11 +; +;; Query again for the parent side fallback +;STEP 11 QUERY +;ENTRY_BEGIN +;REPLY RD +;SECTION QUESTION +;d.example.com. IN A +;ENTRY_END +; +;; This was resolved by falling back to the parent side nameservers +;STEP 12 CHECK_ANSWER +;ENTRY_BEGIN +;MATCH all +;REPLY QR RD RA NOERROR +;SECTION QUESTION +;d.example.com. IN A +;SECTION ANSWER +;d.example.com. IN A 10.20.30.40 +;SECTION AUTHORITY +;example.com. IN NS ns1.nonexistant.com. +;example.com. IN NS ns2.nonexistant.com. +;example.com. IN NS ns3.nonexistant.com. +;example.com. IN NS ns4.nonexistant.com. +;example.com. IN NS ns5.nonexistant.com. +;example.com. IN NS ns6.nonexistant.com. +;example.com. IN NS ns7.nonexistant.com. +;example.com. IN NS ns8.nonexistant.com. +;example.com. IN NS ns9.nonexistant.com. +;example.com. IN NS ns10.nonexistant.com. +;example.com. IN NS ns11.nonexistant.com. +;example.com. IN NS ns12.nonexistant.com. +;ENTRY_END SCENARIO_END diff --git a/testdata/iter_nxns_parentside.rpl b/testdata/iter_nxns_parentside.rpl index 94a5a6f1b..a8425bf70 100644 --- a/testdata/iter_nxns_parentside.rpl +++ b/testdata/iter_nxns_parentside.rpl @@ -19,100 +19,100 @@ CONFIG_END SCENARIO_BEGIN Test that the NXNS fallback does not mess with parent side resolution -; K.ROOT-SERVERS.NET. -RANGE_BEGIN 0 100 - ADDRESS 193.0.14.129 - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - . IN NS - SECTION ANSWER - . IN NS K.ROOT-SERVERS.NET. - SECTION ADDITIONAL - K.ROOT-SERVERS.NET. IN A 193.0.14.129 - ENTRY_END - - ENTRY_BEGIN - MATCH opcode qtype subdomain - ADJUST copy_id copy_query - REPLY QR NOERROR - SECTION QUESTION - example.com. IN A - SECTION AUTHORITY - com. IN NS a.gtld-servers.net. - SECTION ADDITIONAL - a.gtld-servers.net. IN A 192.5.6.30 - ENTRY_END - - ENTRY_BEGIN - MATCH opcode subdomain - ADJUST copy_id copy_query - REPLY QR NOERROR - SECTION QUESTION - nonexistant.com. IN A - SECTION AUTHORITY - com. IN NS a.gtld-servers.net. - SECTION ADDITIONAL - a.gtld-servers.net. IN A 192.5.6.30 - ENTRY_END -RANGE_END - -; a.gtld-servers.net. -RANGE_BEGIN 0 100 - ADDRESS 192.5.6.30 - ENTRY_BEGIN - MATCH opcode qtype qname - ADJUST copy_id - REPLY QR NOERROR - SECTION QUESTION - com. IN NS - SECTION ANSWER - com. IN NS a.gtld-servers.net. - SECTION ADDITIONAL - a.gtld-servers.net. IN A 192.5.6.30 - ENTRY_END - - ENTRY_BEGIN - MATCH opcode qtype subdomain - ADJUST copy_id copy_query - REPLY QR NOERROR - SECTION QUESTION - example.com. IN A - SECTION AUTHORITY - example.com. IN NS ns1.nonexistant.com. - example.com. IN NS ns2.nonexistant.com. - example.com. IN NS ns3.nonexistant.com. - example.com. IN NS ns4.nonexistant.com. - example.com. IN NS ns5.nonexistant.com. - example.com. IN NS ns6.nonexistant.com. - example.com. IN NS ns7.nonexistant.com. - example.com. IN NS ns8.nonexistant.com. - ENTRY_END - - ENTRY_BEGIN - MATCH opcode subdomain - ADJUST copy_id copy_query - REPLY QR NXDOMAIN - SECTION QUESTION - nonexistant.com. IN A - ENTRY_END -RANGE_END - -STEP 1 QUERY -ENTRY_BEGIN -REPLY RD -SECTION QUESTION -a.example.com. IN A -ENTRY_END - -STEP 2 CHECK_ANSWER -ENTRY_BEGIN -MATCH all -REPLY QR RD RA SERVFAIL -SECTION QUESTION -a.example.com. IN A -ENTRY_END +;; K.ROOT-SERVERS.NET. +;RANGE_BEGIN 0 100 +; ADDRESS 193.0.14.129 +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; . IN NS +; SECTION ANSWER +; . IN NS K.ROOT-SERVERS.NET. +; SECTION ADDITIONAL +; K.ROOT-SERVERS.NET. IN A 193.0.14.129 +; ENTRY_END +; +; ENTRY_BEGIN +; MATCH opcode qtype subdomain +; ADJUST copy_id copy_query +; REPLY QR NOERROR +; SECTION QUESTION +; example.com. IN A +; SECTION AUTHORITY +; com. IN NS a.gtld-servers.net. +; SECTION ADDITIONAL +; a.gtld-servers.net. IN A 192.5.6.30 +; ENTRY_END +; +; ENTRY_BEGIN +; MATCH opcode subdomain +; ADJUST copy_id copy_query +; REPLY QR NOERROR +; SECTION QUESTION +; nonexistant.com. IN A +; SECTION AUTHORITY +; com. IN NS a.gtld-servers.net. +; SECTION ADDITIONAL +; a.gtld-servers.net. IN A 192.5.6.30 +; ENTRY_END +;RANGE_END +; +;; a.gtld-servers.net. +;RANGE_BEGIN 0 100 +; ADDRESS 192.5.6.30 +; ENTRY_BEGIN +; MATCH opcode qtype qname +; ADJUST copy_id +; REPLY QR NOERROR +; SECTION QUESTION +; com. IN NS +; SECTION ANSWER +; com. IN NS a.gtld-servers.net. +; SECTION ADDITIONAL +; a.gtld-servers.net. IN A 192.5.6.30 +; ENTRY_END +; +; ENTRY_BEGIN +; MATCH opcode qtype subdomain +; ADJUST copy_id copy_query +; REPLY QR NOERROR +; SECTION QUESTION +; example.com. IN A +; SECTION AUTHORITY +; example.com. IN NS ns1.nonexistant.com. +; example.com. IN NS ns2.nonexistant.com. +; example.com. IN NS ns3.nonexistant.com. +; example.com. IN NS ns4.nonexistant.com. +; example.com. IN NS ns5.nonexistant.com. +; example.com. IN NS ns6.nonexistant.com. +; example.com. IN NS ns7.nonexistant.com. +; example.com. IN NS ns8.nonexistant.com. +; ENTRY_END +; +; ENTRY_BEGIN +; MATCH opcode subdomain +; ADJUST copy_id copy_query +; REPLY QR NXDOMAIN +; SECTION QUESTION +; nonexistant.com. IN A +; ENTRY_END +;RANGE_END +; +;STEP 1 QUERY +;ENTRY_BEGIN +;REPLY RD +;SECTION QUESTION +;a.example.com. IN A +;ENTRY_END +; +;STEP 2 CHECK_ANSWER +;ENTRY_BEGIN +;MATCH all +;REPLY QR RD RA SERVFAIL +;SECTION QUESTION +;a.example.com. IN A +;ENTRY_END SCENARIO_END