为什么 in-addr.arpa 地址不可解析?

为什么 in-addr.arpa 地址不可解析?

我的 Mac 上的 Python 认为我的完全限定域名是1.0.0.127.in-addr.arpa。对于实际上没有真实域名的系统来说,这似乎是同义反复的反向 DNS 响应。但出于某种原因,该域名无法解析为其明确代表的 IP ( 127.0.0.1):

$ python -i
Python 2.7.10 (default, Jul 14 2015, 19:46:27) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> socket.getfqdn()
'1.0.0.127.in-addr.arpa'
>>> socket.gethostbyname(socket.getfqdn())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
socket.gaierror: [Errno 8] nodename nor servname provided, or not known
>>> 

不仅仅是 Python;1.0.0.127.in-addr.arpa由于 DNS 解析失败,我也无法 ping 通。

为什么in-addr.arpa域名不能解析其代表的 IP?

答案1

127.in-addr.arpa. 尚未被 IANA 委托给任何公共名称服务器,因为它是环回地址的保留 IP 块。

[nevin-mac-mini:~] nevin% nslookup
> set type=SOA
> in-addr.arpa.
Server:     192.168.2.1
Address:    192.168.2.1#53

Non-authoritative answer:
in-addr.arpa
    origin = b.in-addr-servers.arpa
    mail addr = nstld.iana.org
    serial = 2017043116
    refresh = 1800
    retry = 900
    expire = 604800
    minimum = 3600

Authoritative answers can be found from:
in-addr.arpa    nameserver = a.in-addr-servers.arpa.
in-addr.arpa    nameserver = b.in-addr-servers.arpa.
in-addr.arpa    nameserver = c.in-addr-servers.arpa.
in-addr.arpa    nameserver = d.in-addr-servers.arpa.
in-addr.arpa    nameserver = e.in-addr-servers.arpa.
in-addr.arpa    nameserver = f.in-addr-servers.arpa.
> server a.in-addr-servers.arpa.
Default server: a.in-addr-servers.arpa.
Address: 199.212.0.73#53
> 127.in-addr.arpa.
Server:     a.in-addr-servers.arpa.
Address:    199.212.0.73#53

** server can't find 127.in-addr.arpa.: NXDOMAIN
> 

这是权威的“没有这样的域名”的回应。

我想您可以输入一个主机条目:

1.0.0.127.in-addr.arpa. 127.0.0.1

/etc/hosts您的系统用于内部 DNS 解析器的任何本地资源。

相关内容