因此,我们尝试使用 Barracuda RBL(http://barracudacentral.org/rbl) 来检测不良 IP,这是我们欺诈过滤的一部分。不幸的是,我们的名称服务器似乎没有将有效 IP 的 NXDOMAIN 缓存超过一秒钟。我们正在使用 BIND,并将 max-ncache-ttl 设置为默认值。我确实注意到,作为 NXDOMAIN 的一部分,没有返回 SOA 记录,但对于 Google 的无效子域,会将 SOA 记录作为 NXDOMAIN 的一部分返回。那么 Barracuda RBL 做错了吗?有没有办法强制 BIND 将其缓存更长的时间,即使 SOA 作为 NXDOMAIN 的一部分返回?
# dig 1.2.2.4.b.barracudacentral.org
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> 1.2.2.4.b.barracudacentral.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 16258
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;1.2.2.4.b.barracudacentral.org. IN A
;; Query time: 58 msec
;; SERVER: 192.168.103.2#53(192.168.103.2)
;; WHEN: Thu Jul 12 10:45:29 2018
;; MSG SIZE rcvd: 48
# dig afa43fsdf.google.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> afa43fsdf.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 56529
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;afa43fsdf.google.com. IN A
;; AUTHORITY SECTION:
google.com. 60 IN SOA ns1.google.com. dns-admin.google.com. 204305905 900 900 1800 60
;; Query time: 26 msec
;; SERVER: 192.168.103.2#53(192.168.103.2)
;; WHEN: Thu Jul 12 10:46:52 2018
;; MSG SIZE rcvd:
88
答案1
是的,该服务发送的响应不完整。NXDOMAIN
响应应始终在部分中NODATA
包含相关记录。SOA
AUTHORITY
负缓存时间定义为MIN(SOA TTL,SOA.最小值),其中两个组件都依赖于SOA
记录作为响应的一部分。