我有一台服务器,ping 命令无法解析本地 DNS 记录。我很困惑。
这是我的实验室设置。
DNS Zone - mydomain.local
x.x.x.117 - CentOS 8 Primary DNSserver
x.x.x.118 - Ubuntu 20.04 Desktop
x.x.x.119 - Ubuntu 20.04 Server
我为 mydomain.local 创建了一个新区域
mydomain.local A 192.168.5.118
*.mydomain.local A 192.168.5.118
问题:
当我通过 SSH 进入 .118 时,无法 ping mydomain.local。PING 命令失效,无法解析 IP 地址。
我该如何排除故障,为什么 .118 ping 命令无法解析我的 domain.local 的 IP 地址?ping:mydomain.local:名称或服务未知
我试过:
- 当我登录 .119、.117 或通过 VPN 时,我可以毫无问题地 ping mydomain.local。
- 在 .118 上,我使用 dig、nslookup 均报告良好的响应。
- 在 .118 上,Ping 可以解析通配符别名,例如www.mydomain.local,任何别名.mydomain.local。
- 在 .118 上,Ping xxx118 和 127.0.0.1 都很好。
- 重新启动服务器不起作用。
- 清除 DNS 缓存不起作用。
这是非常奇怪的行为。谢谢您的帮助。
答案1
您所描述的问题不是命令ping
本身的问题(也不是traceroute
) - 它是一个名称解析问题:当向名称解析服务ping
发出问题时gethostbyname()
,它无法得到很好的答案并中止。
使用dig
(或者您也可以尝试该host
命令)可能无法检测到问题,因为它们直接访问 DNS 名称服务,而问题可能不在于 DNS 服务,而在于内核名称服务(libnss)的配置中。
您可能需要检查/etc/nsswitch.conf
文件并将该hosts:
行与正常运行的其他服务器进行比较。使用检查 libnss 如何解析名称getent ahosts mydomain.local
,您可能会找到答案。