Hi Ben,

On 11 May 2021, at 12:08, Ben Schwartz <bemasc=40google....@dmarc.ietf.org> 
wrote:

> OK, I've proposed text documenting the reasoning here: 
> https://github.com/MikeBishop/dns-alt-svc/pull/323/files 
> <https://github.com/MikeBishop/dns-alt-svc/pull/323/files>.

I definitely appreciate the effort, since I think I agree that documenting the 
design decisions are a good idea. However, I think perhaps the reasoning needs 
more work (see below).

> The proposed text is:
> 
> Storing a key-value map within a single RR, rather than placing each key-value
> pair in a separate RR, provides the following advantages:
> 
> * It enables a familiar key=value zone file syntax that matches zone authors'
>   experience with command-line arguments and other typical key-value mappings.

Since zone files generally don't include any key value pairs of the kind SVCB 
currently specifies, I don't understand this point. Surely the unfamiliarity 
with how to parse this kind of syntax illustrates that this is not familiar?

> * It avoids requiring zone file authors to manage inter-pair binding IDs.

I think you will have to expand that point, since I'm not convinced I 
understand what you mean.

> * It makes each record independently meaningful, consistent with the usual
>   convention for DNS records (c.f. SRV, MX, AAAA, etc.).

If you think of the DNS itself as a key-value store, with keys of the form 
(QCLASS, QTYPE, QNAME) then the corresponding value is an RRSet, not an 
individual resource record. Individual RRs are not returned in responses; 
RRSets are (understanding that the results are not functionally different in 
the case of an RRSet with a single member).

Your examples of SRV, MX and AAAA, somewhat ironically, are all prime examples 
of why the whole RRSet matters and you can't rely on a single RR from a set in 
a respose.

> * It saves at least 11 bytes of overhead per parameter by avoiding repetition 
> of
>   the name, type, class, TTL, and inter-pair binding ID.

... but it inflates response volume in the case where a separate SvcParams 
RRSet is able to be cached significantly longer than the SVCB RRSet.

> * It provides a wire format whose structural nesting matches the logical scope
>   of each key=value pair, and avoids requiring cross-RR reconstruction of
>   bindings by the client.

This seems like it is documenting a design choice rather than explaining it. 
The decision to include a list of key-value pairs in the SVCB RDATA is good 
because it avoids having to do something different?


Joe

Attachment: signature.asc
Description: Message signed with OpenPGP

_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to