当没有返回 SOA 记录时如何缓存 NXDOMAIN

当没有返回 SOA 记录时如何缓存 NXDOMAIN

因此,我们尝试使用 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包含相关记录。SOAAUTHORITY

负缓存时间定义为MIN(SOA TTL,SOA.最小值),其中两个组件都依赖于SOA记录作为响应的一部分。

相关内容