为什么 dnsmasq 不响应客户端?

为什么 dnsmasq 不响应客户端?

我最近发现一台正常运行的服务器出现了问题。该服务器在过去几个月内进行了更新,因此从“一切正常”到今天之间可能已经发生了变化。

此服务器托管一个dnsmasq提供 DHCP 和 DNS 服务的服务器:

  • 服务器本身
  • 该服务器上运行的一组容器(每个容器都有从该服务器接收的自己的 IP dnsmasq
  • LAN 中的客户端(有线、无线)

我今天意识到当我重新启动服务器时:

  • 客户端无法再解析名称(Ping request could not find host google.com. Please check the name and try again.例如在 Windows 系统上)
  • 其中一个容器中的服务器nginx在启动时崩溃,无法解析名称

奇怪之处:

  • dnsmasq在服务器上运行并解析该服务器的名称(# ping google.com在服务器内部运行良好)
  • 重新启动dnsmasq可解决所有问题:所有客户端现在都可以解析名称
  • 至少对于容器来说,它们拥有 IP 地址这一事实意味着dnsmasq向它们提供了该地址以及 DNS 服务器信息(=其本身)。

我的主要问题是:为什么重新启动就能dnsmasq解决客户端分辨率不足的问题?它正在为服务器工作,客户端和服务器之间的通信没有受到阻碍(即使受到阻碍,重新启动也无法解决dnsmasq这个问题)。

我唯一的想法是,也许,dnsmasq启动时所有接口都不可用。这很牵强,但也许吧。有没有办法检查dnsmasq绑定到哪些接口?(netstat或者lsof只会显示出来*.53,所以没有帮助)

由于另一个原因,上述想法似乎不正确:容器从 接收它们的 IP dnsmasq,因此,既然它们有一个 IP,dnsmasq就必须绑定到它们的接口。

相关内容