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

news2024/12/24 0:33:05

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

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.coloradmin.cn/o/1305620.html

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

相关文章

佛山陶企再造行业新风口,开启中国陶瓷下半场

近年来,消费形态逐渐呈现年轻化、时尚化、数字化的趋势,新一地居住者对于居住环境的品质和舒适度要求日益提高。伴随着新消费势力的崛起,家居建材行业消费转型升级已成必然。“千年陶都”佛山作为我国陶瓷行业的风向标,率先推进技…

漏洞复现-云安宝-云匣子Fastjson命令执行(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

在做题中学习(32):只出现一次的数字 III

260. 只出现一次的数字 III - 力扣(LeetCode) 根据题目可知:有两个元素只出现一次,其余出现两次。 而在只出现一次的数字 I 里,只有一个元素出现一次,可以用异或的方式直接得到最后的答案,而此…

基于导数Zernike多项式拟合技术的干涉测量二维相位展开算法(原文翻译)

Zixin Zhao1,Hong Zhao1、Lu Zhang 1,Fen Gao2,Yuwei Qin3,Hubing Du 摘要: 我们提出了一种适用于一般干涉测量应用的相位展开方法。所提出的方法依赖于导数泽尼克多项式拟合(DZPF)技术,其中相…

Datawhale聪明办法学Python(task2Getting Started)

一、课程基本结构 课程开源地址:课程简介 - 聪明办法学 Python 第二版 章节结构: Chapter 0 安装 InstallationChapter 1 启航 Getting StartedChapter 2 数据类型和操作 Data Types and OperatorsChapter 3 变量与函数 Variables and FunctionsChapte…

马赛克,克星,真来了!v2.0

大家好,今天继续聊聊 AI 开源项目 AI 开源项目 1、DemoFusion AI 绘画的潜力还没有充分挖掘出来,仍然还有上升的空间。 DemoFusion 就是这么一个开源项目,继续深挖了 AI 绘画在高分辨率图片生成的效果。 提高分辨率,马赛克&a…

算法 - 二分搜索法 / 二分法(704)

原理: 利用数组的有序性,每次取查找范围的中间点,缩窄一半的查找空间。比较中间值和目标值的大小,直到找到目标值或者查找区间为空时返回。 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 题目&…

2023-12-05 Qt学习总结10

点击 <C 语言编程核心突破> 快速C语言入门 Qt学习总结 前言二十六 学生信息管理系统插入介绍: QTableView和QSqlTableModelQTableViewQSqlTableModel 程序所用数据库表格程序组成以及界面学生端源码:管理员端源码: 总结 前言 要解决问题: 学习qt最核心知识, 多一个都不…

在线原型设计网站有哪些?这7个超好用!

如今&#xff0c;在线软件逐渐成为主流&#xff0c;网站原型设计工具也不例外。与桌面相比&#xff0c;在线原型工具具有独特的优势。都不需要安装、限制位置或限制操作系统。以下将为您推荐 7 款非常实用的在线原型设计工具。看看有没有你会喜欢的呢。 1、即时设计 即时设计是…

sleep和wait区别,并且查看线程运行状态

一、sleep和wait区别 区别一&#xff1a;语法使用不同 wait 方法必须配合 synchronized 一起使用&#xff0c;不然在运行时就会抛出 IllegalMonitorStateException 的异常 而 sleep 可以单独使用&#xff0c;无需配合 synchronized 一起使用。 区别二&#xff1a;所属类不同…

【动态规划精选题目】1、斐波那契数列模型

此动态规划系列主要讲解大约10个系列【后续持续更新】 本篇讲解入门级&#xff1a;斐波那契模型&#xff0c;会在讲解题目同时给出AC代码 为什么叫斐波那契数列模型&#xff1f;因为本篇4道题的状态转移方程都跟斐波那契递推方程差不多&#xff0c;但这点不重要&#xff0c;请往…

Python 全栈体系【四阶】(四)

第四章 机器学习 一、人工智能概述 1. 什么是人工智能 人工智能&#xff08;Artificial Intelligence&#xff09;是计算机科学的一个分支学科&#xff0c;主要研究用计算机模拟人的思考方式和行为方式&#xff0c;从而在某些领域代替人进行工作。 2. 人工智能的学科体系 …

Unity-小工具-LookAt

Unity-小工具-LookAt &#x1f959;介绍 &#x1f959;介绍 &#x1f4a1;通过扩展方法调用 gameObject.LookAtTarget&#xff0c;让物体转向目标位置 &#x1f4a1;gameObject.StopLookat 停止更新 &#x1f4a1;可以在调用时传入自动停止标记&#xff0c;等转向目标位置后自…

conda环境下ImportError: libmkl_intel_lp64.so.1: cannot open shared object file问题解决

1 问题描述 conda环境下运行模型推理&#xff0c;出现如下错误&#xff1a; (retalking) [rootlocalhost video-retalking]# python inference.py --face examples/face/01.mp4 --audio examples/audio/01.wav --outfile results/01.mp4 Traceback (most recent call last):F…

Fiddler中AutoResponder的简单使用

AutoResponder&#xff0c;自动回复器&#xff0c;用于将 HTTP 请求重定向为指定的返回类型。 这个功能有点像是一个代理转发器&#xff0c;可以将某一请求的响应结果替换成指定的资源&#xff0c;可以是某个页面也可以是某个本地文件 1.使用 打开“Fiddler”&#xff0c;点击…

LeedCode刷题---滑动窗口问题

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C/C》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、长度最小的子数组 题目链接&#xff1a;长度最小的子数组 题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。…

MySQL执行流程_执行一条select语句,期间发生了什么

文章目录 执行一条select语句&#xff0c;期间发生了什么MySQL执行流程第一步&#xff1a;连接器第二步&#xff1a;查询缓存第三步&#xff1a;解析SQL第四步&#xff1a;执行SQL 执行一条select语句&#xff0c;期间发生了什么 MySQL执行流程 server层负责建立连接、分析和执…

GraphSAGE 到底在训练什么? 图上的Mini-Batch 是怎么训练的 ?

1. 一个端到端的 同构图&#xff08;Cora数据集&#xff09;节点分类代码&#xff1a; import argparseimport dgl import dgl.nn as dglnnimport torch import torch.nn as nn import torch.nn.functional as F from dgl import AddSelfLoop from dgl.data import CiteseerGr…

YOLOv8训练好的pt文件如何用来预测

1. 使用原版预测 代码如下&#xff1a; from ultralytics import YOLO# Load a model model YOLO(yolov8n.pt) # load an official model# Predict with the model results model(https://ultralytics.com/images/bus.jpg) # predict on an image命令如下&#xff1a; y…