DNS 解析
许多 Envoy 组件解析 DNS:不同的集群类型( 严格 DNS, 逻辑 DNS); 动态转发代理 系统(由集群和过滤器组成);udp DNS 过滤器 等。Envoy 使用 c-ares 作为第三方 DNS 解析库。在 Apple OS 上,Envoy 还通过 envoy.restart_features.use_apple_api_for_dns_lookups
运行时功能提供使用 Apple 特定 API 的解析。
Envoy 通过扩展提供 DNS 解析,并包含 3 个内置扩展
c-ares: CaresDnsResolverConfig
Apple(仅限 iOS/macOS): AppleDnsResolverConfig
getaddrinfo: GetAddrInfoDnsResolverConfig
有关内置 DNS 类型配置的示例,请参阅 HTTP 过滤器配置文档.
基于 c-ares 的 DNS 解析器在 dns.cares
状态树中发出以下状态
名称
类型
描述
resolve_total
计数
DNS 查询次数
pending_resolutions
仪表
正在进行的 DNS 查询数
not_found
计数器
返回 NXDOMAIN 或 NODATA 响应的 DNS 查询数
timeout
计数器
导致超时的 DNS 查询数
get_addr_failure
计数器
DNS 查询期间的一般故障数
基于 Apple 的 DNS 解析器在 dns.apple
状态树中发出以下状态
名称
类型
描述
connection_failure
计数器
连接到 DNS 服务器的失败尝试次数
get_addr_failure
计数器
调用 GetAddrInfo API 时的通用故障数
network_failure
计数器
网络连接故障次数
processing_failure
计数器
处理来自 DNS 服务器的数据时的故障数
socket_failure
计数器
获取到 DNS 服务器套接字的文件描述符的失败尝试次数
timeout
计数器
导致超时的查询数