在 Ubuntu 18.04 中,在本地网络上解析 FQDN 时遇到问题

在 Ubuntu 18.04 中,在本地网络上解析 FQDN 时遇到问题

我的笔记本电脑运行的是 bionic,之前运行的是 artful,几周前我通过 apt 完成了全面升级,一切都按预期工作,但是当我尝试连接到我的 nas 时,FQDN 无法解析,我可以通过 IP 等进行连接。我读了大量的资料,不得不了解自 2003 年我上次使用 redhat linux 以来 Linux 发生的巨大变化。

所以我们现在有了网络管理器和 systemd,这些与旧的 unix 做事方式相比有很大的变化,我可以看到发生这种演变的原因,只是如果你是一个老的 Unix 用户,那么排除故障会很棘手 ;-) systemd 解析器可以替换为 dnsmasq,网络管理器有一个与 dnsmasq 一起使用的插件,好的,获得所有这些没有问题。我无法理解的是,为什么开箱即用的 Ubuntu 没有正确地将 dns 查找转发到我的路由器,它能够为我网络上的某些服务提供静态 dns 条目。这在 windows 和 macos 上完美运行。

为了解决这个问题,它无法与 systemd 解析器正常工作,我已将其换成 dnsmasq,但仍然没有效果 :-/

笔记本电脑通过 dhcp 正确地获取 IP,并且网络管理器使用路由器的 dns IP 正确地填充 /etc/resolv.conf。

正常的互联网 DNS 解析工作正常,如果我关闭网络管理器提供的自动 DNS 解析器条目,/etc/resolv.conf 将没有条目,互联网 DNS 会按预期中断。这也证明我的笔记本电脑也在转发它无法在本地解析的 DNS 查询。

我完全不知道哪里出了问题,如果能提供任何有关网络管理器和/或 dnsmasq 可能出现的 qwerk 的指导,我将不胜感激。此外,如果有人能提供关于 linux DNS 2016/17 的真正技术深度探究的链接,那将非常有帮助。

答案1

我解决了自己的问题,因此我提供我的解决方案以便其他人可能会觉得有用。

刚刚读了一篇关于解决 Linux DNS 客户端问题的博客问题并发现 /etc/nsswitch.conf 没有与我的相同的条目。

我的样子是:

主机:文件 mdns4_minimal [NOTFOUND=return] dns myhostname

博客内容如下:

主机:文件 dns myhostname

通过删除mdns4_minimal 和 [NOTFOUND=return]当我重新启动 dns/network 服务时,FQDN 解析开始工作。所以我决定调查一下mdns4_minimal[未找到=返回]确实如此。然后我在 askubuntu.com 上看到了另一个问题,它解释了我问题

事实证明,如果您像我一样使用 .local 域作为内部网络 DNS,则此 tld 也用于 mDNS 多播 DNS,用于 Bonjour 等服务。要使 DNS 正常工作,您需要优先考虑 dns 而不是 mdns 才能使其正常工作。

我现在已将 /etc/nsswitch.conf 文件恢复到其原始状态,并进行了以下更改:

主机:文件 dns [NOTFOUND=return] mdns4_minimal mdns4

如您所见,dns 现在优先于 mdns4,并且我的本地解析器查询我的网络 dns,它返回预期的结果:

~$ ping nas01.home.local

PING nas01.home.local (192.168.1.101) 56(84)字节数据。

来自 nas01.home.local (192.168.1.101) 的 64 字节:icmp_seq=1 ttl=64 时间=0.196 毫秒

来自 nas01.home.local (192.168.1.101) 的 64 字节:icmp_seq=2 ttl=64 时间=0.279 毫秒

来自 nas01.home.local (192.168.1.101) 的 64 字节:icmp_seq=3 ttl=64 时间=0.243 毫秒

大多数人可能不太可能在家里或实验室中使用 .local,但我一直更喜欢使用它,即使在企业环境中,因为它不是互联网顶级域名。

相关内容