我们正在为我们网络之外的一小群人运行私有递归 DNS(绑定 9.10.3),以加快他们的浏览速度。我最近注意到,我们的服务器正在回答带有“.local”或“.home”的查询,这些查询附加到一些入站查询以及一些“local”甚至“home”的查询而没有任何其他数据,这里是我们日志中的一个示例(1.2.3.4 是我们的 DNS)
Oct 20 09:36:28 dns1 named[3080]: client X.X.X.X#50315 (somethingrandom.local): view someview: query: somethingrandom.local IN A + (1.2.3.4)
Oct 20 09:36:38 dns1 named[3080]: client X.X.X.X#50315 (somethingrandom.local): view someview: query: somethingrandom.home IN A + (1.2.3.4)
Oct 20 09:36:55 dns1 named[3080]: client X.X.X.X#57750 (local): view someview: query: local IN SOA + (1.2.3.4)
Oct 20 09:36:59 dns1 named[3080]: client X.X.X.X#49441 (local): view someview: query: local IN SOA + (1.2.3.4)
Oct 20 09:37:01 dns1 named[3080]: client X.X.X.X#53231 (local): view someview: query: local IN SOA + (1.2.3.4)
我对服务器进行了挖掘以查看返回的响应,并且很确定下面的响应是完全正确的,但是我不是 100% 确定。挖掘如下,只需要有人确认它看起来应该是这样 - 我们不想回答 localhost 或 localnet(现在已经到位)上的任何内容。
> dig @ourdns local
回答:
; <<>> DiG 9.10.3 <<>> @dns1 local
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 4495
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;local. IN A
;; AUTHORITY SECTION:
. 85530 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2015102000 1800 900 604800 86400
;; Query time: 17 msec
;; SERVER: 1.2.3.4#53(1.2.3.4)
;; WHEN: Tue Oct 20 13:00:17 EDT 2015
;; MSG SIZE rcvd: 109
是的,这是一个很好的回应——注意
NXDOMAIN
状态,这意味着它对客户说“那里什么都没有”。由于它是一个递归器,它的决定是基于它向根服务器请求
.local
并且根服务器响应它不存在的事实。(有趣的事实 - 这种对无效 TLD 的查询是根 DNS 服务器上负载的重要部分,因为.local
TLD 的不存在几乎与真实 TLD 的存在一样长是不可缓存的)