1*4vb-NMUuYTzYBYUFSuSKLw.png
问题: 什么是 DNS?
答案 → DNS 指的是域名系统(Domain Name System)。DNS 是互联网的目录,将人类可读的域名,例如 google.com,转换为机器可读的 IP 地址。
1*y9eSvs0_AlPr2G98IvbZIQ.png
问题: 高层次解释 DNS 查询的过程是什么?
答案 → 这个过程是一个复杂而优雅的过程。DNS 信息被大量缓存在各个地方:
•首先, 浏览器从自己的缓存中短时间查找这些信息。•接下来, 如果在缓存中找不到 DNS 映射,则向计算机操作系统进行查询,操作系统也会短时间缓存此信息。•接着, 如果在操作系统的缓存中仍然找不到 DNS 映射,则浏览器向互联网发出查询,查询到 DNS 解析器。这将引发一系列请求,直到找到 DNS 映射为止。这一步涉及 DNS 基础设施中的许多服务器。
最终,浏览器获得了服务器的 IP 地址。
问题: 解释一下 DNS 服务器?
答案 → DNS 层次结构中有不同类型的 DNS 服务器,每个服务器都有不同的用途。
•当浏览器进行 DNS 查询时,实际上是在询问 DNS 解析器。•这个 DNS 解析器可以来自我们的 ISP,也可以来自像 CloudFlare 的 1.1.1.1 或 Google 的 8.8.8.8 这样的流行 DNS 提供商。
1*bQ1EkujCRhmmhcmYLoK7Lg.png
如果 DNS 解析器在其缓存中没有答案,它会找到正确的权威名称服务器并向其发出请求。
问题: 什么是“权威名称服务器”?
答案 → “权威名称服务器”是保存答案的服务器。当我们更新域名的 DNS 记录时,我们实际上是在更新其权威名称服务器。
1*m4OWBWgjr5h4sKe0ZUS5Yw.png
问题: DNS 解析器如何找到权威名称服务器?
答案 → 权威名称服务器有三个主要级别:
•根名称服务器。•顶级域名服务器。•域的权威名称服务器。
1*iRkFRqmD5zwol3gBkU267w.png
问题: 解释一下根名称服务器?
答案 → 请找到有关根名称服务器的详细信息:
•根名称服务器存储顶级域名服务器的 IP 地址。
1*6joQtvAF9YJBfFlE-o6u4w.png
•有 13 个逻辑根名称服务器,每个根名称服务器都分配了一个唯一的 IP 地址。
1*laru2kE0Tt5M0WAqym7b-g.png
•每个前述 IP 地址后面实际上有很多物理服务器。
1*D9FPe4l7UzA2cf4o3vMtOA.png
•通过 Anycast 的神奇之处,我们被路由到最接近我们的任何一个服务器。
1*PIAzfG7kGR53zd7JWw0RiA.png
问题: 解释一下顶级域名服务器?
答案 → 请找到有关顶级域名服务器的详细信息:
•顶级域名服务器存储了其下所有域的权威名称服务器的 IP 地址。•有许多类型的顶级域名。例如,我们熟悉的有“.com”、“.org”、“.edu”。还有国家代码顶级域名如“.de”和“.uk”。还有许多其他类型。•域的权威名称服务器提供 DNS 查询的权威答案。
1*D_gAkYlSDHsGn_W6XTdHYw.png
问题: 解释一下权威名称服务器?
答案 → 当我们注册一个域时,默认情况下注册商运行权威名称服务器,但我们可以将其更改为其他服务器。
1*SmTGD9A-x0LDa03uB6yoxg.png
请注意,像 AWS 和 CloudFlare 这样的云服务提供商运行强大的
权威名称服务器。
问题: 介绍一下典型 DNS 查询的流程?
答案 → 此过程涉及以下步骤:-
第一步: 用户在浏览器中输入 google.com。
•浏览器首先检查自己的缓存以找到相应的 IP 地址。•如果缓存中没有答案,则进行操作系统调用以获取答案。操作系统调用很可能有自己的缓存。
1*SCX8baOdRKxSBnWiCAHB6Q.png
第二步: 如果在操作系统缓存中找不到答案,它会向 DNS 解析器发出请求。DNS 解析器首先检查自己的缓存。
1*zLINA_6lgsr5WnyluGGODw.png
第三步: 如果在 DNS 解析器缓存中找不到答案,或者说答案已过期,则它会请求根名称服务器。
1*RQ-ytn0ydaDTbIYKP-vItQ.png
第四步: 根名称服务器首先返回“.com”顶级域名服务器的列表。
1*sgQ7OwxHoWKYGe8l6jH9OA.png
请注意,由于“.com”是一个常见的顶级域名,解析器很可能已经缓存了那些“.com”顶级域名服务器的 IP 地址。
1*ybDHWzqbPOaBwpy3Z3bi8w.png
第五步: 然后,DNS 解析器到达“.com”顶级域名服务器。
1*9WZnAhYZ8JBR29z8mk5dnA.png
第六步: “.com”顶级域名服务器返回“google.com”的权威名称服务器。
1*aqY7bWLKQz4FoP9dcx1wVA.png
第七步: 然后,DNS 解析器到达“google.com”的权威名称服务器。
1*-Veux3PynzdSUVARoIA4zw.png
第八步: “google.com”的权威名称服务器然后返回“google.com”的 IP 地址。
1*MNRXXC0_PlMy2gYM7E0AWg.png
第九步: 然后,DNS 解析器将 IP 地址返回给操作系统。操作系统然后将其返回给浏览器。
1*OctY0U8xZCWE-_CgRvRHtA.png
问题: 在 DNS 级别进行更改通常需要很长时间才能反映这些更改?
答案 → 这有两个原因:-
1.) DNS 传播很慢,因为每个 DNS 记录都有 TTL。而且一些默认 TTL 很长。
1*QKS36qnxayLfpJyy5SaUpw.png
2.) 并非每个 DNS 解析器都是良好的“公民”,也就是说,有些 DNS 解析器可能不遵守 TTL。
1*TTXsWQfdmMCNNF6Niv2ICg.png
问题: 有哪些方法可以减轻这种风险?
答案 → 有两种主要方法:-
方法 #1.) 将要更改的记录的 TTL 缩短到非常短的时间(比如 60 秒),并在实际更新发生之前提前更改。
1*ybso5wwgNTw5bIQxlTemLA.png
这样做可以让所有 DNS 服务器有足够的时间接收新的缩短 TTL,从而根据新的缩短 TTL 实际记录更新可以生效。
1*0FkfXowVibD0eG-N8aYylw.png
方法 #2.) 在旧 IP 地址上保留服务器运行一段时间。只有当流量下降到可接受的水平时,才关闭服务器。
1*E6CeTkLIjf-e2S9nxDxG7A.png
到此为止,这篇文章就结束了,团队日更不易,觉得不错的点个赞吧~