服务器本身没有 FQDN 的 DNS/Bind9 名称解析失败,但客户端正常

服务器本身没有 FQDN 的 DNS/Bind9 名称解析失败,但客户端正常

我在一台 16.04 服务器上设置了 bind9,并设置了域,可以使用 windows 客户端和 ubuntu 16.04 桌面客户端对其进行测试。这是根据如何使用主机名完成完整的 BIND9 DNS 服务器配置?

domain is "test.lan"

srv       192.168.0.1, IP configured via /etc/network/interfaces. Hosts 
                       file contains domain test.lan and srv entry.

linuxpc,  192.168.0.2, IP configured via desktop: static IP with DNS and search 
                       domain magrathea.lan. Hosts file contains domain test.lan 
                       and own and srv entries.

winpc,    192.168.0.3, IP configured via desktop: static IP with DNS and domain 
                       suffix for this connection: magrathea.lan

我在客户身上看到的情况:

linuxpc$ ping winpc
PING winpc.test.lan (192.168.0.3) 56(84) bytes of data
64 bytes from winpc.test.lan (192.168.0.3): icmp_seq=1 ttl=...

linuxpc$ ping winpc.test.lan
PING winpc.test.lan (192.168.0.3) 56(84) bytes of data
64 bytes from winpc.test.lan (192.168.0.3): icmp_seq=1 ttl=...

linuxpc$ ping winpc.test
ping: unknown host winpc.test


C:>ping linuxpc
Pinging linuxpc.test.lan [192.168.0.2] with 32 bytes of data:
Reply from 192.168.0.2: bytes =32 time>1ms TTL=64

C:>ping linuxpc.test.lan
Pinging linuxpc.test.lan [192.168.0.2] with 32 bytes of data:
Reply from 192.168.0.2: bytes =32 time>1ms TTL=64

C:>ping linuxpc.test
Ping request could not find host linuxpc.test. Please check the name...
Reply from 192.168.0.2: bytes =32 time>1ms TTL=64

在服务器上(以winpc作为ping目标):

serv$ ping linuxpc
ping: unknwon host linuxpc

serv$ ping linuxpc.test.lan
PING linuxpc.test.lan (192.168.0.2) 56(84) bytes of data
64 bytes from linuxpc.test.lan (192.168.0.2): icmp_seq=1 ttl=...

serv$ ping linuxpc,test
ping: unknwon host linuxpc.test

serv我确实尝试将该行 添加到服务器的接口文件dns-search test.lan,但这并没有改变上述结果。

问题

  • 1)为什么服务器 ping 只能使用完全限定域名?
  • 2) 为什么没有“.lan”的情况下两台 PC 都无法解析“.test”?我该怎么办?
  • 3) 我可以使用“test”作为内联网域名吗?与“test.lan”相比,它有哪些缺点?

感谢您的帮助

答案1

与此同时,我确实找到了问题所在以及如何解决它。我先回答最后一个问题:

3) 我可以使用“test”作为内部网域吗?与“test.lan”相比,它有哪些缺点?答案:可以。网络设置适用于全套服务 (LAMP) 和多个名为“test”的客户端。不知道为什么要添加额外的“.lan”。也许有人知道。

1) 为什么服务器 ping 只能使用完全限定域名? 答案:因为这个问题确实存在

a)文件“/etc/network/interfaces”中的“dns-search”行

b) 桌面网络连接中的“搜索域”字段。它位于 /Edit/IPv4 Settings/SearchDomains。可能仅在手动 IP 定义时可见。

使用其中任意一个。我在这个网站或 wiki 上找到的示例中从未真正解释过这一点。可能是因为它被认为太过琐碎。这意味着对于该域中的所有地址,完全限定域名 (FQDN) 的域部分被视为可选。可以省略它。如果没有该语句,bind9 配置中只有别名,但它们对服务器自己的地址没有帮助。

服务器现在工作正常。这是我的完整接口定义文件:

 sudo nano /etc/network/interfaces
 auto enp2s0f1
 iface enp2s0f1 inet static
    address 192.168.10.10
    netmask 255.255.0.0
    gateway 192.168.10.1
    network 192.168.0.0
    broadcast 192.168.255.255
 dns-nameservers 192.168.10.10
 dns-search test

显然该文件适用于 C 类网络。修改 D 类网络的地址应该很容易,就像本网站上几乎所有其他示例一样。您可能会注意到奇怪的网络 ID。它是 Ubuntu 强制执行的最新标准,因此它是以这种方式自动生成的。它应该对设备上的端口位置进行编码。它解决了我从未遇到过的问题,我看不出它比“eth0”有什么好处,但再次将其设置回“eth0”似乎太麻烦了,所以我就保留了它。

2) 为什么没有“.lan”的情况下两台 PC 都无法解析“.test”?我该怎么办?我猜问题的关键在于 dns-search 参数的具体功能,但我无法进行实验,因为我的网络已经在“test”下运行,而不是“test.lan”。所以问题消失了。

希望它能对某人有所帮助。

相关内容