我根据每秒查询次数为 DNS 服务付费。
我们没有使用 IPv6,但是大量查询(我付费)正在进入 AAAA 记录。我知道大多数 DNS 堆栈现在会同时请求 A 和 AAAA,而且我无法更改这一点。
我想做的是在 AAAA 记录中放一些长 TTL 的东西。(降低我的命中率)
有什么我可以放的吗?无效的?等效的 IPv4 地址?
任何指导将不胜感激。
我根据每秒查询次数为 DNS 服务付费。
我们没有使用 IPv6,但是大量查询(我付费)正在进入 AAAA 记录。我知道大多数 DNS 堆栈现在会同时请求 A 和 AAAA,而且我无法更改这一点。
我想做的是在 AAAA 记录中放一些长 TTL 的东西。(降低我的命中率)
有什么我可以放的吗?无效的?等效的 IPv4 地址?
任何指导将不胜感激。
在 BIND 9 中,SOA 记录中的“最小”值表示 NXDOMAIN 响应可以缓存多长时间。这是以下示例中的最后一个值:
将其更改为更长的时间,比如 86400(1 天)甚至 604800(1 周)。
请记住,这适用于任何不存在的记录的负缓存,而不仅仅是 AAAA 记录,因此您需要在添加任何类型的新记录时采取额外的步骤(减少此值,等待,添加新记录,增加此值再次)。
没有空的 AAAA 记录这样的东西。也没有 IPv4 地址的 IPv6 等价物(RFC 4291 提到了这种机制,但它已被弃用)。这意味着 IPv6 感知系统将尝试连接到您放置在那里的 IPv6 地址。虽然我认为如果大多数浏览器在 IPv6 上没有响应,它们将回退到 IPv4,但是您的空 IPv6 将导致许多用户的响应变慢。此外,我觉得这只是“错误”的事情。
“正确”的做法当然是支持 IPv6(有时它可以毫不费力,当然取决于您的具体情况)。
如果现在支持 IPv6 连接不切实际,您还可以增加否定响应缓存的 TTL 时间——它是域 SOA 记录的最后一个字段。
编辑:您可能还需要增加 SOA 记录本身的 TTL - 负缓存时间是两个值中的最小值- 1. SOA“最小”字段和 2. SOA 记录本身的 TTL。(来源:RFC2308,第 3 节)