我可以使用 CNAME 作为 Google Cloud DNS 的注册商 NS 记录吗?

我可以使用 CNAME 作为 Google Cloud DNS 的注册商 NS 记录吗?

Google Cloud DNS 提示用户向其注册商设置以下名称服务器记录:

ns-cloud-c1.googledomains.com.
ns-cloud-c2.googledomains.com.
ns-cloud-c3.googledomains.com.
ns-cloud-c4.googledomains.com.

我也可以像这样将名称服务器设置为我控制的 CNAME 吗?

ns1.foo.com -> CNAME to ns-cloud-c1.googledomains.com.
ns2.foo.com -> CNAME to ns-cloud-c2.googledomains.com.
etc

从技术上来说这似乎是可行的,但我想知道这是否是 Google Cloud DNS 支持的配置,或者我将来是否会遇到此方案的问题?

ns-cloud-c1.googledomains.com.此外,一个帐户中的所有区域所使用的名称服务器记录(例如)是否始终相同?

谢谢

答案1

从技术上来说这可能行得通,但这是一个非常糟糕的想法 - 原因有三。

RFC1035,第 3.3.11 节指出“NS 记录会导致通常的附加部分处理来定位 A 类记录,并且当用于引用时,会对其所在的区域进行特殊搜索以获取胶水信息。” - 即规范要求使用 A 记录。这确实是答案。下面的所有内容只是为了帮助理解为什么 -

第二个原因(实际上只是理解这背后的思维方式)是粘合记录以及系统如何知道/缓存域名。(这并不完全适用于此,但请考虑域名 example.com 和名称服务器 nsX.example.com - 为了使其正常工作,nsX 需要编码到根区域记录中,否则它无法找到 example.com 来解析 nsX.example.com。使用 CNAMES 会破坏名称服务器做出的许多假设,并且可能会给您带来麻烦。

最后,也是不太重要的原因是 CNAME 的工作方式与 Joe Aaverage 想象的不一样。它们不是从单个子域到另一个域的链接!如果在不知道其具体用途的情况下设置 CNAME,将会产生意想不到的后果 - 在这种情况下,解析 a.ns1.foo.com 的请求将尝试查找 a.ns-cloud-c1.googledomains.com,这虽然不是灾难性的,但也不是理想的行为。

相关内容