1 ; config options 2 server: 3 target-fetch-policy: "0 0 0 0 0" 4 qname-minimisation: "no" 5 minimal-responses: no 6 iter-scrub-promiscuous: no 7 8 stub-zone: 9 name: "." 10 stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. 11 CONFIG_END 12 13 SCENARIO_BEGIN Test lookup of malformed SVCB 14 15 ; K.ROOT-SERVERS.NET. 16 RANGE_BEGIN 0 100 17 ADDRESS 193.0.14.129 18 ENTRY_BEGIN 19 MATCH opcode qtype qname 20 ADJUST copy_id 21 REPLY QR NOERROR 22 SECTION QUESTION 23 . IN NS 24 SECTION ANSWER 25 . IN NS K.ROOT-SERVERS.NET. 26 SECTION ADDITIONAL 27 K.ROOT-SERVERS.NET. IN A 193.0.14.129 28 ENTRY_END 29 30 ENTRY_BEGIN 31 MATCH opcode subdomain 32 ADJUST copy_id copy_query 33 REPLY QR NOERROR 34 SECTION QUESTION 35 com. IN NS 36 SECTION AUTHORITY 37 com. IN NS a.gtld-servers.net. 38 SECTION ADDITIONAL 39 a.gtld-servers.net. IN A 192.5.6.30 40 ENTRY_END 41 RANGE_END 42 43 ; a.gtld-servers.net. 44 RANGE_BEGIN 0 100 45 ADDRESS 192.5.6.30 46 ENTRY_BEGIN 47 MATCH opcode qtype qname 48 ADJUST copy_id 49 REPLY QR NOERROR 50 SECTION QUESTION 51 com. IN NS 52 SECTION ANSWER 53 com. IN NS a.gtld-servers.net. 54 SECTION ADDITIONAL 55 a.gtld-servers.net. IN A 192.5.6.30 56 ENTRY_END 57 58 ENTRY_BEGIN 59 MATCH opcode subdomain 60 ADJUST copy_id copy_query 61 REPLY QR NOERROR 62 SECTION QUESTION 63 example.com. IN NS 64 SECTION AUTHORITY 65 example.com. IN NS ns.example.com. 66 SECTION ADDITIONAL 67 ns.example.com. IN A 1.2.3.4 68 ENTRY_END 69 RANGE_END 70 71 ; ns.example.com. 72 RANGE_BEGIN 0 100 73 ADDRESS 1.2.3.4 74 ENTRY_BEGIN 75 MATCH opcode qtype qname 76 ADJUST copy_id 77 REPLY QR NOERROR 78 SECTION QUESTION 79 example.com. IN NS 80 SECTION ANSWER 81 example.com. IN NS ns.example.com. 82 SECTION ADDITIONAL 83 ns.example.com. IN A 1.2.3.4 84 ENTRY_END 85 86 ENTRY_BEGIN 87 MATCH opcode qtype qname 88 ADJUST copy_id 89 REPLY QR AA NOERROR 90 SECTION QUESTION 91 www.example.com. IN HTTPS 92 SECTION ANSWER 93 www.example.com. IN HTTPS \# 17 00 01 00 00 01 00 03 02 68 32 00 01 00 03 02 68 33 94 ; Duplicate `alpn` key (17 bytes) 95 ; Decoded: 96 ; SvcPriority = 1 (service mode) 97 ; TargetName = . (root label, 0x00) 98 ; SvcParam[0]: key=1 (alpn), value_len=3, value=\x02h2 "h2" 99 ; SvcParam[1]: key=1 (alpn), value_len=3, value=\x02h3 DUPLICATE KEY 100 ENTRY_END 101 102 ENTRY_BEGIN 103 MATCH opcode qtype qname 104 ADJUST copy_id 105 REPLY QR AA NOERROR 106 SECTION QUESTION 107 testb.example.com. IN HTTPS 108 SECTION ANSWER 109 ; The parser for testbound does allow this. 110 ;testb.example.com. IN HTTPS \# 9 00 01 00 00 01 00 04 02 68 111 ; Truncated `alpn` value (9 bytes) 112 ; Decoded: 113 ; SvcPriority = 1 114 ; TargetName = . 115 ; SvcParam[0]: key=1 (alpn), value_len=4 (claims 4 bytes), value=\x02h (only 2 bytes present) 116 ; placeholder for hex: testb.example.com. IN HTTPS \# 9 00 01 00 00 01 00 02 01 68 117 HEX_ANSWER_BEGIN 118 000084000001000100000000057465737462076578616D706C6503636F6D0000410001057465737462076578616D706C6503636F6D000041000100000E10 119 0009 120 0001 121 00 122 000100040268 123 HEX_ANSWER_END 124 ENTRY_END 125 126 ENTRY_BEGIN 127 MATCH opcode qtype qname 128 ADJUST copy_id 129 REPLY QR AA NOERROR 130 SECTION QUESTION 131 testc.example.com. IN HTTPS 132 SECTION ANSWER 133 testc.example.com. IN HTTPS \# 21 00 01 00 00 01 00 06 02 68 32 02 68 33 00 04 00 04 01 02 03 04 134 ; valid HTTPS RDATA 135 ; SvcPriority=1, TargetName=., alpn=h2+h3, ipv4hint=1.2.3.4 136 ENTRY_END 137 RANGE_END 138 139 STEP 1 QUERY 140 ENTRY_BEGIN 141 REPLY RD 142 SECTION QUESTION 143 www.example.com. IN HTTPS 144 ENTRY_END 145 146 ; recursion happens here. 147 STEP 10 CHECK_ANSWER 148 ENTRY_BEGIN 149 MATCH all 150 REPLY QR RD RA NOERROR 151 SECTION QUESTION 152 www.example.com. IN HTTPS 153 SECTION ANSWER 154 www.example.com. 0 IN HTTPS 1 . alpn="h2" alpn="h3" 155 ENTRY_END 156 157 STEP 20 QUERY 158 ENTRY_BEGIN 159 REPLY RD 160 SECTION QUESTION 161 testb.example.com. IN HTTPS 162 ENTRY_END 163 164 ; recursion happens here. 165 STEP 30 CHECK_ANSWER 166 ENTRY_BEGIN 167 MATCH rcode 168 REPLY QR RD RA NOERROR 169 SECTION QUESTION 170 testb.example.com. IN HTTPS 171 SECTION ANSWER 172 ; testb.example.com. 0 IN HTTPS \# 9 000100000100040268 173 HEX_ANSWER_BEGIN 174 000084000001000100000000057465737462076578616D706C6503636F6D0000410001057465737462076578616D706C6503636F6D000041000100000E10 175 0009 176 0001 177 00 178 000100040268 179 HEX_ANSWER_END 180 ENTRY_END 181 182 STEP 40 QUERY 183 ENTRY_BEGIN 184 REPLY RD 185 SECTION QUESTION 186 testc.example.com. IN HTTPS 187 ENTRY_END 188 189 ; recursion happens here. 190 STEP 50 CHECK_ANSWER 191 ENTRY_BEGIN 192 MATCH all 193 REPLY QR RD RA NOERROR 194 SECTION QUESTION 195 testc.example.com. IN HTTPS 196 SECTION ANSWER 197 testc.example.com. 0 IN HTTPS 1 . alpn="h2,h3" ipv4hint=1.2.3.4 198 ENTRY_END 199 200 SCENARIO_END 201