原生 DNS 新鲜度
省略监听器的 dns 或将 dns.servers 保留为空,将使用本机 OS/NSS 主机名解析以及 60 秒的应用程序记忆窗口。相同的默认解析器为控制器探针提供服务。成功查找完成后,该窗口就会启动;条目在窗口边界处到期。所有返回的可用地址及其原始顺序均被保留。错误和空结果不会被缓存,并且失败时不会提供过期的答案。每个缓存都有一个惰性的、有界的、有 10,000 个条目的 LRU,由精确的主机名作为键控;结果跨端口共享,每个调用者接收其请求的端口。逐出可能会导致提前刷新。并发未命中共享一次查找,每个解析器最多有 1,024 个参与调用者。过多的呼叫者独立查找;这不是操作系统查找并发上限。取消所有者会使幸存的呼叫者在剩余期限内重试。不添加后台刷新,并且无法停止已运行的操作系统调用。
显式 dns: {servers: system} 继续使用 OS/NSS 查找**,无需应用程序记忆或并发查找共享**。要选择不同的固定窗口,请使用内联或命名的 DNS 组中的系统服务器选项对象:
dns: servers: url: system native_cache_secs: 15native_cache_secs 接受 0 到 4294967295 秒之间的整数。省略或 0 禁用此显式系统条目的记忆。它在非系统上游被拒绝,包括设置为 0 时;未知选项和无效值将被拒绝。该选项属于服务器选项对象,而不是外部 dns 对象。现有的timeout_secs仍然是查找截止日期,而不是缓存新鲜度; connect_timeout_secs 和 attempts 不控制本机缓存。
这是负载/新鲜度的权衡,不是 DNS TTL 合规性:操作系统查找 API 不提供记录 TTL。较短的窗口会增加操作系统查找次数;禁用 shoes 缓存无法绕过操作系统、NSS 模块或上游解析器中的缓存。保留本机主机文件/NSS 行为。新的流程过期后可以看到更新的答案;已建立的流保留其固定目的地。此设置控制本机主机名查找缓存,而不是每个与 DNS 相关的缓存。 Hickory 缓存和 Fake-IP 映射/TTL 未更改。
请参阅DNS 调整示例。