Subject: Re: [dnssd] Questions about draft-cheshire-mdnsext-hybrid-02

From: Stuart Cheshire <[email-masked]>
Date: Sun, 02 Mar 2014 07:14:19 -0800

On 25 Feb, 2014, at 00:41, Markus Stenberg <[email-masked]> wrote:

> In my experience, most common clients don’t try to set up LLQ at all. Your mileage may vary though.

Can you list what the “common clients” are?

The DNS-SD APIs on Mac, iOS and Android all use LLQ.

For this to work, they need to find the “_dns-llq._udp” SRV record telling them what host and port is providing the LLQ service, e.g.

% dig _dns-llq._udp.services.example.com. srv

; <<>> DiG 9.8.3-P1 <<>> _dns-llq._udp.services.example.com. srv
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42890
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;_dns-llq._udp.services.example.com. IN	SRV

;; ANSWER SECTION:
_dns-llq._udp.services.example.com. 3600	IN SRV	0 0 12345 hybrid-proxy.services.example.com.

;; AUTHORITY SECTION:
services.example.com.	7200	IN	NS	hybrid-proxy.services.example.com.

;; ADDITIONAL SECTION:
hybrid-proxy.services.example.com.	86400	IN	A	10.1.2.3

Do you have this SRV record in place?

Stuart Cheshire

---

From: Markus Stenberg <[email-masked]>
Date: Sun, 2 Mar 2014 16:01:58 +0000

> The DNS-SD APIs on Mac, iOS and Android all use LLQ.

Your OS X 10.8.latest (mDNSResponder 377-ish), Avahi 0.6something. I’m pretty sure behavior is same on OS X 10.9 too, but I haven’t looked at wireshark outputs recently. 

> % dig _dns-llq._udp.services.example.com. srv

They seem to also require global non-RFC1918 IPv4 address, perhaps. Or NAT-PMP, PCP or something. At least with IPv6 GUA + RFC 1918 IPv4 address I have not found a client that _does_ LLQ _for IPv6_, at least without some extra stuff on the network that isn’t present in my home/test lab as it’s almost IPv6-only with only fallback v4 connectivity.

> Do you have this SRV record in place?

It isn’t ever even asked for.

Cheers,

-Markus

---

From: Stuart Cheshire <[email-masked]>
Date: Sun, 02 Mar 2014 15:42:34 -0800

> They seem to also require global non-RFC1918 IPv4 address, perhaps. Or NAT-PMP, PCP or something. At least with IPv6 GUA + RFC 1918 IPv4 address I have not found a client that _does_ LLQ _for IPv6_…

You are right. This is an unfortunate bug. If the client has an RFC1918 IPv4 address, then it tries to make a port mapping using PCP or NAT-PMP (or even UPnP IGD), and won’t try the LLQ setup if it can’t create a port mapping.

Stuart Cheshire

---

From: Tom Pusateri <[email-masked]>
Date: Mon, 3 Mar 2014 09:59:49 +0000

> Do you have this SRV record in place?

So, in this example, since services.example.com. is delegated to hybrid-proxy.services.example.com. then it's the hybrid proxy that will provide the _dns-llq._udp SRV record, correct? If so, then this should be added to the next version of the hybrid proxy draft.

Thanks,
Tom