多年来,我一直在 Linux 机器上运行我自己的名称服务器 (bind9),我的办公室里有几个由 Verizon FiOS 提供服务。今天早上我发现我无法再解析 google.com 域中的任何内容。其他域查找继续工作。我验证了我的根服务器表是最新的。
无法识别错误配置,并注意到 Linode 上的 VPS 中的名称服务器不存在问题,我尝试了一种解决方法。该 VPS 位于我的办公网络的第 2 层 VPN 上,因此我在一些受影响的办公系统上切换了我的默认路由,以便所有到 Internet 的流量都通过 VPS。此切换后,名称服务正常,解析 google.com。
请参阅下面的演示。请注意,192.168.10.87 是我的内部路由器之一,它对版本 FiOS 接口进行 NAT。192.168.10.78 在远程站点的 VPN 上充当路由器,在我更改默认路由后,有效地为我的命名进程(不幸的是,其他所有进程)提供了通往 Internet 的隧道。该行为在三台不同的计算机上是一致的。
我对正在发生的事情有一些半生不熟的理论,但我无法决定如何进一步诊断。
root@flipper:~# host google.com
;; connection timed out; no servers could be reached
root@flipper:~# host yahoo.com
yahoo.com has address 206.190.36.45
yahoo.com has address 98.138.253.109
yahoo.com has address 98.139.183.24
yahoo.com has IPv6 address 2001:4998:44:204::a7
yahoo.com has IPv6 address 2001:4998:c:a06::2:4008
yahoo.com has IPv6 address 2001:4998:58:c02::a9
yahoo.com mail is handled by 1 mta5.am0.yahoodns.net.
yahoo.com mail is handled by 1 mta7.am0.yahoodns.net.
yahoo.com mail is handled by 1 mta6.am0.yahoodns.net.
root@flipper:~# ip ro del default via 192.168.10.87
root@flipper:~# ip ro add default via 192.168.10.78
root@flipper:~# host google.com
google.com has address 216.58.219.206
google.com has IPv6 address 2607:f8b0:4006:80e::200e
google.com mail is handled by 30 alt2.aspmx.l.google.com.
google.com mail is handled by 40 alt3.aspmx.l.google.com.
google.com mail is handled by 10 aspmx.l.google.com.
google.com mail is handled by 20 alt1.aspmx.l.google.com.
google.com mail is handled by 50 alt4.aspmx.l.google.com.
root@flipper:~# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1