【问题标题】:CNAME in Google Cloud DNS谷歌云 DNS 中的 CNAME
【发布时间】:2016-02-07 20:54:01
【问题描述】:

我一直在尝试将 www.mydomain.net 别名添加到 mydomain.net。我已经有 Google 自动添加的 MX 记录和 NS 和 SOA 记录。

我收到 cnameResourceRecordSetConflict 错误:

错误码“cnameResourceRecordSetConflict”:资源记录集 'entity.change.additions[0]' 无效,因为 DNS 名称 'mydomain.net.'可能有一个 CNAME 资源记录集或 其他类型的资源记录集,但不能两者兼有。

我理解错误给我的建议,但我怎么能有其他记录呢?我的域中需要 MX 和 CNAME。

【问题讨论】:

  • 我也有这个需求,但谷歌云 DNS 文档已过时,无法匹配他们的管理 Web 控制台页面...文档位于 cloud.google.com/compute/docs/tutorials/setting-up-dns...请告诉我们您是如何解决的本期
  • 为了实现 www.mydomain.net 和 domain.net 都指向同一个记录,我添加了另一个 DNS 名称为 www.mydomain.net 的 A 记录。现在回想起来似乎相当明显:)

标签: dns cname google-cloud-dns


【解决方案1】:

您遇到的问题是 rules of DNS 的问题,它禁止存在另一条记录的 CNAME 记录。

如果节点上存在 CNAME RR,则不应有其他数据 展示;这确保了规范名称及其别名的数据 不能不同。此规则还确保缓存的 CNAME 可以 在没有与权威服务器检查其他 RR 类型的情况下使用。

您正在尝试为 @ 记录创建 CNAME。 @ 记录是来源,例如 example.com。源端已经至少有两条记录,SOA(授权开始 - 基本上是关于域的信息)记录和 NS(名称服务器)

因此,您无法为 Origin 创建 CNAME 记录。

因此,您只能为来源创建 A 记录(为了完成标准的 A 记录查询 - 当然您仍然可以创建 MX 等)。但是,有些 DNS 提供商具有特殊类型的 ANAME 记录,如果您在源端需要 CNAME 记录,则需要切换到其中之一。

【讨论】:

  • 所以在 Cloud DNS 中我不能将 CNAME 与顶级域一起使用?
  • @Lightheaded 因为你不应该那样做
【解决方案2】:

我目前在配置 GCP Cloud DNS 域时遇到了同样的问题。

这个错误很笼统,也不是很清楚。但是,我在 GitHub kubernetes-sigs/external-dns 上发现了一个问题,标题为 “Google-CloudDNS:启用 txt 注册表时无法写入 CNAME 记录。”有点清楚其他记录可能导致问题。

Google 的 DNS error message documentation 提到 SOANS 会与 CNAME 冲突:

cnameResourceRecordSetConflict

资源记录集 entity.change.additions[XX] 无效,因为 DNS 名称 example.com 可能有一个 CNAME 资源记录集或其他资源记录集类型,但不是两者兼有。

当您为同一 DNS 名称创建两种类型的资源记录集(例如 A 记录和 CNAME 记录)时,会发生此错误。此错误的常见原因是尝试在区域顶点创建 CNAME 记录。这是不可能的,因为它会与所需的同名 SOA 和 NS 记录发生冲突。

建议的操作:选择其中一个。

但是感觉不太对劲,因为 SOANS 记录都是在创建 Cloud DNS 服务时自动添加的。

回顾我的 Cloud DNS,我发现了两条 TXT 记录,我添加了用于通过 Google 验证属性,并且在删除 TXT 记录后,我能够添加 CNAME 记录。

希望对未来的开发者有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    相关资源
    最近更新 更多