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.rhkb.cn/news/216309.html

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

相关文章

Python码上行动系列丛书(由北京大学出版社出版)

前言 Python码上行动系列丛书火热来袭💥💥💥 三册在手,Python全掌握!无论是初学者还是进阶玩家,我们都有你想要的! 让ChatGPT带你轻松入门Python编程,享受编程带来的乐趣&#xff0…

快速准确翻译文件夹名:英文翻译成中文,文件夹批量重命名的技巧

在处理大量文件夹时,可能会遇到要将英文文件夹名翻译成中文的情况。同时也可能要批量重命名这些文件夹。今天一起来看下云炫文件管理器如何快速准确翻译文件夹名,进行批量重命名的技巧。 下图是文件夹名翻译前后的效果图。 英文文件夹名批量翻译成中文…

UE4.27-UE5.1设置打包Android环境

打包Android配置文件 1. 配置打包Android的SDK需求文件位于下面文件中: 2. 指定了对应的SDK环境变量名字以及NDK需求等: UE4.27-UE5.1--脚本自动配置 安装前提 1. 务必关闭虚幻编辑器和Epic Games Launcher,以确保NDK组件的安装或引擎环境…

node.js安装和配置

软件介绍 Node.js是一个免费的、开源的、跨平台的JavaScript运行时环境,允许开发人员在浏览器之外编写命令行工具和服务器端脚本。 Node.js是一个基于Chrome JavaScript运行时建立的一个平台。 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Googl…

排序算法之四:直接选择排序

1.基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完 。 2.直接选择排序 在元素集合array[i]--array[n-1]中选择关键码最大(小)的数据元素 若它不是这组元素中的…

stateflow 之图函数、simulink函数和matlab函数使用及案例分析

目录 前言 1. 图函数graph function 2.simulink function 3.matlab function 4.调用stateflow中的几种函数方式 前言 对于stateflow实际上可以做simulink和matlab的所有任务,可以有matlab的m语言,也可以有simulink的模块,关于几种函数在…

11.仿简道云公式函数实战-逻辑函数-TRUE

1. TRUE函数 TRUE 函数可直接返回逻辑值 true。 2. 函数用法 TRUE() 3. 函数示例 TRUE 函数一般不会作为函数单独使用,可与其他函数一起使用,或作为判断逻辑的结果。如,判断字段值是否为空时,设置公式为IF(ISEMPTY(方案选择)…

在linux服上使用nginx+tomcat部署若依前后端分离版本(RuoYi-Vue)

一、先拉工程,地址:RuoYi-Vue: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本 二、在window上用idea打开跑通,可参考…

MFC CLXHHandleEngine动态库-自定义设置对话框使用

实现的效果如下所示: void CSampleDlg::OnBnClickedButton2() { // TODO: 在此添加控件通知处理程序代码 CSgxMemDialog dlg(180, 100); dlg.SetEnable(true); dlg.SetWindowTitle(_T("自定义对话框")); dlg.AddStatic(1000, //控件资源…

数据结构算法-希尔排序算法

引言 在一个普通的下午,小明和小森决定一起玩“谁是老板”的扑克牌游戏。这次他们玩的可不仅仅是娱乐,更是要用扑克牌来决定谁是真正的“大老板”。 然而,小明的牌就像刚从乱麻中取出来的那样,毫无头绪。小森的牌也像是被小丑掷…

nodejs微信小程序+python+PHP沧州地区空气质量数据分析系统-计算机毕业设计推荐 django

本系统不仅主要实现了注册登录,系统首页,个人中心,用户管理,城市区域管理,空气状况管理,空气质量管理,系统管理,数据爬取,大屏分析等功能,通过这些功能基本可…

面向 SEO 专业人士的完整 Google Search Console 指南

了解 Google Search Console 并释放其功能,以改善您的网站运行状况和搜索性能。 Google Search Console 提供监控网站在搜索中的表现和提高搜索排名所需的数据,这些信息只能通过 Search Console 获得。 这使得它对于热衷于最大化成功的在线业务和出版商…

NLP项目实战01--电影评论分类

介绍: 欢迎来到本篇文章!在这里,我们将探讨一个常见而重要的自然语言处理任务——文本分类。具体而言,我们将关注情感分析任务,即通过分析电影评论的情感来判断评论是正面的、负面的。 展示: 训练展示如下…

WPF仿网易云搭建笔记(0):项目搭建

文章目录 前言项目地址项目Nuget包搭建项目初始化项目架构App.xaml引入MateralDesign资源包 项目初步分析将标题栏去掉DockPanel初步布局 资源字典举例 结尾 前言 最近在找工作,发现没有任何的WPF可以拿的出手的工作经验,打算仿照网易云搭建一个WPF版本…

leaflet使用热力图报L找不到的问题ReferenceError: L is not defined at leaflet-heat.js:11:3

1.在main.js中直接引入会显示找不到L 2.解决办法 直接在组件中单独引入使用 可以直接显示出来。 至于为什么main中不能引入为全局,我是没找到,我的另外一个项目可以,新项目不行,不知哪里设置的问题

【Docker】swarm stack部署多service应用

前面我们已经学习过了Docker Compose,它可以用来进行一个完整的应用程序相互依赖的多个容器的编排的,但是缺点是只能在单机模式使用,不能在分布式多机器上使用;前面我们也学习了Docker swarm,它可以将单个服务部署为多…

每日一题,杨辉三角

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows 1 输出: [[1]]

EarCMS 前台任意文件上传漏洞复现

0x01 产品简介 EarCMS是一个APP内测分发系统的平台。 0x02 漏洞概述 EarCMS前台put_upload.php中,存在pw参数硬编码问题,同时sql语句pdo使用错误,没有有效过滤sql语句,可以控制文件名和后缀,导致可以任意文件上传。 0x03 复现环境 FOFA:app="EearCMS" 0x0…

关系型数据库和非关系型数据库有什么区别?

一、什么是数据库? 数据库是一个结构化的数据集合,用于存储、管理和组织数据。它是一个电子化的文件柜,可以存储大量的数据,并提供了一种高效地检索、更新和管理数据的方法。数据库可以用于存储各种类型的数据,例如文…

CNN发展史脉络 概述图整理

CNN发展史脉络概述图整理,学习心得,供参考,错误请批评指正。 相关论文: LeNet:Handwritten Digit Recognition with a Back-Propagation Network; Gradient-Based Learning Applied to Document Recogniti…