如果你在抓包时看到 UDP 5355,或者在安全审计报告里看到“LLMNR”,你可能会问:LLMNR 到底是什么?它和 DNS 有什么关系?
✅ 什么是 LLMNR?
LLMNR,全称 Link-Local Multicast Name Resolution,中文叫“链路本地多播名称解析”。一句话解释:
LLMNR 是一种在没有 DNS 服务器时,用局域网组播来解析主机名的协议,类似 DNS,但只在本地子网内工作。
它的设计初衷是:
- 当设备无法通过 DNS 解析主机名时,
- 就在本地网络发送组播问:“谁是这个名字?”
- 如果有设备知道,就回应自己的 IP 地址。
✅ 工作原理(简单例子)
假设你有两台电脑 A 和 B,在一个没有 DNS 的小型局域网里:
- A 想访问 B,名字叫
PC-B。 - A 会发送一个 LLMNR 查询到组播地址:
谁是 PC-B? - 如果 B 支持 LLMNR,它会回应:
我是 PC-B,我的 IP 是 192.168.1.20
组播地址和端口:
- IPv4:
224.0.0.252 - IPv6:
FF02::1:3 - 端口:UDP/TCP 5355
✅ 和 DNS 的区别
| 特性 | DNS | LLMNR |
|---|---|---|
| 范围 | 整个网络甚至互联网 | 仅限本地子网 |
| 查询方式 | 单播到 DNS 服务器 | 组播到局域网 |
| 依赖服务器 | 必须 | 不需要 |
✅ 安全风险
LLMNR 很方便,但也有风险:
- 容易被攻击者利用进行中间人攻击(MITM)
因为任何设备都可以回应查询,攻击者可以伪造 IP 地址,诱导流量。 - 在企业网络中,通常建议 禁用 LLMNR,改用 DNS 或 mDNS。
✅ 如何禁用 LLMNR(Windows)
在组策略中:
Computer Configuration → Administrative Templates → Network → DNS Client → Turn Off Multicast Name Resolution
总结
LLMNR 是一个“应急方案”,在没有 DNS 时帮你解析名字,但在现代网络中,它更多是一个安全隐患。如果你在企业环境,建议关闭。
