云 DNS

源代码

云 DNS 可用于从 GCP 云 DNS 提供区域数据。

说明

从 GCP 云 DNS 中的资源记录集提供区域,云 DNS 插件很有用。此插件支持所有 Google 云 DNS 记录。CoreDNS 在 GCP 或其他位置部署时,都可以使用此插件。请注意,此插件通过 Google Cloud API 访问资源记录。对于私有托管区域中的记录,不需要将 CoreDNS 和此插件放置在关联的 VPC 网络中。实际上,可以创建私有托管区域而无需任何关联的 VPC,此插件仍可以访问托管区域下的资源记录。

语法

clouddns [ZONE:PROJECT_ID:HOSTED_ZONE_NAME...] {
    credentials [FILENAME]
    fallthrough [ZONES...]
}
  • ZONE 要访问的域名。当存在具有重叠域名的多个区域(私有托管区域与公有托管区域)时,CoreDNS 按此处提供的顺序执行查找。因此,对于不存在的资源记录,SOA 响应将来自右侧区域。

  • PROJECT_ID Google Cloud 项目的项目 ID。

  • HOSTED_ZONE_NAME 包含要访问的资源记录集的托管区域的名称。

  • credentials 用于从 FILENAME(通常是 .json 文件)读取凭据文件。此字段是可选的。如果未提供此字段,则将自动完成认证,例如,通过环境变量 GOOGLE_APPLICATION_CREDENTIALS。请参阅 Google Cloud 的 认证方法 了解更多详情。

  • fallthrough 如果区域匹配但无法生成记录,请将请求传递给下一个插件。如果省略 [ZONES…],则会对插件具有权威的所有区域实施故障转移。如果列出特定的区域(例如 in-addr.arpaip6.arpa),则只有针对这些区域的查询会受到故障转移影响。

示例

使用隐式 GCP 凭据启用云 DNS 并通过 10.0.0.1 解析 CNAME

example.org {
    clouddns example.org.:gcp-example-project:example-zone
    forward . 10.0.0.1
}

使用故障转移启用云 DNS

example.org {
    clouddns example.org.:gcp-example-project:example-zone example.com.:gcp-example-project:example-zone-2 {
        fallthrough example.gov.
    }
}

使用具有相同域名的多个托管区域启用云 DNS

. {
    clouddns example.org.:gcp-example-project:example-zone example.com.:gcp-example-project:other-example-zone
}