All

The WGLC has been closed.

There will also be an IETF LC to raise concerns.

tim


On Fri, May 21, 2021 at 2:17 PM Brian Dickson <brian.peter.dick...@gmail.com>
wrote:

>
>
> On Thu, May 20, 2021 at 11:29 AM Ralf Weber <d...@fl1ger.de> wrote:
>
>> Moin!
>>
>> On 20 May 2021, at 19:59, Eric Orth wrote:
>>
>> > A big selling point behind why we have client implementers planning to
>> > query HTTPS records is the expectation that this will be the only query
>> > type we will need to add and that it can be extended to handle any
>> future
>> > information we need for establishing HTTPS connections (and we want
>> > mechanisms to be able to add stuff in the future to keep improving HTTPS
>> > connection behavior).  It is not practical to add too many additional
>> DNS
>> > queries to make web requests, and nobody wants a
>> > deprecation/new-SVCB-based-record-type cycle every time we need to add
>> > something.  So in the end, I do not expect HTTPS would see much adoption
>> > without the extensibility.
>> I fully agree. The point I was making is that ECH sort of already is an
>> extension that were not in the original draft and there may be other
>> Enhancements in the future.
>>
>
> I think the handling of presentation formats and wire formats leaves much
> to be desired.
>
> However, the handling of future extensions is not (IMHO) currently usable
> via the existing proposed mechanism.
>
> The discussion about "what if ECN needed to be added later" got me
> thinking about the issue.
>
> I think there is a need for something similar to RFC3597, except for
> fields in a record rather than a BLOB for the record itself.
> RFC3597 is fine for an RRTYPE with only one RDATA element/structure, but
> not for complex RRs.
> So, this problem on sub-field encodings has arisen from ignoring RFC5507
> (regardless of why it has been ignored).
>
> There is a pertinent question about any method of addressing this gap:
> should it be limited to SVCB (part of this draft), or its own thing?
> I can see valid arguments either way.
> If it is a standalone thing, that would seem to encourage, rather than
> discourage, ignoring 5507.
> If it is part of SVCB, it would not be expected that an authority server
> would support that outside of supporting SVCB/HTTPS.
> Possibly, it could be seen as an enhancement to 3597, in which case the
> standalone should definitely point the reader at 5507.
>
> Here's a short list of things I think such a scheme should have:
>
>    - A set of defined presentation-format:wire-format (bidirectional)
>    mappings
>    - A method of applying a label to a key number
>    - For backward compatibility to any existing implementations, these
>    should both be optional, with the existing mapping as the default
>    - The set of mappings should be independent of the key numbers to
>    which they are applied
>    - The set of mappings should be a superset of any mappings used in
>    SVCB already, and should include other well-known mappings
>    - There should be a mapping type for "flag" where the existence of the
>    keyNNN without any data is supported for both presentation and wire 
> formats.
>    - This mapping should be used for all of the existing SVCB parameter
>    types that already exist, to make implementation much easier and consistent
>
> Here's what I think would work:
>
>    - keyNNNN:label:mapping=value
>
> with the following alternate formats:
>
>    - label=value -- requires label be understood by the server, including
>    both the corresponding key number and mapping
>    - keyNNNN::mapping=value -- no label included
>    - keyNNNN=value -- no label included, default generic mapping
>    - keyNNNN:label=value -- label available, default generic mapping
>
> For purposes of examples, here are some suggested mappings:
>
>    - TLVSorted - space-separated sequence of name=value mapped items;
>    wire format is a sorted sequence of 16-bit key, 16-bit length, and
>    wire-format value defined for the corresponding key (sorted by key number)
>       - SVCB and HTTPS formats are TLVSorted
>       - Presentation formats do not need to be sorted
>    - uint16 - single integer with no leading zeros, maps to 16-bit
>    unsigned value, must be a singleton
>    - uint16SortedList - comma-separated list of integers between 0-65535,
>    maps to a sorted sequence of 16-bit unsigned values
>    - base64 - base-64 encoded blob, maps to whatever binary it decodes
>    to, must be a singleton
>    - flag - has no value in presentation format, has no data in wire
>    format (implicitly a singleton)
>    - ipv4list - one or more IPv4 addresses in acceptable standard format
>    for an A record - if multiple, space separated and double-quote delimited;
>    maps to a sequence of IPv4 addresses (A record wire encoding)
>    - ipv6list - one or more IPv6 addresses in acceptable standard format
>    for an AAAA record - if multiple, space separated and double-quote
>    delimited; maps to a sequence of iPv6 addresses (AAAA record wire encoding)
>    - CSV - one or more strings, separated by commas, enclosed in double
>    quotes, as follows:
>       - inside quotes is encoded as the subset of printable-ASCII
>       characters in the range of decimal 32 to decimal 126 with escaped
>       (backslash) double-quote, escaped escape (double backslash), and also
>       permitting other 8-bit values as escaped-decimal values \DDD
>       - maps to sequence of (length | value) where each length is uint8
>       and length(value) is between 1 and 255 inclusive.
>       - mapped value of one string from the list is the contents of the
>       substituted string (e.g. with escape substitutions performed) without 
> the
>       enclosing quotes
>    - FQDN - a valid domain name; maps to wire-encoding for a domain name
>    - The defined field mappings may be added to by <TBD> process (RFC
>    required, Standards Action, other?)
>
> Here's what I think the appropriate key/label/mapping should be for the
> initial record and SvcParams:
>
>    - SVCB/HTTPS Resource Record is:
>       - SvcPriority (uint16)
>       - TargetName (FQDN)
>       - SvcParams (TLVSorted)
>    - SvcParams table keynum/label/mapping:
>    - 0/mandatory/uint16SortedList
>    - 1/alpn/CSV
>    - 2/no-default-alpn/flag
>    - 3/port/uint16
>    - 4/ipv4hint/ipv4list
>    - 5/ech/base64
>    - 6/ipv6hint/ipv6list
>
> The specifics for alpn and CSV are somewhat novel, I realize, but I think
> they are sufficiently unambiguous and well-defined to enable 2-way mappings
> of arbitrary binary blobs of up to 255 characters, so can handle any
> potential ALPN value.
> Thus, the example used of foo\\,bar,h2 would be, as a CSV, "foo,bar","h2",
> and in wire format would be "\x00 \x11 \x07 foo,bar \x02 h2".
>
> Brian
> _______________________________________________
> DNSOP mailing list
> DNSOP@ietf.org
> https://www.ietf.org/mailman/listinfo/dnsop
>
_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to