CentOS 7。我的问题是一个看似常见的问题,nslookup
可以解决主机,但ping
不能。然而,像弄乱avahi 或 /etc/nsswitch.conf这样的常见答案无济于事,因为我的 VPS 既没有运行 Avahi 也没有运行 NetworkManager。(换句话说,我可以/etc/nsswitch.conf
通过设置中断hosts: files
并ping
继续工作)
/etc/resolv.conf
如下:
nameserver 10.44.13.246
nameserver 10.32.72.88
nameserver 10.32.72.86
Run Code Online (Sandbox Code Playgroud)
第一个名称服务器指向dnsmasq
在我的另一个 VPS 上运行的实例,最后两个是托管服务提供商的 DNS 服务器。我希望按顺序查询它们(最后两个只是最后的退路)。
现在,对于该dnsmasq
实例中定义的任何主机,nslookup
始终有效,并且ping
在某些时候也有效——主机将正确解析,然后中断,然后几分钟后又会正常。但是,如果我etc/resolv.conf
像这样删除上游 DNS 服务器,
nameserver 10.44.13.246
#nameserver 10.32.72.88
#nameserver 10.32.72.86
Run Code Online (Sandbox Code Playgroud)
然后ping
立即开始工作100% 的时间。这直接与 resolv.conf 文档相矛盾,它说在没有option rotate
指令的情况下,服务器按顺序查询,直到发送响应。
nscd
正在运行并且正在被命中,因为我可以看到这些有问题的查询的缓存命中/未命中计数器上升。
我该如何解决这个问题?