0

我设置了几个名称服务器并更新了我的域以使用它们,据我所知,一切正常,名称服务器已更新,或者说我使用的每个 whois 和 dnstools 类型站点,(intodns、who.is 等都在说同样的事情:新的名称服务器已经生效,并且站点指向新的 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

我的时间很短,在互联网上没有找到任何东西,所以任何帮助将不胜感激

4

2 回答 2

1

您查询的服务器可能正在缓存旧的 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”之前列出的数字字段。这就是您必须等待多少秒,直到您查询的服务器丢弃其缓存数据并再次查询权威服务器。

询问那些相同的名称服务器他们认为“域”在哪里。被委托:

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 reocrd,一个指向“ns1.newnamserver”,另一个指向“ns2.newnameserver”,但解析器同样会缓存该信息,因此它们可能仍然拥有旧的名称服务器。如果是这样,请查看这些 NS 记录上的 TTL。如果这些记录上的 TTL 比 A 记录上的 TTL 长,那么即使它们当前缓存的副本过期,这些解析器仍可能会去旧名称服务器获取“域。”的 A 记录......所以你可能需要等那个 TTL 过期,再等实际 A 记录上的 TTL 再过期!

您可以做的另一件事是查询您域的父域的一些权威名称服务器,以查看它们是否确实将其委托给“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

同样,您希望看到“domain.”的 2 个 NS 记录,一个指向“ns1.newnamserver”,另一个指向“ns2.newnameserver”。

于 2012-01-10T14:34:00.363 回答
0

如果旧的名称服务器仍在运行,则:

  1. 确保他们不是,或者
  2. 确保他们也有新的区域数据

有些人仍然会与旧的域名服务器交谈,直到他们停止回答或给出正确的答案,他们才不会从父区域学习新的域名服务器。

于 2012-01-10T14:59:28.577 回答