为什么mDNS(Bonjour,Avahi等)使用UDP?

时间:2009-09-30 17:18:21

标签: security udp bonjour mdns

在我看来,DNS的许多问题,特别是安全问题,都是通过UDP实现DNS的根本原因;例如,响应者不必是他所说的那个人。

我不知道mDNS协议的细节(我假设它比DNS更新),也许它在应用程序级别处理这些问题。任何人都可以为我阐明这一点吗?

2 个答案:

答案 0 :(得分:15)

mDNS中的'm'代表“多播”。 mDNS查询几乎是本地子网的常规DNS查询多播(也称为广播)。子网上的每个主机都接收所有mDNS查询数据包,并响应其主机名。由于无法进行TCP广播,因此无法通过TCP实现mDNS。

这里有一个更基本的观点,mDNS已经完全不安全了。正如您所指出的,任何人都可以回复任何查询,因此您几乎必须信任网络上的所有主机。切换到TCP(如果可以)不会解决此问题。

答案 1 :(得分:5)

Zeroconf不关心安全问题;安全性应该在上面的层中实现。

TCP不会有太大变化。这些问题必须以加密方式解决。