我设置了几个域名服务器并更新了我的域以使用它们,据我所知一切正常并且域名服务器已更新,或者说我使用过的每个 whois 和 dnstools 类型的网站,(intodns,谁.is 等都在说同样的事情:新的 nameserverrvers 已经生效,并且站点指向新的 ip 就好了)。问题是网站没有显示,dig 告诉我旧的 ip/nameservers 仍然有效。
在我的 DNS 记录中,我有:
domain. A IN NS ns1.newnameserver
domain. A IN NS ns2.newnameserver
ns1 IN A newipaddress
ns2 IN A newipaddress
domain. IN A newipaddress
我的时间很紧,还没有在互联网上找到任何东西,所以任何帮助将不胜感激
最佳答案
您查询的服务器可能缓存了旧 IP 地址。首先,通过使用 dig 直接查询它们来检查您的新权威名称服务器是否发布了正确的地址:
dig @ns1.newnameserver domain. a
dig @ns2.newnameserver domain. a
假设这些查询给出了正确的答案,挖掘其他一些不是的服务器:
dig domain. a # Use the system's default resolvers
dig @8.8.8.8 domain. a # Use Google's public resolver
dig @some.other.ip.address domain. a
如果它给出旧答案,请查看 TTL。这是在名称之后和“IN”之前的答案中列出的数字字段。那是在您查询的服务器丢弃其缓存数据并再次查询权威服务器之前您必须等待的秒数。
询问那些相同的名称服务器,他们认为“域”在哪里。被委托(delegate):
dig domain. ns # Use the system's default resolvers
dig @8.8.8.8 domain. ns # Use Google's public resolver
dig @some.other.ip.address domain. ns
你想看到“domain.”的 2 个 NS reocrds,一个指向“ns1.newnamserver”,另一个指向“ns2.newnameserver”,但解析器同样缓存该信息,因此它们可能仍然有旧的名称服务器.如果是这样,也请查看那些 NS 记录上的 TTL。如果这些记录上的 TTL 比 A 记录上的 TTL 长,这些解析器可能仍会转到旧名称服务器以获取“域”。即使当前缓存的副本过期,A 记录也是如此......因此您可能需要先等待该 TTL 过期,然后等待实际 A 记录上的 TTL 再次过期!
您可以做的另一件事是查询您域的父域的一些权威名称服务器,以查看它们是否确实将其委托(delegate)给“ns1.newnameserver”和“ns2.newnameserver”。这将验证 DNS 中的委派是否与 WHOIS 中的匹配。
dig com. ns # If your domain's parent domain is "com."
dig @<one-of-the-servers-that-resulted-from-that-query> domain. ns
同样,您希望看到“域”的 2 个 NS 记录,一个指向“ns1.newnamserver”,另一个指向“ns2.newnameserver”。
关于linux - IP/名称服务器中的 BIND 配置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8804157/