1 ; config options 2 server: 3 target-fetch-policy: "0 0 0 0 0" 4 module-config: "subnetcache validator iterator" 5 verbosity: 4 6 qname-minimisation: no 7 ; the domain is not configured for edns-subnet 8 ;send-client-subnet: 1.2.3.4 9 client-subnet-zone: "ex2.com" 10 11 stub-zone: 12 name: "." 13 stub-addr: 193.0.14.129 14 15 stub-zone: 16 name: "example.com" 17 stub-addr: 1.2.3.4 18 stub-zone: 19 name: "ex2.com" 20 stub-addr: 1.2.3.5 21 CONFIG_END 22 23 SCENARIO_BEGIN Test subnet cache with scope zero for global cache store. 24 25 ; the upstream server. 26 RANGE_BEGIN 0 100 27 ADDRESS 193.0.14.129 28 29 ENTRY_BEGIN 30 MATCH opcode qtype qname ednsdata 31 ADJUST copy_id 32 REPLY QR NOERROR 33 SECTION QUESTION 34 . IN NS 35 SECTION ANSWER 36 . IN NS K.ROOT-SERVERS.NET. 37 SECTION ADDITIONAL 38 HEX_EDNSDATA_BEGIN 39 ;; we expect to receive empty 40 HEX_EDNSDATA_END 41 K.ROOT-SERVERS.NET. IN A 193.0.14.129 42 ENTRY_END 43 RANGE_END 44 45 RANGE_BEGIN 0 21 46 ADDRESS 1.2.3.4 47 ENTRY_BEGIN 48 MATCH opcode qtype qname 49 ADJUST copy_id 50 REPLY QR AA NOERROR 51 SECTION QUESTION 52 www.example.com. IN A 53 SECTION ANSWER 54 www.example.com. IN A 10.20.30.40 55 SECTION AUTHORITY 56 SECTION ADDITIONAL 57 ENTRY_END 58 RANGE_END 59 60 RANGE_BEGIN 20 61 61 ADDRESS 1.2.3.5 62 ENTRY_BEGIN 63 MATCH opcode qtype qname 64 ADJUST copy_id 65 REPLY QR AA NOERROR 66 SECTION QUESTION 67 www.ex2.com. IN A 68 SECTION ANSWER 69 www.ex2.com. IN A 10.20.30.41 70 SECTION AUTHORITY 71 SECTION ADDITIONAL 72 ENTRY_END 73 RANGE_END 74 75 RANGE_BEGIN 90 101 76 ADDRESS 1.2.3.5 77 ENTRY_BEGIN 78 MATCH opcode qtype qname ednsdata 79 ADJUST copy_id copy_ednsdata_assume_clientsubnet 80 REPLY QR NOERROR 81 SECTION QUESTION 82 www.ex2.com. IN A 83 SECTION ANSWER 84 www.ex2.com. 10 IN A 10.20.30.42 85 SECTION AUTHORITY 86 ex2.com. IN NS ns.ex2.com. 87 SECTION ADDITIONAL 88 HEX_EDNSDATA_BEGIN 89 ; client is 127.0.0.1 90 00 08 ; OPC 91 00 07 ; option length 92 00 01 ; Family 93 18 00 ; source mask, scopemask 94 7f 00 00 ; address 95 HEX_EDNSDATA_END 96 ns.ex2.com. IN A 1.2.3.5 97 ENTRY_END 98 RANGE_END 99 100 ; query for 0.0.0.0/0 101 STEP 10 QUERY 102 ENTRY_BEGIN 103 HEX_ANSWER_BEGIN 104 00 00 01 00 00 01 00 00 ;ID 0 105 00 00 00 01 03 77 77 77 ; www.example.com A? (DO) 106 07 65 78 61 6d 70 6c 65 107 03 63 6f 6d 00 00 01 00 108 01 00 00 29 10 00 00 00 109 80 00 00 08 110 111 00 08 00 04 ; OPC, optlen 112 00 01 00 00 ; ip4, scope 0, source 0 113 ;0.0.0.0/0 114 HEX_ANSWER_END 115 ENTRY_END 116 117 STEP 20 CHECK_ANSWER 118 ENTRY_BEGIN 119 MATCH all ednsdata 120 REPLY QR RD RA NOERROR 121 SECTION QUESTION 122 www.example.com. IN A 123 SECTION ANSWER 124 www.example.com. IN A 10.20.30.40 125 SECTION AUTHORITY 126 SECTION ADDITIONAL 127 HEX_EDNSDATA_BEGIN 128 00 08 ; OPC 129 00 04 ; option length 130 00 01 ; Family 131 00 00 ; source mask, scopemask 132 ; address 133 HEX_EDNSDATA_END 134 ENTRY_END 135 136 ; That that it is in global cache. 137 STEP 30 QUERY 138 ENTRY_BEGIN 139 REPLY RD NOERROR 140 SECTION QUESTION 141 www.example.com. IN A 142 ENTRY_END 143 144 STEP 40 CHECK_ANSWER 145 ENTRY_BEGIN 146 MATCH all ednsdata 147 REPLY QR RD RA NOERROR 148 SECTION QUESTION 149 www.example.com. IN A 150 SECTION ANSWER 151 www.example.com. IN A 10.20.30.40 152 ENTRY_END 153 154 ; With a query where the name is whitelisted, it should not be stored 155 ; in global cache. 156 STEP 50 QUERY 157 ENTRY_BEGIN 158 HEX_ANSWER_BEGIN 159 00 00 01 00 00 01 00 00 ;ID 0 160 00 00 00 01 03 77 77 77 ; www.ex2.com A? (DO) 161 03 65 78 32 03 63 6f 6d 162 00 00 01 00 01 00 00 29 163 10 00 00 00 80 00 00 08 164 165 00 08 00 04 ; OPC, optlen 166 00 01 00 00 ; ip4, scope 0, source 0 167 ;0.0.0.0/0 168 HEX_ANSWER_END 169 ENTRY_END 170 171 STEP 60 CHECK_ANSWER 172 ENTRY_BEGIN 173 MATCH all ednsdata 174 REPLY QR RD RA NOERROR 175 SECTION QUESTION 176 www.ex2.com. IN A 177 SECTION ANSWER 178 www.ex2.com. IN A 10.20.30.41 179 SECTION AUTHORITY 180 SECTION ADDITIONAL 181 HEX_EDNSDATA_BEGIN 182 00 08 ; OPC 183 00 04 ; option length 184 00 01 ; Family 185 00 00 ; source mask, scopemask 186 ; address 187 HEX_EDNSDATA_END 188 ENTRY_END 189 190 STEP 70 QUERY 191 ENTRY_BEGIN 192 HEX_ANSWER_BEGIN 193 00 00 01 00 00 01 00 00 ;ID 0 194 00 00 00 01 03 77 77 77 ; www.ex2.com A? (DO) 195 03 65 78 32 03 63 6f 6d 196 00 00 01 00 01 00 00 29 197 10 00 00 00 80 00 00 08 198 199 00 08 00 04 ; OPC, optlen 200 00 01 00 00 ; ip4, scope 0, source 0 201 ;0.0.0.0/0 202 HEX_ANSWER_END 203 ENTRY_END 204 205 STEP 80 CHECK_ANSWER 206 ENTRY_BEGIN 207 MATCH all ednsdata 208 REPLY QR RD RA NOERROR 209 SECTION QUESTION 210 www.ex2.com. IN A 211 SECTION ANSWER 212 www.ex2.com. IN A 10.20.30.41 213 SECTION AUTHORITY 214 SECTION ADDITIONAL 215 HEX_EDNSDATA_BEGIN 216 00 08 ; OPC 217 00 04 ; option length 218 00 01 ; Family 219 00 00 ; source mask, scopemask 220 ; address 221 HEX_EDNSDATA_END 222 ENTRY_END 223 224 ; www.ex2.com is not in the global cache. and gets subnet treatment 225 STEP 90 QUERY 226 ENTRY_BEGIN 227 REPLY RD NOERROR 228 SECTION QUESTION 229 www.ex2.com. IN A 230 ENTRY_END 231 232 STEP 100 CHECK_ANSWER 233 ENTRY_BEGIN 234 MATCH all ednsdata 235 REPLY QR RD RA NOERROR 236 SECTION QUESTION 237 www.ex2.com. IN A 238 SECTION ANSWER 239 www.ex2.com. IN A 10.20.30.42 240 ENTRY_END 241 242 ; that result is in the subnet cache 243 STEP 110 QUERY 244 ENTRY_BEGIN 245 HEX_ANSWER_BEGIN 246 00 00 01 00 00 01 00 00 ;ID 0 247 00 00 00 01 03 77 77 77 ; www.ex2.com A? (DO) 248 03 65 78 32 03 63 6f 6d 249 00 00 01 00 01 00 00 29 250 10 00 00 00 80 00 00 0b 251 252 00 08 00 07 ; OPC, optlen 253 ; ip4 127.0.0.0/24 scope /0 254 00 01 ; Family 255 18 00 ; source mask, scopemask 256 7f 00 00 ; address 257 HEX_ANSWER_END 258 ENTRY_END 259 260 STEP 120 CHECK_ANSWER 261 ENTRY_BEGIN 262 MATCH all ednsdata 263 REPLY QR RD RA NOERROR 264 SECTION QUESTION 265 www.ex2.com. IN A 266 SECTION ANSWER 267 www.ex2.com. IN A 10.20.30.42 268 SECTION AUTHORITY 269 SECTION ADDITIONAL 270 HEX_EDNSDATA_BEGIN 271 00 08 ; OPC 272 00 07 ; option length 273 ; ip4 127.0.0.0/24 scope /24 274 00 01 ; Family 275 18 18 ; source mask, scopemask 276 7f 00 00 ; address 277 HEX_EDNSDATA_END 278 ENTRY_END 279 280 SCENARIO_END 281