为什么我在使用时收到此警告查看DNS信息测试工具:
WWW 记录测试
警告WWW CNAME 查找
糟糕!您的 WWW 记录有 CNAME 条目,但关联的 A 记录未随其返回!这意味着需要执行额外的查找,从而不必要地增加您网站的加载时间。
我搜索过这个警告报告,但没有找到任何有意义的内容,谷歌搜索结果只返回单页而没有太多相关性。
有人知道这是什么意思吗?为什么会发生这种情况?真正的问题是——如果你使用 ViewDNS.info 检查 godaddy.com,他们的域名也收到了这个警告!知道我不是唯一一个遇到这个问题的人,这让我感到些许安慰,但我想知道为什么?我该如何解决这个问题?更重要的是,我是否需要更改(1)我的 DNS 记录中的某些内容,或(2)我的服务器/托管或(3)两个地方或(4)它与 NameSilo NS 有某种关联?
我已经测试了我的 2 个域名域名注册信息;其中一个已注册名称筒仓,另一个Domain.com。
exampledomain1.com(NameSilo + VPS)
exampledomain2.com(Domain.com + 使用 cPanel 的共享主机)
现在,就我所知(由于我是自学的,所以对 DNS 的了解有限),两者的配置方式相同。当然,唯一的区别是 IP 地址、域名和一些参数的值。但总体而言,A 记录和 CNAME 记录是相同的。
例子:
A record on NameSilo
.exampledomain1.com => 1.2.3.4
*.exampledomain1.com => 1.2.3.4
A record on Domain.com
@.exampledomain1.com => 1.2.3.4
*.exampledomain1.com => 1.2.3.4
笔记:
在两个域名中我都使用不带 www 的版本,在服务器端我执行所有重定向。这部分工作正常。
在 NameSilo 中我已留空.exampledomain1.com以上,在 Domain.com 上则是@.exampledomain2.com-- 我认为效果是一样的,例如指向“根”?
CNAME records on NameSilo/Domain.com respectively
www.exampledomain1.com => exampledomain1.com
www.exampledomain2.com => exampledomain2.com
当我执行 DNS 全面检查时,exampledomain2.com (Domain.com) 在部分下未返回任何错误WWW 记录测试> WWW CNAME 查找但是,我确实收到了针对 exampledomain1.com (NameSilo) 的警告。
我已经用 dig 测试过域名(下面的通配符 * 表示数字 1 或 2):
dig exampledomain*.com
dig www.exampledomain*.com
dig CNAME exampledomain*.com
dig CNAME www.exampledomain*.com
而且我收到的报告总体非常相似,这意味着在这方面一切都没问题。
NameSilo 存在一些 SOA 问题,例如:
error: All nameservers have same SOA serial number
warning: SOA serial number format
但是,那部分不受我控制(我认为)。
谢谢!
答案1
TLDR;
我思考发出警告的主要原因“您有一个 WWW 记录的 CNAME 条目,但是关联的 A 记录未返回!” 是您无法控制的 DNS 服务器设置。
您可以通过将 CNAME 记录改为 A 记录来解决该问题。
如果您拥有一个权威名称服务器,并且该区域包含(其中包括)以下两个资源记录:
example.com. 3600 IN A 192.0.2.1
www.example.com. 3600 IN CNAME example.com.
并且记录www.example.com. 被请求,则最小响应正是该 CNAME 记录,并且 dig 查询可能会返回:
;; ANSWER SECTION:
www.example.com. 3600 IN CNAME example.com.
;; Query time: 1 msec
在该最小响应之后,您仍然没有获得所需的 IP 地址,并且您的解析器将需要执行第二次查询以查看 example.com. 解析为哪个地址。对 example.com. 的查询将产生以下响应:
;; ANSWER SECTION:
example.com. 3600 IN A 192.0.2.1
;; Query time: 1 msec
据我所知是的习惯的但不是强制性的(在特殊情况下,当 CNAME 记录位于同一区域或不同区域,且同一 DNS 服务器也具有该区域的权威性时)名称服务器会做出有根据的猜测,即返回 CNAME 记录类型作为响应的查询将可预测地随后是针对该 CNAME 的查询。
名称服务器将抢占这一机会,它将解释请求,扩展 CNAME,然后简单地将两个记录作为单个响应发送(至少在旧RFC 1034第4.3.2段)。
;; ANSWER SECTION:
www.example.com. 3600 IN CNAME example.com.
example.com. 3600 IN A 192.0.2.1
;; Query time: 1 msec
这会使响应变得更大,但在大多数情况下可以为客户端节省第二次查询和第二次往返。
当您的名称服务器不需要执行该逻辑时,它将会更快。
由于您无法控制名称服务器,只有您自己的域的数据,您可以通过不使用 CNAME 记录而是使用 A 记录并创建区域来消除警告:
example.com. 3600 IN A 192.0.2.1
www.example.com. 3600 IN A 192.0.2.1