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