终结

源代码 主页

启用方式
finalize:github.com/tmeckel/coredns-finalizer

finalize - 将 CNAME 解析到其 IP 地址。

说明

该插件将尝试解析 CNAME,并仅返回生成的 A 或 AAAA 地址。如果无法解析到 A 或 AAAA 记录,则会向客户端返回原始(第一个)应答。

将检测存在循环依赖,并记录错误。在该情况下,也会将原始(第一个)应答返回到客户端。

语法

finalize [max_depth MAX]
  • max_depth MAX 限制对 CNAME 链进行调用的最大次数以解析最终的 A 或 AAAA 记录,可以指定值 > 0

    如果达到最大深度,并且无法找到 A 或 AAAA 记录,则将包含 CNAME 的原始(第一个)应答返回到客户端。

指标

如果已启用监控(通过 prometheus 指令),则会导出以下指标

  • coredns_finalize_request_count_total{server} - 对 finalize 插件的查询次数。

  • coredns_finalize_circular_reference_count_total{server} - 检测到的循环引用的次数。

  • coredns_finalize_dangling_cname_count_total{server} - 无法解析的 CNAME 次数。

  • coredns_finalize_maxdepth_reached_count_total{server} - 在尝试解析 CNAME 时达到最大深度时的事件次数。

  • coredns_finalize_maxdepth_upstream_error_count_total{server} - 收到的上游错误次数。

  • coredns_finalize_request_duration_seconds{server} - 解析 CNAME 的持续时间。

server 标签指示处理请求的服务器。

就绪

该插件会向就绪插件报告就绪状态。它会立即就绪。

示例

在此配置中,我们将所有查询转发至 9.9.9.9 并解析 CNAME。

. {
  forward . 9.9.9.9
  finalize
}

在此配置中,我们将所有查询转发至 9.9.9.9 并解析具有最大搜索深度 1 的 CNAME

. {
  forward . 9.9.9.9
  finalize max_depth 1
}