我不太了解互联网和 DNS 的工作原理。当我尝试在维基百科上阅读相关内容时,我被一堆不懂的术语淹没了。我没有计算机科学背景。
当将名称服务器记录从 ns1.oldserver.com 更改为 ns1.newserver.com 时,实际上发生了什么?我的意思是,哪个“机器”或东西负责将用户的 URL 查询从 ns1.oldserver.com 定向到 ns1.newserver.com?用户如何知道永远不要再访问 ns1.oldserver.com?
同样,当我将域的 A 记录更改为从旧 IP 地址指向新 IP 地址时,实际上发生了什么?这与更改名称服务器记录是一回事吗?
谢谢
答案1
记录从父名称服务器委派 - 它就像一个链(或通常描述为一个逆树。)每个 DNS 客户端都知道根服务器的 IP 地址 - 这些是一组服务器(我认为是 13 个),提供注册服务器的 IP 地址 - .uk 的 Nominet、.eu 的 eurID 等。
然后,您的域名将在拥有您的名称服务器地址的注册中心注册(在您的示例中为 ns1.oldserver.com)。最后,您的域名的名称服务器(或名称服务器,因为您至少应该有两个)将满足实际请求。
例如,假设客户想要访问 www.domain.com。
这可以分为三个部分 - 客户端向根服务器查询的所谓顶级域名 (TLD) - 本例中为 .com。提供此服务的名称服务器之一可能是 a.gtld-servers.net - 根服务器将向客户端提供 a.gtld-servers.net 的 IP 地址 - 这些被称为 NS 和粘合记录。
接下来是实际域 - 本例中为 domain.com。客户端查询 a.gtld-servers.com 中的 domain.com。然后,这可能会返回 ns1.domain.com 和 ns2.domain.com,并将相关 IP 地址作为 NS 和 glue 记录。
最后是主机名 - 本例中为 www。因此,客户端将查询 ns1.domain.com 或 ns2.domain.com 以获取域 www.domain.com,并返回网站的实际 IP 地址(A 记录)。
这一切都发生在几毫秒内。DNS解析器的典型超时时间为2秒。
回到您最初的问题,当您更改名称服务器时,您正在更改注册表级别的 NS 记录(Nominet、eurID 等)。完成更改后,当客户端向根服务器查询 domain.com 时,它将获得 ns1.newserver.com 的 IP 地址,而不是 ns1.oldserver.com。
全球所有客户端通常需要最多 72 小时才能注意到更改,因为它们会将所有结果缓存在域记录中指定的时间长度内。NS 记录通常缓存 72 小时甚至长达一周。因此,在进行更改后至少几天内不要将旧名称服务器脱机。
更改 A 记录与更改 NS 记录非常相似 - 您只是更改内容,就像更改数据库记录一样。下次有人查询您的记录时,它将获取新值(再次考虑缓存,但对于 A 记录来说,缓存时间要短得多,通常为 1/2 - 1 天。)
如果您可以访问 Linux,请运行 dig +trace www.google.com,您将看到完整的查询链,这可能会给您提供更好的想法。