ISP 的 DNS 服务器如何解析本地主机名?

ISP 的 DNS 服务器如何解析本地主机名?

对于你们中的一些人来说,这可能是一个非常简单的问题,但我在网上找不到快速、准确的答案。

我最近遇到了一个问题,当时我试图通过 SSH 连接到本地 FreeBSD 服务器,但连接被拒绝了。计算机上的 hosts.allow 文件指定只允许本地计算机与 ssh 守护进程通信(根据 hosts_access 手册页,这实际上意味着客户端的主机名不能包含点)。我发现(至少我认为我找到了)导致此问题的原因是服务器试图解析客户端的主机名,但请求被转发到我的 ISP 的 DNS 服务器。因此,客户端的主机名将解析为 localname.ispname.net,而不仅仅是 localname,这意味着它没有通过 hosts.allow 访问规则。

此外,当我从服务器 ping 客户端的 IP 地址(或反之亦然)时,ping 实用程序会以 localname.ispname.net 的形式显示 FQDN,就像使用 sshd 一样。一旦我在路由器上启用“本地 DNS”选项并清除路由器上的 DNS 缓存,一切就都正常了,大概是因为主机名是在本地解析的。

我的问题是,当我的 ISP 的 DNS 服务器将计算机的 IP 地址解析为 FQDN 时,它们如何知道本地计算机的主机名?这似乎需要向我的默认网关发出反向 DNS 请求...这是正确的吗?

答案1

检查一下 /etc/resolv.conf。我猜里面有一行类似这样的内容domain ispname.net。也就是说,您的主机是该域的一部分。当您查找本地名称时,该域将被附加。

尝试使用dig localname,您应该会看到如下结果:

;; ANSWER SECTION:
localname.      0   IN  A   192.168.1.135

Dig 提供了大量信息,在调试名称解析问题时非常有用。

答案2

还要检查 /etc/resolv.conf 中是否有类似的内容search ispname.net。您可以将多个条目添加到主机名。

相关内容