当用户在浏览器中输入特定网站时发生的整个端到端过程可以参考下图:
图片
答案 → DNS 指的是域名系统(Domain Name System)。DNS 是互联网的目录,将人类可读的域名,例如 google.com,转换为机器可读的 IP 地址。
答案 → 这个过程是一个复杂而优雅的过程。DNS 信息被大量缓存在各个地方:
答案 → DNS 层次结构中有不同类型的 DNS 服务器,每个服务器都有不同的用途。
当浏览器进行 DNS 查询时,实际上是在询问 DNS 解析器。
这个 DNS 解析器可以来自我们的 ISP,也可以来自像 CloudFlare 的 1.1.1.1 或 Google 的 8.8.8.8 这样的流行 DNS 提供商。
如果 DNS 解析器在其缓存中没有答案,它会找到正确的权威名称服务器并向其发出请求。
答案 → “权威名称服务器”是保存答案的服务器。当我们更新域名的 DNS 记录时,我们实际上是在更新其权威名称服务器。
答案 → 权威名称服务器有三个主要级别:
答案 → 请找到有关根名称服务器的详细信息:
根名称服务器存储顶级域名服务器的 IP 地址。
有 13 个逻辑根名称服务器,每个根名称服务器都分配了一个唯一的 IP 地址。
每个前述 IP 地址后面实际上有很多物理服务器。
通过 Anycast 的神奇之处,我们被路由到最接近我们的任何一个服务器。
答案 → 请找到有关顶级域名服务器的详细信息:
答案 → 当我们注册一个域时,默认情况下注册商运行权威名称服务器,但我们可以将其更改为其他服务器。
请注意,像 AWS 和 CloudFlare 这样的云服务提供商运行强大的权威名称服务器。
答案 → 此过程涉及以下步骤:-
第一步: 用户在浏览器中输入 google.com。
第二步: 如果在操作系统缓存中找不到答案,它会向 DNS 解析器发出请求。DNS 解析器首先检查自己的缓存。
第三步: 如果在 DNS 解析器缓存中找不到答案,或者说答案已过期,则它会请求根名称服务器。
第四步: 根名称服务器首先返回“.com”顶级域名服务器的列表。
请注意,由于“.com”是一个常见的顶级域名,解析器很可能已经缓存了那些“.com”顶级域名服务器的 IP 地址。
第五步: 然后,DNS 解析器到达“.com”顶级域名服务器。
第六步: “.com”顶级域名服务器返回“google.com”的权威名称服务器。
第七步: 然后,DNS 解析器到达“google.com”的权威名称服务器。
第八步: “google.com”的权威名称服务器然后返回“google.com”的 IP 地址。
第九步: 然后,DNS 解析器将 IP 地址返回给操作系统。操作系统然后将其返回给浏览器。
答案 → 这有两个原因:
(1) DNS 传播很慢,因为每个 DNS 记录都有 TTL。而且一些默认 TTL 很长。
(2) 并非每个 DNS 解析器都是良好的“公民”,也就是说,有些 DNS 解析器可能不遵守 TTL。
答案 → 有两种主要方法:
方法 #1.) 将要更改的记录的 TTL 缩短到非常短的时间(比如 60 秒),并在实际更新发生之前提前更改。
这样做可以让所有 DNS 服务器有足够的时间接收新的缩短 TTL,从而根据新的缩短 TTL 实际记录更新可以生效。
方法 #2.) 在旧 IP 地址上保留服务器运行一段时间。只有当流量下降到可接受的水平时,才关闭服务器。