具有长 TTL 的空 AAAA DNS 记录?

具有长 TTL 的空 AAAA DNS 记录?

我根据每秒查询次数来支付 DNS 服务费用。

我们没有使用 IPv6,但有大量查询(我付费)针对 AAAA 记录。我知道大多数 DNS 堆栈现在会同时请求 A 和 AAAA,而我无法改变这一点。

喜欢做的是将一些内容放入具有较长 TTL 的 AAAA 记录中。(降低我的命中率)

我可以输入什么吗?空?等效的 IPv4 地址?

任何指导将不胜感激。

答案1

在 BIND 9 中,SOA 记录中的“最小”值表示 NXDOMAIN 响应可以缓存多长时间。这是以下示例中的最后一个值:

example.com.    IN    SOA   ns.example.com. hostmaster.example.com. (
                              2003080800 ; sn = serial number
                              172800     ; ref = refresh = 2d
                              900        ; ret = update retry = 15m
                              1209600    ; ex = expiry = 2w
                              3600       ; min = minimum = 1h
                              )

将其更改为更长的时间,例如 86400(1 天)甚至 604800(1 周)。

请记住,这适用于负面缓存任何不存在的记录,而不仅仅是 AAAA 记录,因此在添加任何类型的新记录时都需要采取额外步骤(减少此值,等待,添加新记录,再次增加此值)。

答案2

没有空 AAAA 记录。也没有 IPv4 地址的 IPv6 等效项(RFC 4291 提到了这种机制,但已被弃用)。这意味着 IPv6 感知系统将尝试连接到您在此处输入的 IPv6 地址。虽然我认为大多数浏览器如果在 IPv6 上没有得到响应,就会回退到 IPv4,但您的空 IPv6 将导致许多用户的响应速度变慢。此外,我觉得这是“错误”的做法。

当然,“正确”的做法是支持 IPv6(有时这可能毫不费力,当然取决于您的具体情况)。

如果现在支持 IPv6 连接不切实际,您还可以增加负面响应缓存的 TTL 时间 - 它是域 SOA 记录的最后一个字段。

编辑:您可能还需要增加 SOA 记录本身的 TTL - 负面缓存时间是最低限度两个值之一 - 1. SOA“最小”字段和 2. SOA 记录本身的 TTL。(来源:RFC2308,第 3 节

相关内容