当所有其他记录都被删除时,根上的 CNAME 是什么?

当所有其他记录都被删除时,根上的 CNAME 是什么?

我有多个域名需要指向同一台服务器。我更愿意对根域名使用 CNAME 设置。

现在我读到这不是一个好主意,因为MX 记录无法通过 CNAME 处理,提供商管理员不接受。但是,如果我删除 CNAME 域的所有其他记录,是否意味着所有请求都得到正确处理?

假设这是 abcdomain 的原始记录:

# NON ROOT RECORDS
*.abc-domain.test           AAAA        1c00:1234:17:0:4::16
admin.abc-domain.test       CNAME       admin.testserver.test
*.abc-domain.test           A           12.34.56.78
localhost.abc-domain.test   A           127.0.0.1

# ROOT RECORDS
abc-domain.test             A           12.34.56.78
abc-domain.test             AAAA        1c00:1234:17:0:4::16
abc-domain.test             NS          ns1.hostingxyz.test
abc-domain.test             NS          ns2.hostingxyz2.test
abc-domain.test             NS          ns3.hostingxyz3.test
abc-domain.test             MX  100     mx15.testhoster.test
abc-domain.test             MX  100     mx14.testhoster.test
abc-domain.test             MX  200     fallback1.testserver.test
abc-domain.test             MX  300     fallback2.testserver.test
abc-domain.test             MX  100     mx1.testhoster.test

如果我想使用 CNAME 作为根记录,则意味着我必须删除完整的根记录列表(A,AAA,NS,MX)并将其替换为单个 CNAME:

# NON ROOT RECORDS
*.abc-domain.test           AAAA        1c00:1234:17:0:4::16
admin.abc-domain.test       CNAME       admin.testserver.test
*.abc-domain.test           CNAME       abc-domain.test
localhost.abc-domain.test   A           127.0.0.1

# ROOT CNAME RECORD
abc-domain.test             CNAME       xyz-domain.test

这是使用 CNAME 根记录的方式吗?

这有什么不好吗?

答案1

不可以,这是不允许的。您不能将 CNAME 与其他记录一起使用,它必须是该名称的唯一记录(或如您所显示的通配符名称)。

这里的问题是,对于您“购买”的任何顶级根,都有其他记录,而这些记录可能对您来说是隐藏的,例如,对于google.com,顶级根有 SOA 和 NS 记录,表示从“.com”DNS 服务器移交给 Google 的 DNS 服务器。对于您的真实域名,几乎肯定有同样的东西,NS 记录和 SOA 记录,表示管理移交给托管公司的 DNS 服务器。这就是为什么您不能将 CNAME 放在顶级根上,那里的 SOA 和 NS 记录禁止这样做。

尝试以下命令之一来了解我的意思(不是每个人都有):

挖掘 abc-domain.test

或者

nslookup -q=ns abc-domain.test

就 MX 记录而言,当您拥有多个具有不同优先级的 MX 记录时,您不应该引用 CNAME 名称。这可能会缩短投递过程并导致邮件被投递到“更远”的地方,从而导致循环(当 MTA 剔除优先级较低的 MX 记录时,名称匹配会失败)。如果您只有一条 MX 记录,您可以这样做,但仍不建议这样做。

相关内容