无法使反向 DNS 工作

Pra*_*ati 7 resolution dns

我一直在努力在 Ubuntu 12.04 上使用nslookup使反向 DNS 工作。这里是 nslookup 命令的输出和不同网络相关配置文件的内容。

nslookup 不起作用的可能原因是什么?另外,为什么我需要互联网连接才能对/etc/hosts文件中的条目进行反向查找?

training@guest1:/etc/network$ nslookup 192.168.1.101
Server:     8.8.8.8
Address:    8.8.8.8#53
server can't find 101.1.168.192.in-addr.arpa.: NXDOMAIN

training@guest1:/etc/network$ cat /etc/hosts
127.0.0.1   localhost
#127.0.1.1  Slave1
192.168.1.101 MyUbuntuLaptop

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

training@guest1:/etc/network$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.201
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4

training@guest1:/etc/network$ ping MyUbuntuLaptop
ping MyUbuntuLaptop (192.168.1.101) 56(84) bytes of data.
64 bytes from MyUbuntuLaptop (192.168.1.101): icmp_req=1 ttl=64 time=0.113 ms
64 bytes from MyUbuntuLaptop (192.168.1.101): icmp_req=2 ttl=64 time=0.222 ms
Run Code Online (Sandbox Code Playgroud)

ger*_*ijk 13

关于私有地址

您尝试解析为名称(反向查找)的 IP 地址是所谓的私有地址,如RFC 1918 中所定义。简而言之,在那里定义了以下 IPv4 地址范围:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

公共地址相反,这些地址不通过 Internet 路由,只能在专用网络中的 NAT 后面使用。许多人都在使用它,因此绝对不是独一无二的。出于这个原因,让公共 DNS 服务器响应私有 DNS 服务器的反向查找请求是没有意义的。

为什么它不起作用

Google 和 Internet 上的所有其他公共 DNS 服务器对私有地址不感兴趣,因为它们无法通过 Internet 路由。因此,基本上,您通过询问完全不对您的网络负责的服务器来做错了。

如果您想使用像 in/etc/hosts这样的本地配置来覆盖它,这将不起作用:

本地 DNS 服务器

如果您希望能够您的专用 LAN 中进行反向查找,那么您必须使用适当的记录设置您自己的 DNS 服务器,并使您的所有本地客户端都使用此 DNS 服务器。您可能已经在运行一个,但是您没有在问题中指定任何内容,如果有,您似乎没有使用它。

我可以推荐的一种快速多合一解决方案是Dnsmasq 安装 Dnsmasq. 它是一个 DHCP 和 DNS 服务器合二为一,其优点是在 DNS 中也使用 DHCP 的主机名。来自联机帮助页的dnsmasq摘录如下:

Dnsmasq 接受 DNS 查询,并从小型本地缓存中回答它们,或者将它们转发到真实的递归 DNS 服务器。它加载 的内容,/etc/hosts以便可以解析未出现在全局 DNS 中的本地主机名,并回答 DHCP 配置主机的 DNS 查询。

设置一个完整的 Dnsmasq 有点超出这里的范围,因为它将替换您当前的 DHCP 服务器,我不知道这是一个可接受的解决方案。无论如何,对于这部分配置,此设置将很重要:

domain=mydomain.lan,192.168.1.0/24,local
Run Code Online (Sandbox Code Playgroud)

在其中您告诉它使用短主机mydomain.lan名为192.168.1.0/24 网络提供服务以使用域名,并且不会转发到上游递归 DNS 服务器。结果将是具有myhost请求动态地址的主机名的机器将在本地解析器中自动使用并侦听查询myhost.mydomain.lan并且反向指针将同样解析。

我不知道“如何以好的方式为家庭网络设置 Dnsmasq?” 这个网站上的问题。如果您或其他人有兴趣,我很乐意进行问答。

1 其实更多,比如TFTP服务器。