我有一个使用 mDNS 设置的家庭网络,其中包含各种系统(包括始终在线的 Raspberry Pi)。我的机器正在运行 avahi 守护进程,所以目前的情况是:
\n\nhost.local名称。我还想要什么:
\n\nhost到与 相同的地址host.local。我可以想到三种方法来做到这一点:
\n\n输入:mDNS 不尊重这一点search local,因为它被认为是\xe2\x80\x9ccausing issues\xe2\x80\x9d。我可以使用我所有机器上的选项重新编译。/etc/resolv.conf--enable-search-domains
在所有网络机器中写入静态/etc/hosts文件。这就是我目前所做的。但是,它使配置变得分布式,这是我想避免的(这些文件最终会不同步)。
在网络上设置 DNS 服务器。然而,提供互联网接入的路由器不支持 DNS(这几乎是换另一家公司的一个很好的理由),所以我需要在 Raspberry 上设置它。这也带来了分布式配置的问题:Raspberry 上的静态 DNS 信息最终会与 mDNS 信息不同步,因此host和host.local可能会令人困惑地指向两个不同的 IP 地址......
所以,我的问题是:
\n\n该选项带来的 \xe2\x80\x9cproblems\xe2\x80\x9d 是什么--enable-search-domains?(我看到的唯一一个是它允许 LAN 上的任何人设置不合格的主机名,但是 1. 除了我已经控制的主机名之外,我不会使用不合格的主机名,并且 2. LAN 访问已被限制为无论如何,值得信赖的同行)。
我错过了其他第四个选择吗?(例如,设置一个 DNS 服务器 + 一个 crontab 定期向其提供avahi-browse命令的一些输出?)
小智 5
mdns 不附加 .local 或搜索域的原因是因为 mdns 中没有 NXDOMAIN 或类似的概念。
因此,如果 mdns 无法在任何缓存中找到解析,它必须发送多播查询并等待查看是否有任何响应。这个超时时间足够长,足以“引起问题”。
以下内容并未回答问题,而是推测解决某些问题的可能实现。
我希望将 .local 显式附加到主机名中,并且在 nss 链的末尾没有任何点。例如
主机:文件 mdns4_minimal [NOTFOUND=return] dns mdns_append
也许还可以指定“仅缓存”mdns 解析。也许用这样的 nsswitch
主机:文件 mdns4_minimal [NOTFOUND=return] mdns_append_cacheonly dns mdns_append
我设想 mdns_append 尝试附加和不附加 .local。
| 归档时间: |
|
| 查看次数: |
4086 次 |
| 最近记录: |