1; Check if the prefetch option works properly when serve-expired is combined 2; with client-subnet-always-forward for non-ECS clients. The prefetch query 3; needs to result in an outgoing query without ECS. 4 5server: 6 trust-anchor-signaling: no 7 target-fetch-policy: "0 0 0 0 0" 8 serve-expired: yes 9 serve-expired-client-timeout: 0 10 client-subnet-always-forward: yes 11 module-config: "subnetcache iterator" 12 verbosity: 3 13 access-control: 127.0.0.1 allow_snoop 14 qname-minimisation: no 15 minimal-responses: no 16 17stub-zone: 18 name: "." 19 stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. 20CONFIG_END 21 22SCENARIO_BEGIN Test serve-expired and client-subnet-always-forward without ECS in the request 23 24; K.ROOT-SERVERS.NET. 25RANGE_BEGIN 0 100 26 ADDRESS 193.0.14.129 27 ENTRY_BEGIN 28 MATCH opcode qtype qname ednsdata 29 ADJUST copy_id 30 REPLY QR NOERROR 31 SECTION QUESTION 32 . IN NS 33 SECTION ANSWER 34 . IN NS K.ROOT-SERVERS.NET. 35 SECTION ADDITIONAL 36 K.ROOT-SERVERS.NET. IN A 193.0.14.129 37 ENTRY_END 38 39 ENTRY_BEGIN 40 MATCH opcode qtype qname 41 ADJUST copy_id 42 REPLY QR NOERROR 43 SECTION QUESTION 44 www.example.com. IN A 45 SECTION AUTHORITY 46 com. IN NS a.gtld-servers.net. 47 SECTION ADDITIONAL 48 a.gtld-servers.net. IN A 192.5.6.30 49 ENTRY_END 50RANGE_END 51 52; a.gtld-servers.net. 53RANGE_BEGIN 0 100 54 ADDRESS 192.5.6.30 55 ENTRY_BEGIN 56 MATCH opcode qtype qname ednsdata 57 ADJUST copy_id 58 REPLY QR NOERROR 59 SECTION QUESTION 60 com. IN NS 61 SECTION ANSWER 62 com. IN NS a.gtld-servers.net. 63 SECTION ADDITIONAL 64 a.gtld-servers.net. IN A 192.5.6.30 65 ENTRY_END 66 67 ENTRY_BEGIN 68 MATCH opcode qtype qname 69 ADJUST copy_id 70 REPLY QR NOERROR 71 SECTION QUESTION 72 www.example.com. IN A 73 SECTION AUTHORITY 74 example.com. IN NS ns.example.com. 75 SECTION ADDITIONAL 76 ns.example.com. IN A 1.2.3.4 77 ENTRY_END 78RANGE_END 79 80; ns.example.com. 81RANGE_BEGIN 0 100 82 ADDRESS 1.2.3.4 83 ENTRY_BEGIN 84 MATCH opcode qtype qname 85 ADJUST copy_id 86 REPLY QR NOERROR 87 SECTION QUESTION 88 example.com. IN NS 89 SECTION ANSWER 90 example.com. IN NS ns.example.com. 91 SECTION ADDITIONAL 92 ns.example.com. IN A 1.2.3.4 93 ENTRY_END 94 95 ; response to query of interest 96 ENTRY_BEGIN 97 MATCH opcode qtype qname 98 ADJUST copy_id 99 REPLY QR NOERROR 100 SECTION QUESTION 101 www.example.com. IN A 102 SECTION ANSWER 103 www.example.com. 10 IN A 10.20.30.40 104 SECTION AUTHORITY 105 example.com. IN NS ns.example.com. 106 SECTION ADDITIONAL 107 ns.example.com. IN A 1.2.3.4 108 ENTRY_END 109RANGE_END 110 111STEP 1 QUERY 112ENTRY_BEGIN 113REPLY RD 114SECTION QUESTION 115www.example.com. IN A 116ENTRY_END 117 118; This answer should be in the global cache 119STEP 2 CHECK_ANSWER 120ENTRY_BEGIN 121MATCH all 122REPLY QR RD RA NOERROR 123SECTION QUESTION 124www.example.com. IN A 125SECTION ANSWER 126www.example.com. IN A 10.20.30.40 127SECTION AUTHORITY 128example.com. IN NS ns.example.com. 129SECTION ADDITIONAL 130ns.example.com. IN A 1.2.3.4 131ENTRY_END 132 133; Wait for the TTL to expire 134STEP 3 TIME_PASSES ELAPSE 20 135 136STEP 11 QUERY 137ENTRY_BEGIN 138REPLY RD 139SECTION QUESTION 140www.example.com. IN A 141ENTRY_END 142 143; This record came from the global cache and a prefetch was triggered 144STEP 12 CHECK_ANSWER 145ENTRY_BEGIN 146MATCH all ttl 147REPLY QR RD RA NOERROR 148SECTION QUESTION 149www.example.com. IN A 150SECTION ANSWER 151www.example.com. 30 IN A 10.20.30.40 152SECTION AUTHORITY 153example.com. 3580 IN NS ns.example.com. 154SECTION ADDITIONAL 155ns.example.com. 3580 IN A 1.2.3.4 156ENTRY_END 157 158STEP 13 CHECK_OUT_QUERY 159ENTRY_BEGIN 160 MATCH all 161 REPLY NOERROR DO 162 SECTION QUESTION 163 www.example.com. IN A 164ENTRY_END 165 166STEP 14 TRAFFIC 167 168SCENARIO_END 169