我们的一个域名出现了一个奇怪的问题,这个问题已经持续了 15 多个小时了。这个域名在全国很多地方都无法解析。我尝试在几个不同的 Linux 服务器上 ping 它,结果如下:
example.com: Temporary failure in name resolution
不过,问题并不局限于地理区域。全国各地的人现在都告诉我,他们也无法 ping 通该域名。然而,有些人能ping 域名并可以正常访问。
最后,有人向我推荐了这个网站:https://dnschecker.org/ip-blacklist-checker.php
当我尝试解析域名时,显示“已列入黑名单?”不除了这个之外的所有内容:dnsbl.spfbl.net
当我单击错误时,它显示以下内容:
未找到 rDNS。
由于没有有效的 FCrDNS,此 IP 已被标记。
为该IP注册一个有效的rDNS,指向同一个IP。
rDNS 必须在您自己的域下注册,您才能将其删除。
我想不出是什么原因造成的,也不知道该如何解决。据我所知,该域的 A 记录不指向静态 IP,因为它经过 Cloudflare 负载平衡器。我认为这可能是 Cloudflare 的问题,我们将其用作名称服务器。然而,他们的门户网站昨天没有显示任何信息,今天早上也没有显示任何相关信息。
我们发现的唯一解决方法是手动更改首选 DNS 服务器。例如,Google 和 OpenDNS 无法解析该域名。在 dnsblacklist.org 上,12 个 DNS 解析器中有 7 个无法解析该域名。Cloudflare 和其他 4 个解析器可以成功解析该域名。如果我们1.1.1.1
在服务器上将首选 DNS 服务器更改为手动,现在它们就可以 ping 通该域名了。
问题是,显然,我们所有的公共用户都不会这样做。您对到底发生了什么有什么想法吗?我最近没有对域记录进行任何更改,这不会影响我的其他任何使用 Cloudflare 作为名称服务器的域。无论该地址上的流量是否通过 Cloudflare 代理,此问题都会影响此域上的所有子域以及主域。
更新:
另一个域名:
有问题的域名:
答案1
如果你去https://dnsviz.net/d/phreaknet.org/X44olg/dnssec/现在,你会发现你的域名至少有 6 个虚假错误和 3 个错误。换句话说:DNS 层出了大问题:
我不知道您使用过哪些服务,但显然它们没有注意到 DNSSEC 问题,因此它们并不好。使用dnsviz.net
,它经过尝试并且值得信赖。
正如评论中所说,DNSSEC 通常是“它在那里有效,但在那儿无效”的根源,因为如果它被破坏,它只会被验证解析器视为被破坏,而验证解析器并不是所有的解析器。此外,DNSSEC 中有许多边缘情况,可能会导致一个解析器接受答案,而另一个解析器不接受。
您将需要解决所有这些问题。
DS
首先彻底删除 DNSSEC,除非您确定掌握它。这意味着前往其当前赞助的注册商(whois 中显示的 Namecheap)并找到删除注册中心中您域名的记录的方法。
完成后您需要等待。需要等待多长时间?
.ORG 权威域名服务器发布您的DS
记录,TTL 为一天:
$ dig org. NS +short
b2.org.afilias-nst.org.
b0.org.afilias-nst.org.
a2.org.afilias-nst.info.
a0.org.afilias-nst.info.
d0.org.afilias-nst.org.
c0.org.afilias-nst.info.
$ dig @d0.org.afilias-nst.org. DS phreaknet.org +noall +ans
phreaknet.org. 1d IN DS 2371 13 2 (
1AE4B3ECD5282A0A412E6792B60855C39D9166F94703
980CCECB740EAAD501A9 )
因此,您需要等待该记录消失后至少一天(这可能发生在您要求注册商删除该记录后的某个时间)。
一旦DS
记录消失至少 1 天,请再次进行 DNSviz 检查,看看是否还有其他问题。但很可能只要这样做,您就已经解决了所有问题。
或者,您应该要求您的 DNS 提供商帮助您解决域上的 DNS 相关问题。特别是因为核心问题是:
"RRSIG phreaknet.org/DNSKEY alg 13, id 2371: The Signature Expiration field of the RRSIG RR (2020-10-18 21:55:18+00:00) is 1 day in the past."
这意味着您的 DNS 提供商未更新您域上的签名,或者您自己没有按照DS
DNS 提供商的指示更改注册表中的记录以使用另一个密钥,而您却没有这样做。此签名最近过期解释了为什么您在大约一天前开始收到问题报告。
如果您的 DNS 提供商可以使用当前密钥在所有记录上重新生成有效签名,那么一切将再次正常运转,而无需删除注册表DS
。但您还需要等待,尽管等待时间会短得多,因为签名的 TTL 似乎是 1 小时或 5 分钟:
$ dig phreaknet.org SOA +dnssec +cd +noall +ans
phreaknet.org. 1h IN SOA donna.ns.cloudflare.com. dns.cloudflare.com. (
2035213272 ; serial
10000 ; refresh (2 hours 46 minutes 40 seconds)
2400 ; retry (40 minutes)
604800 ; expire (1 week)
3600 ; minimum (1 hour)
)
phreaknet.org. 1h IN RRSIG SOA 13 2 3600 (
20201021011353 20201018231353 34505 phreaknet.org.
bxVvIlM7M5tlKDLsRUSj2LSpNrvkv4DlZnzi+AfKFkP7
1GuzfyOJmNlpQK+eD8j+kigLcBXUEkbO66rY76QWtA== )
$ dig phreaknet.org A +dnssec +cd +noall +ans
phreaknet.org. 5m IN A 104.18.57.190
phreaknet.org. 5m IN A 104.18.56.190
phreaknet.org. 5m IN A 172.67.175.181
phreaknet.org. 5m IN RRSIG A 13 2 300 (
20201021011314 20201018231314 34505 phreaknet.org.
BCZjG6JZfJqERRBOZ9DP50OBXzUhCdQ777EoElWv52oU
xRRWw+I1e/ok3a5V2h1gt/OBLVVwlRFQhALk2rclSA== )
关于上述内容,还有以下有用的说明:
- 您需要
+dnssec
查看RRSIG
记录以及它们的 TTL(否则默认情况下不会显示它们,因为它们本身毫无用处……除了解决与 DNSSEC 相关的问题) - 您绝对需要
+cd
该标志,该标志请求不执行 DNSSEC 验证,否则这些查询可能会SERVFAIL
因为 DNSSEC 配置已损坏而返回。是DNSSEC+cd
最重要的标志:“在没有它的情况下执行查询,然后使用它重做相同的查询并得到答复”意味着在 99.999% 的情况下,您的问题仅与您域上的 DNSSEC 配置有关。dig
SERVFAIL