在现代网络中,设备发现和名称解析是基础功能。我们熟悉的 DNS 解决了全球范围的域名解析,但在一个没有 DNS 服务器的小型网络里,怎么办?
除了 LLMNR,还有一个更常见的协议:mDNS(Multicast DNS)。
✅ 什么是 mDNS?
mDNS,全称 Multicast DNS,顾名思义,它通过组播在局域网内解析域名,通常使用 .local 作为后缀。一句话解释:
mDNS 是一种零配置协议,让设备在没有 DNS 服务器的情况下,通过组播解析域名并发现服务。
它的典型应用场景:
- Apple 的 Bonjour 服务
- 智能家居设备自动发现
- 打印机、IoT 设备无需手动配置
组播地址和端口:
- IPv4:
224.0.0.251 - IPv6:
FF02::FB - 端口:UDP 5353
✅ mDNS 的工作方式(简单例子)
假设你有一台智能打印机,名字叫 printer.local:
- 打印机启动后,会主动通过 mDNS 发送组播:“我叫 printer.local,我提供打印服务在端口 631”。
- 你的电脑如果支持 mDNS(比如 macOS、Linux 上的 Avahi),就能自动发现并解析这个名字,无需手动配置 DNS。
这就是 mDNS 的核心:主动广播服务信息 + 响应查询。
✅ 和 LLMNR 的区别
虽然 mDNS 和 LLMNR 都解决“没有 DNS 时如何解析名字”的问题,但它们的设计理念和行为不同:
| 特性 | LLMNR | mDNS |
|---|---|---|
| 名称后缀 | 主机名(无域名) | 通常 .local 域名 |
| 查询方式 | 组播查询,被动响应 | 组播查询,主动广播服务信息 |
| 协议端口 | UDP/TCP 5355 | UDP 5353 |
| 应用场景 | Windows 局域网名称解析 | 跨平台设备发现(Bonjour、IoT) |
| 安全风险 | 易被利用进行 MITM 攻击 | 也可能被伪造,但更常用于家庭/IoT网络 |
一句话总结:
LLMNR 是“有人问才回答”,mDNS 是“有人问也回答,还主动告诉大家我能干什么”。
✅ 安全注意
mDNS 和 LLMNR 都有安全隐患:
- 攻击者可以伪造响应,诱导流量或窃取凭据。
- 在企业网络中,通常建议禁用 LLMNR,并对 mDNS 进行隔离或限制。
总结
mDNS 是局域网设备发现的好帮手,尤其在智能家居和零配置场景中。但在安全敏感的网络里,必须谨慎使用。如果你看到 UDP 5353 的流量,那就是 mDNS 在工作。
