[avahi] More mDNS efficiency by using multiple multicast addresses? (like ICMPv6 Neighbor Discovery)
Linus Lüssing
linus.luessing at c0d3.blue
Fri Jan 13 20:46:08 UTC 2023
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
More information about the avahi
mailing list