我有一个新网站,它的 DNS 条目(thetunegame.com)已经有 10 天了,所以它应该已经正确传播了。
我已经让来自多个国家的 200 多人访问它,没有任何问题,但有 4 个人,全部来自希腊(虽然这可能是样本偏差),无法访问它。其中一人给我发了这张截图:
我理解这意味着他们的系统找不到 DNS 条目。我不是专家,这也不是我自己的系统,所以我能做的事情有限,但是我已经确定:
- 更改为 Google DNS 服务器(并执行 ipconfig /flushdns)不是解决这个问题
- 改变网络做解决这个问题
- 不是所有 4 个人都在同一个网络/ISP 上(因此这不是特定 ISP 的问题)
- 更换浏览器不是解决它(如果是 Chrome 缓存问题)
我的设置:
- Google 注册的域名,指向 Cloudflare DNS
- Cloudflare 已启用 DNSSEC(以防万一)
我尝试过的事情:
- 要求遇到此问题的人做上述事情
- 通过一些在线工具测试 DNS 是否能为我和世界各地的服务器解析成功(确实如此)
- 检查 Google 和 Cloudflare 之间的 DNSSEC 设置是否一致
我完全被难住了!我不明白为什么 4 个人(不在同一网络上)都看不到它,即使通过 Google DNS 服务器尝试也是如此。
我不知道还要测试什么,以防我的设置有问题。
有什么方法可以确认我的设置是否正确?
如果是的话,我还能要求这些人尝试什么?
答案1
检查 Google 和 Cloudflare 之间的 DNSSEC 设置是否一致
事实并非如此。您通过 Google 提交的委托指定了 RSA 密钥(算法 5),但 Cloudflare 的实际区域使用的是 ECDSA P-256 密钥(算法 13)。
您可以在以下位置查看 DNSSEC 验证状态DNSViz:原始扫描,最新扫描。
算法不匹配导致无法验证签名,因此使用验证解析器的人会收到 SERVFAIL 错误,而非验证解析器则不会出现域名问题。Google 公共解析器 (8.8.8.8) 是一个验证解析器。
要解决此问题,请更改 Google 的 DNSSEC 设置以指定 ECDSA P-256 (13) 作为算法。您可能需要等待最多 24 小时才能让旧的 DS 记录从缓存中过期。(DNSViz 将绕过缓存并更快地看到更改,但您必须点击“立即更新”才能刷新图表。)
1 (对于 EC P-256 密钥来说,所示的 512 位密钥大小是正常的。)