# config server: send-client-subnet: 1.2.3.4 max-client-subnet-ipv4: 17 module-config: "subnetcache iterator" qname-minimisation: no minimal-responses: yes target-fetch-policy: "0 0 0 0 0" stub-zone: name: "." stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. CONFIG_END SCENARIO_BEGIN Test subnet with no edns subnet from server multiple times ; Multiple queries are sent to a server that does not reply with the ; edns-subnet option. ; 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 subdomain ADJUST copy_id copy_query REPLY QR NOERROR SECTION QUESTION com. IN NS 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 subdomain ADJUST copy_id copy_query REPLY QR NOERROR SECTION QUESTION example.com. IN NS SECTION AUTHORITY example.com. IN NS ns.example.com. SECTION ADDITIONAL ns.example.com. IN A 1.2.3.4 ENTRY_END RANGE_END ; ns.example.com. RANGE_BEGIN 50 52 ADDRESS 1.2.3.4 ENTRY_BEGIN MATCH opcode qtype qname ADJUST copy_id REPLY QR AA NOERROR SECTION QUESTION example.com. IN NS SECTION ANSWER example.com. IN NS ns.example.com. ENTRY_END ENTRY_BEGIN MATCH opcode qtype qname ADJUST copy_id REPLY QR AA NOERROR SECTION QUESTION ns.example.com. IN A SECTION ANSWER ns.example.com. IN A 1.2.3.4 ENTRY_END ENTRY_BEGIN MATCH opcode qtype qname ADJUST copy_id REPLY QR AA NOERROR SECTION QUESTION ns.example.com. IN AAAA SECTION ANSWER SECTION AUTHORITY example.com. IN SOA ns.example.com. host.example.com. 4 86400 3600 86400 3600 ENTRY_END ENTRY_BEGIN MATCH opcode qtype qname ednsdata ADJUST copy_id REPLY QR AA NOERROR SECTION QUESTION www.example.com. IN A SECTION ANSWER SECTION ADDITIONAL ; Match this subnet option HEX_EDNSDATA_BEGIN ; client is 127.0.0.1 00 08 ; OPC 00 07 ; option length 00 01 ; Family 11 00 ; source mask, scopemask 7f 00 00 ; address HEX_EDNSDATA_END ; This is the response, without the subnet option HEX_ANSWER_BEGIN; 00 00 84 00 00 01 00 01 ; ID 0 QR AA NOERROR 00 00 00 01 03 77 77 77 ; www.example.com A (DO) 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 00 01 00 01 C0 0C 00 01 00 01 00 00 0E 10 ; www.example.com. A IN 3600 00 04 0A 14 1E 2C ; rdata 10.20.30.44 00 00 29 10 00 00 00 80 00 00 00 HEX_ANSWER_END ENTRY_END ENTRY_BEGIN MATCH opcode qtype qname ednsdata ADJUST copy_id REPLY QR AA NOERROR SECTION QUESTION www.example.com. IN A SECTION ANSWER SECTION ADDITIONAL ; Match this subnet option HEX_EDNSDATA_BEGIN ; client is 127.2.0.1 00 08 ; OPC 00 07 ; option length 00 01 ; Family 11 00 ; source mask, scopemask 7f 02 00 ; address HEX_EDNSDATA_END ; This is the response, without the subnet option HEX_ANSWER_BEGIN; 00 00 84 00 00 01 00 01 ; ID 0 QR AA NOERROR 00 00 00 01 03 77 77 77 ; www.example.com A (DO) 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 00 01 00 01 C0 0C 00 01 00 01 00 00 0E 10 ; www.example.com. A IN 3600 00 04 0A 14 1E 2C ; rdata 10.20.30.44 00 00 29 10 00 00 00 80 00 00 00 HEX_ANSWER_END ENTRY_END ENTRY_BEGIN MATCH opcode qtype qname ednsdata ADJUST copy_id REPLY QR AA NOERROR SECTION QUESTION www.example.com. IN A SECTION ANSWER SECTION ADDITIONAL ; Match this subnet option HEX_EDNSDATA_BEGIN ; client is 127.3.0.1 00 08 ; OPC 00 07 ; option length 00 01 ; Family 11 00 ; source mask, scopemask 7f 03 00 ; address HEX_EDNSDATA_END ; This is the response, without the subnet option HEX_ANSWER_BEGIN; 00 00 84 00 00 01 00 01 ; ID 0 QR AA NOERROR 00 00 00 01 03 77 77 77 ; www.example.com A (DO) 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 00 01 00 01 C0 0C 00 01 00 01 00 00 0E 10 ; www.example.com. A IN 3600 00 04 0A 14 1E 2C ; rdata 10.20.30.44 00 00 29 10 00 00 00 80 00 00 00 HEX_ANSWER_END ENTRY_END ; The answer for a query without subnet ;ENTRY_BEGIN ;MATCH opcode qtype qname ;ADJUST copy_id ;REPLY QR AA NOERROR ;SECTION QUESTION ;www.example.com. IN A ;SECTION ANSWER ;www.example.com. IN A 10.20.30.40 ;ENTRY_END RANGE_END ; ns.example.com. RANGE_BEGIN 53 57 ADDRESS 1.2.3.4 ; The answer for a query without subnet ENTRY_BEGIN MATCH opcode qtype qname ADJUST copy_id REPLY QR AA NOERROR SECTION QUESTION www.example.com. IN A SECTION ANSWER www.example.com. IN A 10.20.30.40 ENTRY_END RANGE_END STEP 10 QUERY ENTRY_BEGIN HEX_ANSWER_BEGIN; 00 00 01 00 00 01 00 00 ; ID 0 00 00 00 01 03 77 77 77 ; www.example.com A? (DO) 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 00 01 00 01 00 00 29 10 00 00 00 80 00 00 0b 00 08 00 07 ; OPC, optlen 00 01 11 00 ; ip4, scope 17, source 0 7f 00 00 ; 127.0.0.0/17 HEX_ANSWER_END ENTRY_END STEP 20 QUERY ENTRY_BEGIN HEX_ANSWER_BEGIN; 00 00 01 00 00 01 00 00 ; ID 0 00 00 00 01 03 77 77 77 ; www.example.com A? (DO) 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 00 01 00 01 00 00 29 10 00 00 00 80 00 00 0b 00 08 00 07 ; OPC, optlen 00 01 11 00 ; ip4, scope 17, source 0 7f 02 00 ; 127.2.0.0/17 HEX_ANSWER_END ENTRY_END STEP 30 QUERY ENTRY_BEGIN HEX_ANSWER_BEGIN; 00 00 01 00 00 01 00 00 ; ID 0 00 00 00 01 03 77 77 77 ; www.example.com A? (DO) 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 00 01 00 01 00 00 29 10 00 00 00 80 00 00 0b 00 08 00 07 ; OPC, optlen 00 01 11 00 ; ip4, scope 17, source 0 7f 03 00 ; 127.3.0.0/17 HEX_ANSWER_END ENTRY_END ; recursion happens here. ; The upstream server RANGE starts responding at STEP 50. STEP 50 TRAFFIC ; The upstream server now responds for the nonsubnet response. STEP 55 TRAFFIC STEP 60 CHECK_ANSWER ENTRY_BEGIN MATCH all ednsdata REPLY QR RD RA DO NOERROR SECTION QUESTION www.example.com. IN A SECTION ANSWER www.example.com. IN A 10.20.30.40 ;www.example.com. IN A 10.20.30.44 SECTION ADDITIONAL ; HEX_EDNSDATA_BEGIN ; ; client is 127.3.0.1 ; 00 08 ; OPC ; 00 07 ; option length ; 00 01 ; Family ; 11 00 ; source mask, scopemask ; 7f 03 00 ; address ; HEX_EDNSDATA_END ENTRY_END STEP 70 CHECK_ANSWER ENTRY_BEGIN MATCH all ednsdata REPLY QR RD RA DO NOERROR SECTION QUESTION www.example.com. IN A SECTION ANSWER www.example.com. IN A 10.20.30.40 ;www.example.com. IN A 10.20.30.44 SECTION ADDITIONAL ; HEX_EDNSDATA_BEGIN ; ; client is 127.2.0.1 ; 00 08 ; OPC ; 00 07 ; option length ; 00 01 ; Family ; 11 00 ; source mask, scopemask ; 7f 02 00 ; address ; HEX_EDNSDATA_END ENTRY_END STEP 80 CHECK_ANSWER ENTRY_BEGIN MATCH all ednsdata REPLY QR RD RA DO NOERROR SECTION QUESTION www.example.com. IN A SECTION ANSWER www.example.com. IN A 10.20.30.40 ;www.example.com. IN A 10.20.30.44 SECTION ADDITIONAL ; HEX_EDNSDATA_BEGIN ; ; client is 127.0.0.1 ; 00 08 ; OPC ; 00 07 ; option length ; 00 01 ; Family ; 11 00 ; source mask, scopemask ; 7f 00 00 ; address ; HEX_EDNSDATA_END ENTRY_END SCENARIO_END