Hello Linus,

Interesting idea; I have not see anything like this considered. In the IETF 
dns-sd WG the new approach is to move away from multicast by introducing a 
central registrar that takes service registrations, and service queries.
This is DNS-SD SRP (Service Registration Protocol). So then there may not be a 
need to optimize the multicast approach, anymore.

You could post a message on the DNS-SD mailing list - it's quite open to 
discussions I think and has many of the relevant experts subscribed.
https://www.ietf.org/mailman/listinfo/dnssd

One caveat of the method seems to be: if one host is offering a multitude of 
services, it needs to subscribe to multiple IPv6 multicast addresses which 
brings overhead of its own - specifically MLD/MLDv2 subscriptions and 
desubscriptions, which cause extra multicast traffic to be sent.

regards
Esko

-----Original Message-----
From: avahi <avahi-boun...@lists.freedesktop.org> On Behalf Of Linus Lüssing
Sent: Friday, January 13, 2023 21:46
To: avahi@lists.freedesktop.org
Subject: [avahi] More mDNS efficiency by using multiple multicast addresses? 
(like ICMPv6 Neighbor Discovery)

Hi,

As far as I know mDNS only uses the following two multicast addresses
so far: 224.0.0.251 for IPv4 and ff02::fb for IPv6.
In larger broadcast domains this can create quite a bit of "noise"
though.

I was wondering, is anyone aware of any attempts to extend mDNS
with mechanisms similar to ICMPv6 Neighbor Discovery to reduce the
amount of mDNS multicast transmissions in a network? Could someone
thing of any pitfalls if trying to adopt such an approach for mDNS?

ICMPv6 Neighbor Discovery has this beautiful concept of
solicited-node multicast addresses. Instead of broadcasting like
it was done with ARP Requests in IPv4, a host's unicast address is
mapped to a multicast address. When one IPv6 host wants to resolve
another host's IPv6 unicast address it uses this mapped IPv6
solicited-node multicast address. Which typically only this one
host listens to. That way a network with MLD snooping capabilities
can efficently direct the ICMPv6 Neighbor Solicitation message
with the mapped solicited-node multicast address to this one
specific listener, with no burden for unrelated hosts. And
for an ICMPv6 Neighbor Solicitation for
Duplicate-Address-Detection (DAD) instead of address resolution
there is typically even no listener at all. An MLD snooping switch
can drop it immediately.

So my naive thought/question would be if mDNS could use a
multicast address more like ff02::fb:<hash32(service-id|dns-id)>
instead (maybe even larger than just the last 32bit of the
multicast address, IPv6 uses 24bits though for the solicited-node
multicast address: FF02:0:0:0:0:1:FFXX:XXXX).

Any thoughts?

Cheers, Linus

Reply via email to