DNS 解析

許多 Envoy 組件會解析 DNS:不同的叢集類型(strict dnslogical dns);動態轉發代理系統(由叢集和篩選器組成);udp dns 篩選器 等。Envoy 使用 c-ares 作為第三方 DNS 解析函式庫。在 Apple 作業系統上,Envoy 額外透過 envoy.restart_features.use_apple_api_for_dns_lookups 執行階段功能,提供使用 Apple 特定 API 的解析。

Envoy 透過擴充功能提供 DNS 解析,並包含 3 個內建的擴充功能

  1. c-ares: CaresDnsResolverConfig

  2. Apple (僅限 iOS/macOS):AppleDnsResolverConfig

  3. 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

計數器

導致逾時的查詢次數