当我更改区域文件或 DNS 设置中的名称服务器记录或 A 记录时会发生什么?

Joh*_*ohn 11 domain-name-system a-record nameserver

我真的不明白互联网和 DNS 是如何工作的。当我试图在维基百科上阅读它时,我被我不理解的术语所淹没。我没有计算机科学背景。

将名称服务器记录从 ns1.oldserver.com 更改为 ns1.newserver.com 时,实际发生了什么?我的意思是,什么“机器”或东西负责将用户的 url 查询从 ns1.oldserver.com 定向到 ns1.newserver.com?用户如何知道永远不会再访问 ns1.oldserver.com?

同样,当我将域的 A 记录更改为从旧 IP 地址指向新 IP 地址时,实际发生了什么?它与更改名称服务器记录相同吗?

谢谢

And*_*lam 19

记录是从父名称服务器委托的——它就像一个链(或通常被描述为一个反向树。)每个 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 和胶水记录。

最后是主机名 - 在本例中为 www。因此,客户端将查询 ns1.domain.com 或 ns2.domain.com 以获取域 www.domain.com,并获取网站的实际 IP 地址(A 记录)。

所有这一切都在几毫秒内发生。DNS 解析器的典型超时为 2 秒。

回到您最初的问题,当您更改名称服务器时,您正在更改注册表级别(Nominet、eurID 等)的 NS 记录。在您进行更改之后,当客户端查询 domain.com 的根服务器时,它将获得 ns1.newserver.com 而不是 ns1.oldserver.com 的 IP 地址。

世界各地的所有客户端通常最多需要 72 小时才能注意到更改,因为它们会在域记录中指定的时间长度内缓存所有结果。NS 记录通常会缓存 72 小时甚至长达一周。因此,在进行更改后至少几天内不要让旧的名称服务器脱机。

更改 A 记录与更改 NS 记录非常相似 - 您只是更改内容,就像更改数据库记录一样。下次有人查询您的记录时,它将获得新值(再次考虑缓存,但 A 记录要低得多,通常为 1/2 - 1 天。)

如果您可以访问 Linux 机器,请运行 dig +trace www.google.com,您将看到完整的查询链,这可能会给您一个更好的主意。