我收集了 macOS、Ubuntu Linux 和 OpenBSD 系统。他们使用 mDNS 将动态 IP 地址发布到本地网络,从而使自己可以在域名下使用.local
。
我的 OpenBSD 7.1 机器可以使用 Avahi 或将其主机信息发布到 LAN开放MDNS,我可以从 Linux 和 macOS 按名称连接到它们。然而,OpenBSD系统无法解析相邻设备的名称无缝地。
OpenBSD 系统能当 Avahi 实用程序运行 Avahi 0.8 时,通过 Avahi 实用程序解析名称:
$ avahi-resolve-host-name eeyore.local pooh.local laban.local
eeyore.local 192.168.1.127
pooh.local 192.168.1.101
laban.local 192.168.2.100
当使用 OpenMDNS 代替 Avahi 时,我可以使用它的mdnsctl
命令从 OpenBSD 查找名称:
$ mdnsctl lookup pooh.local
Address: 192.168.1.101
但是,无论我使用 OpenMDNS 还是 Avahi,普通解析器都看不到这些名称,因此我无法使用 、ssh
或ping
任何其他工具从 OpenBSD 通过名称访问它们。
我想知道是否可以获得 OpenBSD 的默认解析器,或者可能unwind
在unbound
基本系统中,或者来自软件包的其他 DNS 解析器,以使用 mDNS 作为替代“转发器”。
附加信息:本地路由器是 Ubiquiti Inc. 的 EdgeRouter X(我还有一个备用的 EdgeRouter Lite)。这是本地网络中的 DHCP 和 DNS 服务器。它将 DNS 查询转发到 LAN 之外。人们可以启用dnsmasq
路由器上的 DHCP+DNS 服务器来提供来自 DHCP 租约的主机名和/或 IP 地址,作为对来自 LAN 的 DNS 查询的响应,但这更多的是一种解决方法,而不是上述问题的解决方案(因为它不会使 OpenBSD 系统使用 mDNS 进行解析)。
答案1
你可以检查——https://github.com/openbsd/src/blob/013e174a3726f5dfc8d86cfb0c801d83d8f77ad6/lib/libc/asr/asr.c#L625
OpenBSD 仅支持名称解析器 (resolv.conf) 中的“文件”和“绑定”选项:-(