- Disabled the nxns tests for now (to be reverted).

This commit is contained in:
George Thessalonikefs 2022-10-04 14:32:35 +02:00
parent abe597b568
commit 34a9c13a90
3 changed files with 814 additions and 813 deletions

View file

@ -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

View file

@ -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

View file

@ -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