在这里我在
traceroute
中找到了一些路由器主机名:
...
3 10.30.31.1 10.30.31.1 1.271
4 46.33.68.129 ae1-1989.cr4-ams2.ip4.gtt.net 2.697
5 213.200.117.58 ae15.cr6-ams1.ip4.gtt.net 2.098
6 80.231.85.162 80.231.85.162 1.77
...
但是,我无法通过
nslookup
获取与这些主机名关联的 IP。
$ nslookup ae15.cr6-ams1.ip4.gtt.net
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find ae15.cr6-ams1.ip4.gtt.net: NXDOMAIN
我尝试使用
dig +trace
,但没有成功。
$ dig ae15.cr6-ams1.ip4.gtt.net +trace
...
ip4.gtt.net. 300 IN NS pns.tinet.net.
ip4.gtt.net. 300 IN NS sns.tinet.net.
;; Received 96 bytes from 172.64.33.169#53(glen.ns.cloudflare.com) in 199 ms
ip4.gtt.net. 300 IN SOA pns.tinet.net. netguard.tinet.net. 2024060604 86400 7200 3600000 300
;; Received 109 bytes from 213.200.89.94#53(pns.tinet.net) in 215 ms
停在
ip4.gtt.net.
那么为什么我无法解析路由器主机名?我怎样才能做到这一点?
与大多数 IP 数据包一样,traceroute 数据包并不以任何方式真正指示路由器的主机名;他们只有IP地址。相反,traceroute 程序必须使用特殊的 DNS 查询从 IP 地址查找主机名 - 即它显示“反向 DNS”查找结果,并且这些结果“单独管理”并存储在与常规域信息完全不同的位置。 由于 DNS 的分布式特性,您无法真正执行“实际”反向查询(即不可能找到指向 IP 地址的所有域名)——即使可能,允许也不是明智之举– 因此,“反向 DNS”数据作为常规(正向)记录存储在由 IP 地址索引的特殊域(
.in-addr.arpa
或 .ip6.arpa
)下,并且对此信息的更新独立于任何“正常”域所有权。
进行“转发”DNS 更新 – 例如在这种情况下,实际的网络工程师可能不关心“正向”DNS 查找是否有效,因为他们手头已经有一个完整的网络管理数据库,因此他们只添加了“反向”数据,以便它显示在跟踪路由就这样了。