在我的 PC 上,我使用 Google Public DNS 作为 DNS 服务器。在 Internet 协议 (TCP/IP) 属性中,我将首选 DNS 服务器设置为 8.8.4.4,将备用 DNS 服务器设置为 8.8.8.8。
在我看来,该 DNS 服务器应该用来将对网站的任何请求解析为其 IP(请参阅Google DNS和域名服务器的工作原理)。
但是,当我在电脑上检查到网站的跟踪路由时,我得到了以下输出:
Tracing route to www.google.com [74.125.236.80] over a maximum of 30 hops:
1 <1 ms <1 ms <1 ms 192.168.1.201
2 360 ms 349 ms 292 ms 122.178.216.1
3 145 ms 107 ms 148 ms 122.166.32.121
4 32 ms 53 ms 120 ms 122.166.32.9
5 45 ms 42 ms 121 ms 122.175.255.29
6 63 ms 76 ms 51 ms 182.79.255.45
7 52 ms 134 ms 61 ms 72.14.194.22
8 86 ms 59 ms 72 ms 72.14.232.202
9 106 ms 107 ms 60 ms 66.249.94.39
10 101 ms 103 ms 117 ms 209.85.249.235
11 148 ms 224 ms 276 ms 74.125.236.80 Trace complete.
当我检查所有这些 IP 时谁是我发现它们属于我的 ISP。所以我的问题是 Google Public DNS 在哪里使用?此外,即使我将 Google Public DNS 设置为 PC 中的 DNS 服务器,为什么也会使用我的 ISP 的名称服务器?还是我的设置错误?
答案1
您在 traceroute 中看不到 DNS 请求。要查看使用的是哪个 DNS 服务器,请尝试 nslookup:
# nslookup www.google.com
Server: 10.0.0.100
Address: 10.0.0.100#53
Non-authoritative answer:
Name: www.google.com
Address: 173.194.75.106
Name: www.google.com
Address: 173.194.75.147
Name: www.google.com
Address: 173.194.75.99
Name: www.google.com
Address: 173.194.75.103
Name: www.google.com
Address: 173.194.75.104
Name: www.google.com
Address: 173.194.75.105
或者:
# dig www.google.com |grep SERVER
;; SERVER: 10.0.0.100#53(10.0.0.100)
名称和地址(或服务器)部分是您的 DNS 服务器。Traceroute 为您提供从您的 IP 到 Google 的路由,该路由当然会经过您的 ISP。
答案2
你混淆了两种不同的东西。
一件事是 DNS。DNS 就像是服务器名称和 IP 地址的电话簿。DNS 服务器会告诉您服务器名称的 IP 地址,例如 DNS 会告诉您 www.superuser.com 是 198.252.206.16。DNS 还可以反向查找给定 IP 地址的名称。
互联网上有很多 DNS 服务器,只要它们允许,您可以使用其中任何一个。如果配置正确,它们都应该会给您相同的结果。
例如,在启动这样的 nslookup 时,您可以检查正在使用哪个 DNS 服务器(查看服务器和地址的前两行输出):
>nslookup www.superuser.com
Server: google-public-dns-a.google.com
Address: 8.8.8.8
Non authoritative answer:
Name: superuser.com
Address: 198.252.206.16
Aliases: www.superuser.com
当您查看跟踪路由时,您是在查看数据包从您的计算机到目标计算机(Web 服务器)的实际路径。这与 DNS 没有任何关系。首先,您的计算机查找目标计算机的 IP 地址,然后检查该 IP 是否在您的本地网络中。如果该 IP 不在您的本地网络中,则它会将数据包发送到您的路由器。您的路由器正在执行相同的操作。对于收到的每个数据包,他都会在一个大型路由表中查找必须将 IP 数据包转发到哪个网络接口。所有这些路由器要么在您的位置(例如您的 192.168.1.201),要么在目标计算机所有者的位置,要么属于途中的 ISP。使用哪些路由器取决于网络拓扑和所涉及的 ISP。您无法影响数据包的传输路径,您只能影响目标点。