网络工程 · 3 12 月, 2025 0

LLMNR协议:局域网里的DNS替补

如果你在抓包时看到 UDP 5355,或者在安全审计报告里看到“LLMNR”,你可能会问:LLMNR 到底是什么?它和 DNS 有什么关系?

✅ 什么是 LLMNR?

LLMNR,全称 Link-Local Multicast Name Resolution,中文叫“链路本地多播名称解析”。一句话解释:

LLMNR 是一种在没有 DNS 服务器时,用局域网组播来解析主机名的协议,类似 DNS,但只在本地子网内工作。

它的设计初衷是:

  • 当设备无法通过 DNS 解析主机名时,
  • 就在本地网络发送组播问:“谁是这个名字?”
  • 如果有设备知道,就回应自己的 IP 地址。

✅ 工作原理(简单例子)

假设你有两台电脑 AB,在一个没有 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 时帮你解析名字,但在现代网络中,它更多是一个安全隐患。如果你在企业环境,建议关闭