DNS漫游指南:从网址到IP的奇妙之旅

当用户在浏览器中输入特定网站时发生的整个端到端过程可以参考下图

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

到此为止,这篇文章就结束了,团队日更不易,觉得不错的点个赞吧~

相关推荐
久绊A1 小时前
网络信息系统的整个生命周期
网络
_PowerShell1 小时前
[ DOS 命令基础 3 ] DOS 命令详解-文件操作相关命令
网络·dos命令入门到精通·dos命令基础·dos命令之文件操作命令详解·文件复制命令详解·文件对比命令详解·文件删除命令详解·文件查找命令详解
_.Switch3 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
qq_254674413 小时前
工作流初始错误 泛微提交流程提示_泛微协同办公平台E-cology8.0版本后台维护手册(11)–系统参数设置
网络
JokerSZ.4 小时前
【基于LSM的ELF文件安全模块设计】参考
运维·网络·安全
小松学前端6 小时前
第六章 7.0 LinkList
java·开发语言·网络
城南vision6 小时前
计算机网络——TCP篇
网络·tcp/ip·计算机网络
Ciderw7 小时前
块存储、文件存储和对象存储详细介绍
网络·数据库·nvme·对象存储·存储·块存储·文件存储
石牌桥网管7 小时前
OpenSSL 生成根证书、中间证书和网站证书
网络协议·https·openssl