![如果发生全球 DNS 中断,我可以依赖自己的 DNS 服务器吗?](https://linux22.com/image/1305128/%E5%A6%82%E6%9E%9C%E5%8F%91%E7%94%9F%E5%85%A8%E7%90%83%20DNS%20%E4%B8%AD%E6%96%AD%EF%BC%8C%E6%88%91%E5%8F%AF%E4%BB%A5%E4%BE%9D%E8%B5%96%E8%87%AA%E5%B7%B1%E7%9A%84%20DNS%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%90%97%EF%BC%9F.png)
2012 年 3 月 31 日,匿名者计划关闭互联网的 13 个根 DNS 服务器:http://pastebin.com/NKbnh8q8
... 我甚至不想注意到它是否真的发生了。
假设他们尝试做的事情是可行的:
- 是否存在不会受到影响且我可以使用的 DNS 服务器?
- 如果没有,是否可以在本地机器上创建所有 DNS 记录的永不过期的缓存?
- 如果是这样,我该怎么做呢?
当然,DNS 更改不会反映出来,并且 TTL 必须被忽略;但这比所有 DNS 查找超时要好。
答案1
缓存所有 DNS 记录是不可行的。另一方面,设置自己的根服务器是可行的!ICANN 在此处提供根区域文件:http://www.internic.net/zones/root.zone
因此,只需设置您自己的根服务器,将您的 DNS 服务器指向它,您就不会注意到任何事情。
答案2
对于 Windows,有一个名为 Treewalkdns 的程序可充当个人缓存 DNS 服务器。它似乎已从网站上消失,但可能在网络上的某个地方可用。
有一个名为 PDNSD 的 Linux 程序可以满足您的要求: http://members.home.nl/parombouts/pdnsd/index.html#aboutpdnsd
答案3
抱歉,我只能回答你的第二个问题。答案如下:
可以通过编辑在本地计算机上创建不过期的 DNS 记录缓存hosts 文件。例如,您可以添加:
# Google
173.194.65.100 google.com www.google.com
要获取给定域名解析的 IP 地址,您可以使用ping
或nslookup
。
答案4
与其尝试设置自己的根服务器,不如依靠 Google 的 DNS 服务器来实现这一点:
http://code.google.com/speed/public-dns/
IP地址:
- 8.8.8.8
- 8.8.4.4
Google 可能有很多 DNS 条目,并且它们绝对有足够的处理能力和带宽来很大DNS 缓存并经受住数百或数千个用户的持续轮询。我猜 Google 也不会愚蠢到在无法联系根服务器的情况下让所有 DNS 条目过期。
您也可以尝试连接到开放DNS。也许可以将 Google 和 OpenDNS IP 写在某处,这样如果根服务器确实出现故障,您可以尝试几种不同的选项。
编辑: 这里是非官方/备用 DNS 根服务器的更完整列表(在维基百科上)。