我管理一些网站,需要不时更新它们的 DNS 条目,例如,添加指向某个子域的 A 记录到某个 IP。
当我检查类似的网站时http://www.opendns.com/support/cache/,我可以清楚地看到 DNS 更改在全世界生效 - 只是我的电脑看不到这个更改(ping newsubdomain.example.org
说它无法解析主机名)
网络“地图”是这样的:
My PC -> my router -> my ISP's router -> internet
在我的 PC 上,DNS 是自动设置的,这意味着如果我运行iconfig /all
,我的路由器将返回为 DNS 服务器 (192.168.1.1)。
在我的路由器上,DNS 设置为我的 ISP 提供给我的。
这是正确的吗?我该怎么做才能更快地解析新主机名?
答案1
路由器(或 ISP)上的 DNS 服务器可能正在缓存现有记录的响应,这通常是件好事,因为它可以减轻上游服务器的负载。根据路由器上运行的软件,您可能能够禁用缓存或缩短缓存时间,但这当然只会影响您自己的网络。请记住,其他用户可能会遇到同样的问题。正确的方法是仅将权威服务器中条目的 TTL 值降低到几分钟,然后等待旧 TTL 值中给出的时间。在那之后,您可以更改记录,它们也应该在新的 TTL 值给出的时间段内在其他缓存服务器上生效。之后,您可以再次增加时间以减少权威服务器的负载并降低用户的查询速度。
如果问题也出现在以前不存在的新子域上,您可能无能为力,因为您可能对 TTL 没有影响,因为普通用户通常无法在通常的 DNS 服务上更改它。
要知道哪个服务器缓存了响应多长时间,您可以nslookup -debug yourdomain dnsserver
在路由器、ISP 和权威 DNS 服务器上运行。