-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Request text duplication #4
Comments
Looking a bit deeper into how DNS packets are made up, I learned that there is internal lookup compression used when a name's text starts with 0b11 (where otherwise there are zeros from a label being less than 64 byte long). I found no specification that'd describe other use of other patterns there (say, a 0b01 that'd indicate a string offset in the request rather the response), so probably there's no such specification and we fall to the "If not" branch. (It would barely pay to send responses without the requests without such cross-references, as without the internal lookup the response records would just again contain all the long text from the requests). |
One could just set |
With the compression inside the response, that alone won't do much good; it'd turn a response that currently has a As for implementation complexity, the nice thing about application/dns-message is that a simpler server can just not do any of these tricks -- but alas, there seem to be no existing viable tricks. |
So the question is if we should skip |
I agree with you. As we can't do anything within the existing dns-message (that we can recommend or even make mandatory), all this becomes just a point to be documented. Text suggestion:
Alternative formats (either DNS serialized in CBOR with consideration for request-response binding, or even more getaddrinfo-like subsets of DNS) can still be added later on, in follow-ups or appendices, and be optional and to-be-negotiated. |
"[…] existing DNS applicaitons and use cases.", I would say, but otherwise it makes sense to add this. Question is where. |
That's why this is not a PR ;-) -- I'll just try to keep it in mind while the document grows and place it when the right point presents itself. |
RFC 8427 (Representing DNS Messages in JSON) could be of interest when it comes to other serialization formats of DNS messages ;-). |
Summarizing two points of a recent chat here:
|
Mh, I don't think we came to that conclusion... that is just something we proposed in #14. |
Would "that some resolvers do, and that resolvers may do" be correct for the first half (CNAME flattening), and "is something that resolvers may do" for the latter (removing unrelated records)? |
I am not sure CNAME flattening is something that resolvers do in general. |
no. they don't do that in general but some do this, e.g., Cloudflare. (at least in the past, i don't know the current state).
the canonical name is not the alias but the "owner" is the alias (see Section 3.3.1, RFC 1035). in this example, the alias is "host". |
Since omitting the question is a big part of https://datatracker.ietf.org/doc/draft-lenders-dns-cbor/, I think we can close this. Or do you disagree @chrysn? |
Yes, let's defer that to dns-cbor; closing. |
Using the application/dns-message format means following general DNS practice that the request is more or less echoed in the response. (The queries are part of the response). This makes sense in DNS where there's only the transaction ID, but less so in CoAP where there's cryptographic request/response protection.
Are there any mechanisms of DNS that'd allow us to elide the queries from the response?
If so, I suggest we recommend them with some level of normativity.
If not, then this probably won't change short of using alternative serializations (which I understand to be in scope for add-ons in this document), but should be pointed out, stating that wire efficiency is traded here for cognitive (transferring established DNS concepts) and implementation (where responses are fed to a local DNS-ish processor) complexity.
The text was updated successfully, but these errors were encountered: