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

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

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.mzph.cn/news/217111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cobalt strike基础使用

coblat strike使用 服务搭建 首先将server端文件放进kali中 对其赋权 执行时需要root权限 设置ip 启动服务 ./teamserver 10.4.7.138 123456回到win11启动cs,输入刚才配置的信息 上线方式 木马(exe上线) 查看一下开放的端口 添加监听 …

最新科研成果:在钻石中存储多比特数据,实现25GB数据密度

近日,纽约城市大学(CUNY)的研究人员已经成功地利用钻石原子结构中的小型氮缺陷作为“颜色中心”来写入数据进行存储(然后是检索)。这项发表在《自然纳米技术》上的技术允许通过将数据编码为多个光频率(即颜…

T5论文个人记录

参考&转载自: 介绍Google推出的大一统模型—T5_谷歌大模型_深度之眼的博客-CSDN博客 T5 和 mT5-CSDN博客 T5:Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer(万字长文略解T5)_t5论文…

tomcat软件部署

1.tomcat 2.tomcat功能组件 3.请求过程 4.tomcat部署 一.tomcat tomcat 是 Java 语言开发的,Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,却不如nginx,apache功能强大,通常作为 Servlet 和 JSP容器,单…

2023 CCF中国软件大会(CCF ChinaSoft)“软件定义汽车”论坛成功召开

2023年12月1日下午,2023年度CCF中国软件大会“软件定义汽车”论坛成功召开。 本次论坛由华东师范大学蒲戈光教授、武汉光庭信息技术股份有限公司朱敦尧董事长以及华东师范大学张越龄副教授联合组织举办。论坛主要关注汽车的智能网联化与电动化的融合,包括…

scala方法与函数

定义方法定义函数方法和函数的区别scala的方法函数操作 1.9 方法与函数 1.9.1 定义方法 定义方法的基本格式是: def 方法名称(参数列表):返回值类型 方法体 def add(x: Int, y: Int): Int x y println(add(1, 2)) // 3 //也…

揭秘高效大型语言模型:技术、方法与应用展望

近年来,大型语言模型(LLMs)在自然语言处理领域取得了显著的进展,如GPT-series(GPT-3, GPT-4)、Google-series(Gemini, PaLM), Meta-series(LLAMA1&2), BLOOM, GLM等模型在各种任务中展现出惊人的能力。然而,随着模…

初学python的体会心得20字,初学python的体会心得2000

大家好,小编来为大家解答以下问题,学了python的心得体会200字,初学python的体会心得20字,现在让我们一起来看看吧! 本学期,我们学习了杨老师的《python语言程序设计》这门课程,其实早在大一期间…

人工智能导论习题集(1)

第二章:知识表示 题1题2题3题4题5 题1 题2 题3 题4 题5

HarmonyOS创建一个page并实现界面跳转(JavaScript)

上文 HarmonyOS创建JavaScript(类 Web开发模式)项目中 我们接触了这咋类Web开发模式 并创建了一个项目 之前 我们 ArkTS 开发模式的项目 resources目录 下的 base目录下的 profile目录下的 main_pages.json中存放了 我们page目录的配置 但是 我们javaScript模式 下 好像没有哦 …

DataFunSummit:2023年数据治理在线峰会-核心PPT资料下载

一、峰会简介 数据治理(Data Governance)是组织中涉及数据使用的一整套管理行为。由企业数据治理部门发起并推行,关于如何制定和实施针对整个企业内部数据的商业应用和技术管理的一系列政策和流程。 数据治理是一个通过一系列信息相关的过程…

披荆斩棘的「矿区无人驾驶」,能否真正打开千亿级市场?

随着2022年备受瞩目的台泥句容矿无人驾驶运输项目硬核落地,以及相关科技公司开放该矿24小时无人矿卡生产运营直播以证明其项目并非在演示,2023年全国开启了大规模矿区无人驾驶商业化落地,堪称矿区无人驾驶元年。虽然我国矿区无人驾驶市场渗透…

zookeeper集群介绍

一个leader,多个follower,组成的集群 集群中只要有半数以上得节点存活,zookeeper集群就能正常服务 顺序一致性: 来自同一个client的更新请求按其发送顺序依次执行 原子性: 更新操作要么成功要么失败, 没有…

flink-1.17.2的单节点部署

flink 简介 Apache Flink 是一个开源的流处理和批处理框架,用于大数据处理和分析。它旨在以实时和批处理模式高效处理大量数据。Flink 支持事件时间处理、精确一次语义、有状态计算等关键功能。 以下是与Apache Flink相关的一些主要特性和概念: 流处理…

养牛场北斗综合管理系统解决方案

1.系统架构 随着我国北斗卫星导航定位系统的快速发展和定位精度的持续不断提高,在牛身上穿戴定位终端后可以实现对牛的位置和温度的测量,在蜂窝网络正常的情况下,定位和温度数据通过蜂窝网络通信方式回传到监控云平台,在蜂窝网络缺…

uniapp实现拨打电话跳转手机拨号界面 (ios和安卓通用)

效果展示:左边为安卓系统展示,右边为ios系统展示 代码: toPhone(){uni.makePhoneCall({phoneNumber: "10086", //要拨打的手机号success: (res) > {// console.log("调用成功")},fail: (res) > {// console.log(调…

784. 字母大小写全排列 dfs + 回溯算法 + 图解 + 笔记

784. 字母大小写全排列 - 力扣(LeetCode) 给定一个字符串 s ,通过将字符串 s 中的每个字母转变大小写,我们可以获得一个新的字符串。 返回 所有可能得到的字符串集合 。以 任意顺序 返回输出 示例 1: 输入&#xf…

MySQL的事务以及springboot中如何使用事务

事务的四大特性: 概念: 事务 是一组操作的集合,它是不可分割的工作单元。事务会把所有操作作为一个整体,一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 注意: 默认MySQ…

sylar高性能服务器-配置(P10-p11)代码解析+调试分析

文章目录 p9:配置模块搭建一、ConfigvarBase二、ConfigVar三、Config四、小结 p10:YAML的使用一、安装yaml-cpp二、使用yaml-cpp三、代码解析 P11:YAML与日志的整合一、方法函数二、代码调试三、test_config结果四、小结 p9:配置模…

18、责任链模式(Chain of Responsibility Pattern)

责任链模式,是用于避免请求发送者与多个请求处理者耦合在一起,让所有请求的处理者持有下一个对象的引用,从而将请求串联成一条链,在有请求发生时,可将请求沿着这条链传递,直到遇到该对象的处理器。用户只需…