配置只缓存很短时间的本地 DNS 解析器

Dav*_*gac 2 domain-name-system bind djbdns

我正在开发一个应用程序,该应用程序将用于验证新域在设置托管时是否正确配置。这部分会检查 SPF、DomainKey、DKIM 记录等的有效性。

我目前对大多数这些记录使用一小时的默认 TTL。偶尔会在其中一条记录中发现错误,因此需要对其进行更新。目前,如果我刚刚测试了域,我必须等待系统解析器的缓存记录过期,然后才能验证我的应用程序是否正确。(是的,我可以手动检查,但我编写了应用程序,所以我不必这样做)。

我想在系统上设置一个 DNS 服务器来充当普通的缓存解析器,除了它会在最长设置时间内(例如五分钟)使记录过期,或者根本不缓存。并非所有域都在我的普通名称服务器上托管 DNS,因此该系统必须查询域的权威名称服务器,而不是使用上游解析器(只会使用它们的缓存记录)。

这台机器当前没有运行任何类型的 DNS,所以我可以安装 BIND 或 djbdns(如果有好的建议,也可以安装其他东西。

Dav*_*gac 10

谢谢大家的意见和建议。他们指导我采用以下解决方案:

  • 安装bind9。
  • 编辑/etc/bind/named.conf.options以便转发器为空(因此服务器不使用其他缓存服务器的缓存记录)。
  • max-cache-ttlmax-ncache-ttl选项设置为 300 秒。(参考
  • 更改listen-on-v6 { any; };listen-on-v6 { localhost; };使服务器不被其他系统使用。(参考
  • 编辑系统/etc/resolv.conf以仅包含nameserver 127.0.0.1服务器上的应用程序使用新的本地服务器。

我重新启动了 bind9 并验证了它的工作原理:

dev:~# dig serverfault.com

; <<>> DiG 9.5.1-P2 <<>> serverfault.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63591
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0

;; QUESTION SECTION:
;serverfault.com.               IN      A

;; ANSWER SECTION:
serverfault.com.        300     IN      A       69.59.196.212

;; AUTHORITY SECTION:
serverfault.com.        300     IN      NS      ns21.domaincontrol.com.
serverfault.com.        300     IN      NS      ns22.domaincontrol.com.

;; Query time: 190 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Jul 18 03:06:24 2009
;; MSG SIZE  rcvd: 101
Run Code Online (Sandbox Code Playgroud)

尽管 serverfault.com 的记录发布的 TTL 为 3600,但 TTL 显示为 300。