Skip to content

Latest commit

 

History

History
313 lines (299 loc) · 17.9 KB

test-meta-queries.md

File metadata and controls

313 lines (299 loc) · 17.9 KB

Test of meta and q-type queries

The table below contains results of queries issued for all the RR types in the meta and q-types range (128 .. 255) as well as the oddball meta-type OPT (41) which does not fall into that range, to various resolver and authoritative server implementations.

Currently, there are 3 defined meta-types: OPT (41), TKEY (249), and TSIG (250). There are 5 defined Q-types: ANY (255), MAILA (253), MAILB (254), AXFR (252), and IXFR (251).

We would expect resolvers to process any q-type they have implemented support for. For any meta-type they support, they would follow the rules for processing that meta-type if they have implemented support for it. Notably OPT, and TSIG have no defined usage in a DNS query, so an error should be returned.

If a meta or q-type is valid in a query, it should only be locally processed by the server, and should not be subject to iterative resolution.

All unallocated code points in the rest of the meta and q-types range should be responded to with an error. This does not seem to be universally true in practice though, and there is some variability in the behavior of the resolvers we tested. BIND, Unbound, and PowerDNS recursor do in fact return errors, FORMERR in BIND and Unbound, and SERVFAIL in PowerDNS Recursor. Knot Resolver, Google, and Cloudflare also appear to forward them outbound for iterative resolution.

Similarly, authoriative servers should also return errors for any meta or q-type they do not implement, or have undefined query behavior.

The DNS protocol specification should clarify the correct behavior for the processing of queries for meta and q-types (including unallocated code points in their range) by DNS servers. Additionally, a new range should be reserved from the RR type space designated to meta and q-types for private use.

Resolver tests

Date of test: 2024-02-25

Type BIND Unbound PowerDNS Knot Google Cloudflare
41 FORMERR FORMERR SERVFAIL SERVFAIL NOERROR NOERROR
128 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
129 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
130 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
131 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
132 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
133 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
134 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
135 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
136 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
137 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
138 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
139 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
140 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
141 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
142 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
143 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
144 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
145 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
146 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
147 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
148 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
149 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
150 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
151 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
152 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
153 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
154 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
155 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
156 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
157 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
158 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
159 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
160 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
161 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
162 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
163 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
164 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
165 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
166 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
167 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
168 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
169 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
170 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
171 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
172 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
173 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
174 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
175 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
176 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
177 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
178 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
179 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
180 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
181 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
182 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
183 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
184 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
185 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
186 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
187 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
188 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
189 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
190 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
191 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
192 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
193 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
194 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
195 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
196 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
197 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
198 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
199 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
200 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
201 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
202 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
203 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
204 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
205 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
206 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
207 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
208 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
209 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
210 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
211 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
212 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
213 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
214 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
215 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
216 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
217 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
218 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
219 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
220 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
221 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
222 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
223 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
224 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
225 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
226 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
227 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
228 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
229 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
230 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
231 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
232 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
233 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
234 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
235 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
236 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
237 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
238 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
239 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
240 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
241 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
242 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
243 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
244 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
245 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
246 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
247 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
248 FORMERR FORMERR SERVFAIL NOERROR NOERROR NOERROR
249 FORMERR FORMERR SERVFAIL SERVFAIL NOERROR NOERROR
250 FORMERR FORMERR SERVFAIL SERVFAIL NOERROR NOERROR
251 NOERROR NOERROR NOERROR NOERROR NOERROR NOERROR
252 NOTAUTH REFUSED SERVFAIL REFUSED SERVFAIL REFUSED
253 NOTIMP FORMERR SERVFAIL NOERROR NOERROR NOERROR
254 NOTIMP FORMERR SERVFAIL NOERROR NOERROR NOERROR
255 NOERROR NOERROR NOERROR SERVFAIL NOERROR NOTIMP

Authoritate Server tests

Here, I've tested queries issued to zones that I have deployed on a set of DNS authoritative server implementations and providers.

Type bind9 nsd ns1 ultradns cloudflare route53
41 FORMERR NOERROR NOERROR NOERROR FORMERR NOERROR
128 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
129 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
130 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
131 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
132 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
133 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
134 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
135 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
136 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
137 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
138 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
139 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
140 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
141 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
142 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
143 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
144 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
145 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
146 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
147 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
148 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
149 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
150 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
151 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
152 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
153 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
154 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
155 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
156 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
157 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
158 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
159 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
160 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
161 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
162 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
163 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
164 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
165 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
166 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
167 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
168 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
169 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
170 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
171 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
172 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
173 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
174 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
175 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
176 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
177 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
178 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
179 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
180 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
181 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
182 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
183 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
184 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
185 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
186 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
187 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
188 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
189 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
190 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
191 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
192 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
193 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
194 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
195 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
196 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
197 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
198 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
199 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
200 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
201 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
202 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
203 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
204 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
205 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
206 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
207 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
208 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
209 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
210 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
211 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
212 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
213 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
214 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
215 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
216 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
217 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
218 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
219 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
220 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
221 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
222 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
223 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
224 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
225 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
226 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
227 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
228 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
229 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
230 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
231 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
232 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
233 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
234 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
235 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
236 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
237 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
238 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
239 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
240 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
241 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
242 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
243 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
244 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
245 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
246 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
247 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
248 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
249 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
250 FORMERR NOERROR NOTIMP NOERROR FORMERR NOERROR
251 REFUSED NOTIMP NOTIMP NOERROR FORMERR NOERROR
252 REFUSED NOTIMP NOTIMP REFUSED FORMERR TIMEOUT
253 NOTIMP NOERROR NOTIMP NOERROR FORMERR NOERROR
254 NOTIMP NOERROR NOTIMP NOERROR FORMERR NOERROR
255 NOERROR NOERROR NOERROR NOERROR NOERROR NOERROR