直到最近,我一直在本地服务器(Ubuntu 16.04 w/LAMP)上使用 BIND9。但后来我决定将我的一个网站移至远程第三方托管。显然,我在网站注册商的网站上更改了 DNS 服务器,网站运行正常。问题是,在我的本地机器(BIND9 所在的位置)上,它仍然指向该主机的本地安装。
答案1
停止对域名的权威性
从 BIND 的配置中删除该区域,即删除
zone "example.com" { type master; file "/etc/bind/db.example.com"; };
然后重新加载配置
$ sudo rndc reload
分离权威 DNS 和递归 DNS 基础设施
nameserver 127.0.0.1
您的 中可能有/etc/resolv.conf
。您可以将其删除,并添加可用作解析器的递归名称服务器。
尽管从技术上讲,在同一台服务器上同时拥有递归角色和权威角色是可能的,但我们不建议这样做。这种隔离有以下几个原因:
预防放大攻击(RFC 5358,4)。
预防DNS 缓存中毒,尽管这主要是历史原因,在第 3 版中有很好的解释。Nemeth, E.、Snyder, G.、Seebass, S. 和 Hein, T. (2000)。UNIX 系统管理手册。Pearson Education。(第 16 章 域名系统;BIND 软件;权威服务器和仅缓存服务器。):
在 BIND4 和 BIND 8 中,使用单个名称服务器作为某些区域的权威服务器和其他区域的缓存服务器并不是一个好主意。每个名称服务器都使用单个内存数据库运行,如果内存紧张且缓存数据与权威数据混合,则可能会发生交叉污染。BIND 9 已经消除了这个问题,因此请随意混合。
为了稳定性/负载平衡:权威域名服务器是互联网的重要组成部分,因为几乎所有其他内容都依赖于 DNS。因此,我们不应让技术错误或递归服务器的高负载影响该系统的性能。
为了防止这种情况的发生,名称服务器不再具有该域的权威性,但本地配置仍保持其权威性回答,并最终使用过时的记录。