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

news/2025/1/13 7:56:11/

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

cb808779209c40e6da4fc76434b99b7f.png

1*4vb-NMUuYTzYBYUFSuSKLw.png

问题: 什么是 DNS?

答案 → DNS 指的是域名系统(Domain Name System)。DNS 是互联网的目录,将人类可读的域名,例如 google.com,转换为机器可读的 IP 地址。

a3ddf83c31843c5473b0721f72ff773f.png

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 提供商。

4446fee792cdb2c42942b69b51ff41dd.png

1*bQ1EkujCRhmmhcmYLoK7Lg.png

如果 DNS 解析器在其缓存中没有答案,它会找到正确的权威名称服务器并向其发出请求。

问题: 什么是“权威名称服务器”?

答案 → “权威名称服务器”是保存答案的服务器。当我们更新域名的 DNS 记录时,我们实际上是在更新其权威名称服务器

c9be621157d009a9a30831a3a5b3f47f.png

1*m4OWBWgjr5h4sKe0ZUS5Yw.png

问题: DNS 解析器如何找到权威名称服务器

答案 → 权威名称服务器有三个主要级别:

•根名称服务器。•顶级域名服务器。•域的权威名称服务器。

8994d36816c9c0d3f1d42c193aa5adae.png

1*iRkFRqmD5zwol3gBkU267w.png

问题: 解释一下根名称服务器

答案 → 请找到有关根名称服务器的详细信息:

•根名称服务器存储顶级域名服务器的 IP 地址。

beb8870423a80c7cf2ae5ccde24822ef.png

1*6joQtvAF9YJBfFlE-o6u4w.png

•有 13 个逻辑根名称服务器,每个根名称服务器都分配了一个唯一的 IP 地址。

d811e38949b45b57c33af29b1db05df4.png

1*laru2kE0Tt5M0WAqym7b-g.png

•每个前述 IP 地址后面实际上有很多物理服务器。

f4168aa089e1ea0856aedd1a98ee8548.png

1*D9FPe4l7UzA2cf4o3vMtOA.png

•通过 Anycast 的神奇之处,我们被路由到最接近我们的任何一个服务器。

40d5d554c9650aaeb577e7709f91ea95.png

1*PIAzfG7kGR53zd7JWw0RiA.png

问题: 解释一下顶级域名服务器

答案 → 请找到有关顶级域名服务器的详细信息:

•顶级域名服务器存储了其下所有域的权威名称服务器的 IP 地址。•有许多类型的顶级域名。例如,我们熟悉的有“.com”、“.org”、“.edu”。还有国家代码顶级域名如“.de”和“.uk”。还有许多其他类型。•域的权威名称服务器提供 DNS 查询的权威答案。

4acdd70d58ee45c1654c7a6f302fe821.png

1*D_gAkYlSDHsGn_W6XTdHYw.png

问题: 解释一下权威名称服务器

答案 → 当我们注册一个域时,默认情况下注册商运行权威名称服务器,但我们可以将其更改为其他服务器。

8c92fae149b842f83c92e1b92a1d5a73.png

1*SmTGD9A-x0LDa03uB6yoxg.png

请注意,像 AWS 和 CloudFlare 这样的云服务提供商运行强大的

权威名称服务器

问题: 介绍一下典型 DNS 查询的流程?

答案 → 此过程涉及以下步骤:-

第一步: 用户在浏览器中输入 google.com。

•浏览器首先检查自己的缓存以找到相应的 IP 地址。•如果缓存中没有答案,则进行操作系统调用以获取答案。操作系统调用很可能有自己的缓存。

412cdf9ab639856c1bd92897eadebcb6.png

1*SCX8baOdRKxSBnWiCAHB6Q.png

第二步: 如果在操作系统缓存中找不到答案,它会向 DNS 解析器发出请求。DNS 解析器首先检查自己的缓存。

96dd6fbb3c007ec277932a7d650d3450.png

1*zLINA_6lgsr5WnyluGGODw.png

第三步: 如果在 DNS 解析器缓存中找不到答案,或者说答案已过期,则它会请求根名称服务器。

ab605ab5366cebfb49b313888cdb0324.png

1*RQ-ytn0ydaDTbIYKP-vItQ.png

第四步: 根名称服务器首先返回“.com”顶级域名服务器的列表。

36fa450f65bc11f42338132b8071678c.png

1*sgQ7OwxHoWKYGe8l6jH9OA.png

请注意,由于“.com”是一个常见的顶级域名,解析器很可能已经缓存了那些“.com”顶级域名服务器的 IP 地址。

c1f4a51bf88855382c9fcd0f35aaf7f3.png

1*ybDHWzqbPOaBwpy3Z3bi8w.png

第五步: 然后,DNS 解析器到达“.com”顶级域名服务器。

ab9b72ba1da885f8fe7a106936b8c5ae.png

1*9WZnAhYZ8JBR29z8mk5dnA.png

第六步: “.com”顶级域名服务器返回“google.com”的权威名称服务器

ce014d9ee18e208035f81f004d02776e.png

1*aqY7bWLKQz4FoP9dcx1wVA.png

第七步: 然后,DNS 解析器到达“google.com”权威名称服务器

9d17df0d310eb6404aa7703d1a80864b.png

1*-Veux3PynzdSUVARoIA4zw.png

第八步: “google.com”的权威名称服务器然后返回“google.com”的 IP 地址。

ab5f8708113ea75fc1bd12d37672b027.png

1*MNRXXC0_PlMy2gYM7E0AWg.png

第九步: 然后,DNS 解析器将 IP 地址返回给操作系统。操作系统然后将其返回给浏览器。

efe5f9340b5855d59acd2531254be5d2.png

1*OctY0U8xZCWE-_CgRvRHtA.png

问题: 在 DNS 级别进行更改通常需要很长时间才能反映这些更改?

答案 → 这有两个原因:-

1.) DNS 传播很慢,因为每个 DNS 记录都有 TTL。而且一些默认 TTL 很长。

9070954c46360bdd8c503a8227437a65.png

1*QKS36qnxayLfpJyy5SaUpw.png

2.) 并非每个 DNS 解析器都是良好的“公民”,也就是说,有些 DNS 解析器可能不遵守 TTL。

7f9f5969ab2411d32c17ad89d65bc427.png

1*TTXsWQfdmMCNNF6Niv2ICg.png

问题: 有哪些方法可以减轻这种风险?

答案 → 有两种主要方法:-

方法 #1.) 将要更改的记录的 TTL 缩短到非常短的时间(比如 60 秒),并在实际更新发生之前提前更改。

344c8077e886782f7b0beb0d19983fa9.png

1*ybso5wwgNTw5bIQxlTemLA.png

这样做可以让所有 DNS 服务器有足够的时间接收新的缩短 TTL,从而根据新的缩短 TTL 实际记录更新可以生效。

c13658721f8275caf7acdfe87e3469d8.png

1*0FkfXowVibD0eG-N8aYylw.png

方法 #2.) 在旧 IP 地址上保留服务器运行一段时间。只有当流量下降到可接受的水平时,才关闭服务器。

284581bd39cdf150b664b984f5192e30.png

1*E6CeTkLIjf-e2S9nxDxG7A.png

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

 


http://www.ppmy.cn/news/1270772.html

相关文章

电信网关配置管理系统后台 upload.php 文件上传漏洞复现

0x01 产品简介 中国电信集团有限公司(英文名称“China Telecom”、简称“中国电信”)成立于2000年9月,是中国特大型国有通信企业、上海世博会全球合作伙伴。 0x02 漏洞概述 电信网关配置管理系统后台 /manager/teletext/material/upload.php 接口存在文件上传漏洞,攻击者…

#mybatis #mapper.xml 分步查询 与 级联查询 一对多案例

分步查询 <!-- 部门 Mapper XML 文件 --><!-- 查询某个部门及其下的所有员工&#xff0c;使用 resultMap 定义嵌套查询 --> <select id"selectDepartmentWithEmployees" resultMap"DepartmentWithEmployeesResultMap">SELECT * FROM de…

KaiwuDB 连续三年荣获开源中国“优秀开源技术团队”

近日&#xff0c;国内知名开源技术社区开源中国&#xff08;OSCHINA&#xff09;面向其平台上各大认证官方技术团队、开源社区帐号&#xff0c;结合年度发表的内容深度及广度、开展各种活动运营影响力等多方表现层层筛选&#xff0c;最终 KaiwuDB 获颁 OSCHINA “2023年度优秀开…

PR模板,复古怀旧电影效果视频制作PR项目工程文件

Premiere复古怀旧电影效果视频制作pr模板项目工程文件下载 这个PR模板以复古城市印象电影质感为特色&#xff0c;结合了电影和数字故障效果。包含6个场景。可以编辑文本、添加媒体和自定义颜色。包含视频教程。4K版本。不需要任何插件。 软件支持&#xff1a;PR2022 | 分辨率&a…

命令执行 [BUUCTF 2018]Online Tool1

打开题目 我们代码审计一下 if (isset($_SERVER[HTTP_X_FORWARDED_FOR])) { $_SERVER[REMOTE_ADDR] $_SERVER[HTTP_X_FORWARDED_FOR]; } 如果存在xxf头且不为空&#xff0c;则将xxf头内容&#xff08;真实的客户端ip&#xff09;赋给ROMOTE_ADDR&#xff08;代理服务器传过…

Java数据结构-通过数组封装-结构分析

1、默认arrayList的数组未初始化 ArrayList<Integer> arrayList new ArrayList<>();System.out.println(ClassLayout.parseInstance(arrayList).toPrintable()); java.util.ArrayList object internals: OFF SZ TYPE DESCRIPTION …

c++常见函数处理

1、clamp clamp&#xff1a;区间限定函数 int64_t a Clamp(a, MIN_VALUE, MAX_VALUE); #include <iomanip> #include <iostream> #include <sstream>int main() {std::cout << "no setw: [" << 42 << "]\n"<&l…

电子学会C/C++编程等级考试2021年03月(六级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:生日相同 2.0 在一个有180人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的名字,出生月日。试找出所有生日相同的学生。 时间限制:1000 内存限制:65536输入 第一行为整数n,表示有n个学生,n ≤ 180。此后每…