1# config 2server: 3 send-client-subnet: 1.2.3.4 4 max-client-subnet-ipv4: 17 5 module-config: "subnetcache iterator" 6 qname-minimisation: no 7 minimal-responses: yes 8 target-fetch-policy: "0 0 0 0 0" 9 10stub-zone: 11 name: "." 12 stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. 13CONFIG_END 14 15SCENARIO_BEGIN Test subnet with no edns subnet from server multiple times 16; Multiple queries are sent to a server that does not reply with the 17; edns-subnet option. 18 19; K.ROOT-SERVERS.NET. 20RANGE_BEGIN 0 100 21 ADDRESS 193.0.14.129 22ENTRY_BEGIN 23MATCH opcode qtype qname 24ADJUST copy_id 25REPLY QR NOERROR 26SECTION QUESTION 27. IN NS 28SECTION ANSWER 29. IN NS K.ROOT-SERVERS.NET. 30SECTION ADDITIONAL 31K.ROOT-SERVERS.NET. IN A 193.0.14.129 32ENTRY_END 33 34ENTRY_BEGIN 35MATCH opcode subdomain 36ADJUST copy_id copy_query 37REPLY QR NOERROR 38SECTION QUESTION 39com. IN NS 40SECTION AUTHORITY 41com. IN NS a.gtld-servers.net. 42SECTION ADDITIONAL 43a.gtld-servers.net. IN A 192.5.6.30 44ENTRY_END 45RANGE_END 46 47; a.gtld-servers.net. 48RANGE_BEGIN 0 100 49 ADDRESS 192.5.6.30 50 51ENTRY_BEGIN 52MATCH opcode subdomain 53ADJUST copy_id copy_query 54REPLY QR NOERROR 55SECTION QUESTION 56example.com. IN NS 57SECTION AUTHORITY 58example.com. IN NS ns.example.com. 59SECTION ADDITIONAL 60ns.example.com. IN A 1.2.3.4 61ENTRY_END 62RANGE_END 63 64; ns.example.com. 65RANGE_BEGIN 50 52 66 ADDRESS 1.2.3.4 67 68ENTRY_BEGIN 69MATCH opcode qtype qname 70ADJUST copy_id 71REPLY QR AA NOERROR 72SECTION QUESTION 73example.com. IN NS 74SECTION ANSWER 75example.com. IN NS ns.example.com. 76ENTRY_END 77 78ENTRY_BEGIN 79MATCH opcode qtype qname 80ADJUST copy_id 81REPLY QR AA NOERROR 82SECTION QUESTION 83ns.example.com. IN A 84SECTION ANSWER 85ns.example.com. IN A 1.2.3.4 86ENTRY_END 87 88ENTRY_BEGIN 89MATCH opcode qtype qname 90ADJUST copy_id 91REPLY QR AA NOERROR 92SECTION QUESTION 93ns.example.com. IN AAAA 94SECTION ANSWER 95SECTION AUTHORITY 96example.com. IN SOA ns.example.com. host.example.com. 4 86400 3600 86400 3600 97ENTRY_END 98 99ENTRY_BEGIN 100MATCH opcode qtype qname ednsdata 101ADJUST copy_id 102REPLY QR AA NOERROR 103SECTION QUESTION 104www.example.com. IN A 105SECTION ANSWER 106SECTION ADDITIONAL 107 ; Match this subnet option 108 HEX_EDNSDATA_BEGIN 109 ; client is 127.0.0.1 110 00 08 ; OPC 111 00 07 ; option length 112 00 01 ; Family 113 11 00 ; source mask, scopemask 114 7f 00 00 ; address 115 HEX_EDNSDATA_END 116 ; This is the response, without the subnet option 117 HEX_ANSWER_BEGIN; 118 00 00 84 00 00 01 00 01 ; ID 0 QR AA NOERROR 119 00 00 00 01 03 77 77 77 ; www.example.com A (DO) 120 07 65 78 61 6d 70 6c 65 121 03 63 6f 6d 00 00 01 00 122 01 123 C0 0C 00 01 00 01 00 00 0E 10 ; www.example.com. A IN 3600 124 00 04 0A 14 1E 2C ; rdata 10.20.30.44 125 00 00 29 10 00 00 00 126 80 00 00 00 127 HEX_ANSWER_END 128ENTRY_END 129 130ENTRY_BEGIN 131MATCH opcode qtype qname ednsdata 132ADJUST copy_id 133REPLY QR AA NOERROR 134SECTION QUESTION 135www.example.com. IN A 136SECTION ANSWER 137SECTION ADDITIONAL 138 ; Match this subnet option 139 HEX_EDNSDATA_BEGIN 140 ; client is 127.2.0.1 141 00 08 ; OPC 142 00 07 ; option length 143 00 01 ; Family 144 11 00 ; source mask, scopemask 145 7f 02 00 ; address 146 HEX_EDNSDATA_END 147 ; This is the response, without the subnet option 148 HEX_ANSWER_BEGIN; 149 00 00 84 00 00 01 00 01 ; ID 0 QR AA NOERROR 150 00 00 00 01 03 77 77 77 ; www.example.com A (DO) 151 07 65 78 61 6d 70 6c 65 152 03 63 6f 6d 00 00 01 00 153 01 154 C0 0C 00 01 00 01 00 00 0E 10 ; www.example.com. A IN 3600 155 00 04 0A 14 1E 2C ; rdata 10.20.30.44 156 00 00 29 10 00 00 00 157 80 00 00 00 158 HEX_ANSWER_END 159ENTRY_END 160 161ENTRY_BEGIN 162MATCH opcode qtype qname ednsdata 163ADJUST copy_id 164REPLY QR AA NOERROR 165SECTION QUESTION 166www.example.com. IN A 167SECTION ANSWER 168SECTION ADDITIONAL 169 ; Match this subnet option 170 HEX_EDNSDATA_BEGIN 171 ; client is 127.3.0.1 172 00 08 ; OPC 173 00 07 ; option length 174 00 01 ; Family 175 11 00 ; source mask, scopemask 176 7f 03 00 ; address 177 HEX_EDNSDATA_END 178 ; This is the response, without the subnet option 179 HEX_ANSWER_BEGIN; 180 00 00 84 00 00 01 00 01 ; ID 0 QR AA NOERROR 181 00 00 00 01 03 77 77 77 ; www.example.com A (DO) 182 07 65 78 61 6d 70 6c 65 183 03 63 6f 6d 00 00 01 00 184 01 185 C0 0C 00 01 00 01 00 00 0E 10 ; www.example.com. A IN 3600 186 00 04 0A 14 1E 2C ; rdata 10.20.30.44 187 00 00 29 10 00 00 00 188 80 00 00 00 189 HEX_ANSWER_END 190ENTRY_END 191 192; The answer for a query without subnet 193;ENTRY_BEGIN 194;MATCH opcode qtype qname 195;ADJUST copy_id 196;REPLY QR AA NOERROR 197;SECTION QUESTION 198;www.example.com. IN A 199;SECTION ANSWER 200;www.example.com. IN A 10.20.30.40 201;ENTRY_END 202RANGE_END 203 204; ns.example.com. 205RANGE_BEGIN 53 57 206 ADDRESS 1.2.3.4 207; The answer for a query without subnet 208ENTRY_BEGIN 209MATCH opcode qtype qname 210ADJUST copy_id 211REPLY QR AA NOERROR 212SECTION QUESTION 213www.example.com. IN A 214SECTION ANSWER 215www.example.com. IN A 10.20.30.40 216ENTRY_END 217RANGE_END 218 219STEP 10 QUERY 220ENTRY_BEGIN 221 HEX_ANSWER_BEGIN; 222 00 00 01 00 00 01 00 00 ; ID 0 223 00 00 00 01 03 77 77 77 ; www.example.com A? (DO) 224 07 65 78 61 6d 70 6c 65 225 03 63 6f 6d 00 00 01 00 226 01 00 00 29 10 00 00 00 227 80 00 00 0b 228 229 00 08 00 07 ; OPC, optlen 230 00 01 11 00 ; ip4, scope 17, source 0 231 7f 00 00 ; 127.0.0.0/17 232 HEX_ANSWER_END 233ENTRY_END 234 235STEP 20 QUERY 236ENTRY_BEGIN 237 HEX_ANSWER_BEGIN; 238 00 00 01 00 00 01 00 00 ; ID 0 239 00 00 00 01 03 77 77 77 ; www.example.com A? (DO) 240 07 65 78 61 6d 70 6c 65 241 03 63 6f 6d 00 00 01 00 242 01 00 00 29 10 00 00 00 243 80 00 00 0b 244 245 00 08 00 07 ; OPC, optlen 246 00 01 11 00 ; ip4, scope 17, source 0 247 7f 02 00 ; 127.2.0.0/17 248 HEX_ANSWER_END 249ENTRY_END 250 251STEP 30 QUERY 252ENTRY_BEGIN 253 HEX_ANSWER_BEGIN; 254 00 00 01 00 00 01 00 00 ; ID 0 255 00 00 00 01 03 77 77 77 ; www.example.com A? (DO) 256 07 65 78 61 6d 70 6c 65 257 03 63 6f 6d 00 00 01 00 258 01 00 00 29 10 00 00 00 259 80 00 00 0b 260 261 00 08 00 07 ; OPC, optlen 262 00 01 11 00 ; ip4, scope 17, source 0 263 7f 03 00 ; 127.3.0.0/17 264 HEX_ANSWER_END 265ENTRY_END 266 267; recursion happens here. 268; The upstream server RANGE starts responding at STEP 50. 269STEP 50 TRAFFIC 270 271; The upstream server now responds for the nonsubnet response. 272STEP 55 TRAFFIC 273 274STEP 60 CHECK_ANSWER 275ENTRY_BEGIN 276MATCH all ednsdata 277REPLY QR RD RA DO NOERROR 278SECTION QUESTION 279www.example.com. IN A 280SECTION ANSWER 281www.example.com. IN A 10.20.30.40 282;www.example.com. IN A 10.20.30.44 283SECTION ADDITIONAL 284; HEX_EDNSDATA_BEGIN 285; ; client is 127.3.0.1 286; 00 08 ; OPC 287; 00 07 ; option length 288; 00 01 ; Family 289; 11 00 ; source mask, scopemask 290; 7f 03 00 ; address 291; HEX_EDNSDATA_END 292ENTRY_END 293 294STEP 70 CHECK_ANSWER 295ENTRY_BEGIN 296MATCH all ednsdata 297REPLY QR RD RA DO NOERROR 298SECTION QUESTION 299www.example.com. IN A 300SECTION ANSWER 301www.example.com. IN A 10.20.30.40 302;www.example.com. IN A 10.20.30.44 303SECTION ADDITIONAL 304; HEX_EDNSDATA_BEGIN 305; ; client is 127.2.0.1 306; 00 08 ; OPC 307; 00 07 ; option length 308; 00 01 ; Family 309; 11 00 ; source mask, scopemask 310; 7f 02 00 ; address 311; HEX_EDNSDATA_END 312ENTRY_END 313 314STEP 80 CHECK_ANSWER 315ENTRY_BEGIN 316MATCH all ednsdata 317REPLY QR RD RA DO NOERROR 318SECTION QUESTION 319www.example.com. IN A 320SECTION ANSWER 321www.example.com. IN A 10.20.30.40 322;www.example.com. IN A 10.20.30.44 323SECTION ADDITIONAL 324; HEX_EDNSDATA_BEGIN 325; ; client is 127.0.0.1 326; 00 08 ; OPC 327; 00 07 ; option length 328; 00 01 ; Family 329; 11 00 ; source mask, scopemask 330; 7f 00 00 ; address 331; HEX_EDNSDATA_END 332ENTRY_END 333 334SCENARIO_END 335