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