-1

可能很简单的问题,我错过了一些微不足道的事情,但是......典型的 CDN 封装设置是:

  • domain.com 封装IP的记录
  • subdomain.domain.com CNAME 记录到 incapsula.host

为什么使用 A 记录?为什么不将 CNAME 记录也用于根域?

4

3 回答 3

1

因为如果您想在同一域下拥有其他记录,则不能拥有根域的 CNAME 记录。DNS 规范不允许这样做,特别是在 RFC 1034 ( http://www.faqs.org/rfcs/rfc1034.html )

如果 CNAME RR 出现在节点上,则不应出现其他数据;这可确保规范名称及其别名的数据不能不同。此规则还确保可以使用缓存的 CNAME,而无需与权威服务器检查其他 RR 类型。

如果您有 CNAME 扁平化,那么您“可以”这样做。

于 2016-06-07T22:40:17.397 回答
0

CNAME 记录是否可用于根域由该域的 DNS 服务提供商决定。它与该域的 CDN 提供商无关。

CNAME 到根域不是标准的 DNS 功能,所以很多 DNS 服务商不支持。这也是为什么根域在某些情况下必须指向 CDN 提供商的 A 记录的原因。

在其他DNS服务商确实支持CNAME到根域的情况下,你配置根域指向CNAME,你在挖掘的时候还是会找到一条A记录,这叫做CNAME flattening。

以我的这个站点 whatsmycdn.com 为例,它实际上指向的是 CDN CNAME,但是由于 CNAME 扁平化,你在挖掘它时只能看到 CDN 虚拟 IP:

dig whatsmycdn.com +short
110.232.178.193
于 2016-12-07T17:10:21.380 回答
0

大多数 DNS 提供商不允许您将根域指向其他记录然后是 A 记录,原因是 RFC 规则禁止这样做。最佳实践是按照 Incapsula 的指示指向根记录,并使用他们的管理控制台将根域指向 WWW 域以避免延迟(CNAME 使用地理位置)。

于 2017-04-20T08:24:14.757 回答