我的查询延迟存在差异。这不是问题,只是有点奇怪,让我担心。
- 客户端机器(Fedora 18)运行unbound-1.4.19-1.fc18.x86_64。
- 服务器机器(Debian 7 测试)运行未绑定的 1.4.17-2。
两者都连接到同一个家用路由器。但是,服务器解决未缓存查询的速度几乎快了两倍。这完全出乎我的意料!服务器是 1Ghz ARM(sheevaplug),客户端机器是 2.1Ghz Intel Core Duo。
两个实例都验证了 DNSSEC。它们对 www.dnssec-failed.org 返回 SERVFAIL。两个实例都配置为使用来自我的 ISP 的相同上游 DNS 缓存。
到目前为止,我能想到的只是 NAT 的一些问题。路由器将服务器配置为“默认 DMZ”,即它会获取其他任何人都未声明的数据包,这就是我运行 SSH 和 bittorrent 等公共服务的方式 :)。或者...也许次要版本 19 的验证在某种程度上比次要版本 17 更严格?
测试方法:解析 .de 的 10 个不存在的子域名(应导致 ISP 缓存未命中)。通过查询 yahoo 预加载 .de. TLD。
从客户端
$ for i in 1 2 3 4 5 6 7 8 9; do sudo unbound-control reload; (dig yahoo.de.; dig twitter$i.de.) | grep Query; done
Result - mean 120ms, stddev 60ms
从服务器端
$ for i in 1 2 3 4 5 6 7 8 9; do sudo unbound-control reload; (dig yahoo.de.; dig aldi$i.de. ) | grep Query; done
Result - mean 70ms, stddev 50ms
我知道,测试结果看起来不太好,我的统计数据可能不是压倒性的证据。但我又试了几次,结果看起来并没有什么不同。
答案1
啊!我刚刚在两台计算机之间比较了 unbound.conf。看来 Fedora 启用了下面的选项。关闭它可以消除 Fedora 机器上的额外延迟。
# Harden the referral path by performing additional queries for
# infrastructure data. Validates the replies (if possible).
# Default off, because the lookups burden the server. Experimental
# implementation of draft-wijngaards-dnsext-resolver-side-mitigation.
harden-referral-path: yes
我必须查找一下并决定是否要使用它:)。
关联:https://datatracker.ietf.org/doc/draft-wijngaards-dnsext-resolver-side-mitigation/