Re: A mechanism to encode HTTP version information in DNS

------ Original Message ------
From: "Amos Jeffries" <squid3@treenet.co.nz>
To: "Adrien W. de Croy" <adrien@qbik.com>
Cc: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Sent: 16/02/2013 3:19:46 p.m.
Subject: Re: A mechanism to encode HTTP version information in DNS
>On 15/02/2013 9:05 p.m., Adrien W. de Croy wrote:
>>
>>Are you talking about DNS labels?
>I was yes. Does this include the URL string label?

if you mean the URI RR data field (as per draft-faltstrom-uri), it can 
be quite long, being defined as a sequence of one or more 
<character-string> which are (byte) length-prefixed strings, but which 
can be concatenated.

It would more likely run into limitations on max datagram size.  I think 
implementations are supposed to handle at least 576 bytes, but to go 
bigger is a DNS extension, and I don't know how well supported it is. 
Otherwise you fail over to DNS over TCP, which I think would be 
problematic in our case due to added RTs / latency.

in DNS, a label refers to a part of a name (e.g. FQDN is a sequence of 
labels separated by dots), so "URL string label" is a bit confusing.

If you're referring to the authority part of a URI, being a domain name, 
it is subject to the limitations of DNS.

>>
>>DNS label max length is 63 (6 bits) only, due to overloading of offset 
>>pointer with label length.
>>
>>overall domain name max length is 255, although this is I guess 
>>relatively arbitrary, it's possible to code a longer name on a DNS 
>>packet, but not a longer label.
>>
>
>So the big question: is the URL string field a label? or do we catenate 
>it from multiple labels?
>
>Amos
>
>
>>
>>
>>------ Original Message ------
>>From: "Amos Jeffries" <squid3@treenet.co.nz>
>>To: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
>>Sent: 15/02/2013 6:46:52 p.m.
>>Subject: Re: A mechanism to encode HTTP version information in DNS
>>>On 15/02/2013 9:16 a.m., Phillip Hallam-Baker wrote:
>>>>Encoding HTTP version information in DNS is easy if you don't 
>>>>particularly care about using DNS properly or want to do anything 
>>>>more than encode HTTP version information.
>>>>
>>>>Doing it well gets rather more complex. A DNS query costs a round 
>>>>trip so you would ideally like to make it pay. Also the process of 
>>>>deploying DNS records takes some time and it is better to reuse an 
>>>>existing record but only if that will not create ambiguity.
>>>>
>>>>Looking again at the URI record, I think that we could use it to 
>>>>provide a HTTP version flag and other useful features in the DNS. In 
>>>>particular we can use the URI record to effect a HTTP redirect in 
>>>>DNS (a UDP round trip) rather than require a TCP round trip. It also 
>>>>provides for fault tolerance and load balancing and works well with 
>>>>Web Services.
>>>
>>>One small note on this assertion:
>>>   FQDN are capable of being anything up to 256 octets long 
>>>*per-label*. When the FQDN is greater than 250 octets or so this will 
>>>add both a UDP round trip plus a TCP round trip, on top of the final 
>>>connection setup round trip. This may not seem a critical point, but 
>>>we are already encountering web sites and services with >64 octet 
>>>FQDN in public traffic which is causing TLS certificate issues.
>>>
>>>
>>>That asside, I am liking this proposal better than any of the earlier 
>>>DNS proposals. I can forsee support from Squid being implemented if 
>>>this is selected to go ahead.
>>>
>>>Amos
>>>
>>>
>>
>
>

Received on Saturday, 16 February 2013 06:34:44 UTC