Why do mDNS (Bonjour, Avahi, etc.) use UDP?

It seems to me that many problems with DNS, especially security issues, have the root cause of DNS implemented over UDP; for example, the defendant should not be who he says he is.

I don’t know the details of the mDNS protocol (which, I assume, is much higher than DNS), perhaps it takes care of these problems at its application level. Can anyone shed some light on this for me?

+7
security udp bonjour mdns
source share
2 answers

"m" in mDNS means "multicast". An mDNS request is a normal multicast DNS query (also broadcast) to a local subnet. Each node on the subnet receives all mDNS request packets and responds to those specified for its host name. Since it is not possible to translate TCP, you cannot implement mDNS over TCP.

There is a more fundamental point here, since mDNS is already completely unsafe. As you noticed, anyone can answer any request, so you pretty much need to trust all hosts on the network. Switching to TCP (if possible) would not solve this problem.

+15
source share

Zeroconf is not security related; security should be implemented in the layer above.

TCP will not change. These problems must be solved cryptographically.
+5
source share

All Articles