以下是有关 Cloudflare DNS Firewall 的常见问题解答。
DNS Firewall 在客户的 nameserver 之间交替,使用一种更可能将查询发送到较快上游 nameserver 而非较慢 nameserver 的算法。
DNS Firewall 根据分配的内存设置缓存寿命。
只要有足够的分配内存,Cloudflare 不会强制清除缓存中的项目,即使 TTL 已过期。此功能允许 Cloudflare 在 nameserver 离线时从缓存提供过期对象。
是的。SERVFAIL 在缓存目的上与其他否定应答一样处理。默认 TTL 为 30 秒。你可以在 Cloudflare 仪表板中为集群设置不同的负缓存 TTL,或通过 API(negative_cache_ttl 参数)。
是的。DNS 提供商通常希望通过 EDNS Client Subnet (ECS)(RFC 7871 ↗)查看客户端 IP,因为他们根据客户端 IP 提供地理特定的 DNS 应答。启用 EDNS Client Subnet 后,DNS Firewall 会将客户端 IP 子网与 DNS 查询一起转发到上游 nameserver。
启用 EDNS 时,DNS Firewall 根据客户端 IP 子网在缓存中提供地理正确的应答。为此,DNS Firewall 对其缓存进行分段。例如:
- Resolver 表示它正在为客户端
192.0.2.0/24查找应答。 - DNS Firewall 将请求代理到上游 nameserver 获取应答。
- DNS Firewall 缓存来自上游 nameserver 的应答,但仅针对该
/24。 203.0.113.0/24现在提出相同的 DNS 问题,应答再次来自上游 nameserver 而非缓存。
某些 resolver 可能不发送任何 EDNS 数据。当你在 Cloudflare 仪表板中启用 ECS fallback — 或通过 API 将 ecs_fallback 参数设为 true — 仅当入站 DNS 查询中不存在 EDNS 数据时,DNS Firewall 才会转发 resolver 的 IP 子网。
是的。默认 TTL 为 30 秒。你可以在 Cloudflare 仪表板中为集群配置负缓存 TTL,或通过 API(negative_cache_ttl 参数)。这将影响状态为 REFUSED、NXDOMAIN 或 SERVFAIL 的响应的 TTL。
要为指向 nameserver 主机名的 DNS Firewall 集群 IP 设置 PTR 记录,请使用以下 API 端点: