DNS域名解析过程

简介: 当我们在浏览器输入一个URL的时候,域名系统(Domain Name System)就开始工作。域名系统是将互联网资源和地址关联起来的一个分布式数据库。DNS和统一资源定位符,域名系统本质就是定位资源,互联网中的各种资源,比如视频、图片、文件、网页。。。。下面就是一个URL的示例:

当我们在浏览器输入一个URL的时候,域名系统(Domain Name System)就开始工作。域名系统是将互联网资源和地址关联起来的一个分布式数据库。
DNS和统一资源定位符,域名系统本质就是定位资源,互联网中的各种资源,比如视频、图片、文件、网页。。。。
下面就是一个URL的示例:

https://www.example.com:8080/test?id=1000#Good
【https】Scheme部分是协议,不仅只有https,还有ftp、ssh等,不同的协议代表着不同类型的应用在提供资源。
【www.example.com】Host部分代表站点,DNS主要作用就是根据Host查找IP地址。
【8080】Port是端口号,代表提供服务的应用
【test】是路径,代表资源在服务中的路径
【id=1000】是查询条件,代表需要的是资源中的某个部分。
【Good】是二级查询条件,通常不在服务端响应,而是用于前端展示定位内容。
总的来说,URL是一个树状的设计,Host代表主机(对应的IP地址由DNS服务提供)Port代表提供服务的应用,Path代表资源在应用中的路径,Query代表对资源的查询条件。

域名系统,DNS(Domain Name System域名系统)是一个将域名和IP地址互相映射的分布式服务。DNS本身是一个分布式架构。

位于最顶层的是根域名服务器(Root Name Server),根域名服务器存储的不是域名和IP的映射关系,而是一个目录,因为流量、防止单点故障、平衡地理分布等问题,根域名服务器只是一个目录,并不提供具体的数据。
image.png

DNS域名解析过程
如上图所示,DNS的存储设计是一个树状结构,叶子节点中才存放真实的映射关系,中间节点存的都是目录。存储分为3层:

顶部是根DNS存储,存储的是顶级域名的目录,被称作根DNS服务器

第二级是顶级域存储,存储的是二级域名的目录,被称作顶级域DNS服务器。

最后一级是叶子节点,存储的是具体的DNS记录,被称作权威DNS服务器。

域名分级和数据分区

域名分级包括,根域名(.)、顶级域名(com、cn、net)、二级域名(baidu)、三级域名(www),域名分级主要是为了建立目录和索引,并对数据存储进行分区。
image.png

DNS域名解析过程
DNS查询过程

当用户在浏览器中输入一个网址,就会触发DNS查询。这个时候在上述的3个层级中,还要加一个本地DNS服务器层级,本地DNS服务器包括用户自己路由器中的DNS缓存、小区的DNS服务器、ISP的DNS服务器,具体过程如下。
image.png

DNS域名解析过程
根据上图,详细DNS查询结果如下:

1、用户输入网址,先查询本地DNS,本地DNS是一系列DNS的集合,比如ISP提供的DNS、公司网络提供的DNS。本地DNS是一个代理,将DNS请求转发到DNS网络中。如果本地DNS已经存在需要的记录,也就是本地DNS缓存中找到了对应的DNS条目,就会直接返回,而跳过之后的步骤。

2、如果本地DNS服务器中没有对应的记录,那么请求会被转发到根DNS服务器。根DNS服务器只解析顶级域,例如“www.baidu.com”,根DNS服务器只查看com部分。

3、根DNS服务器返回顶级DNS服务器的IP

4、顶级域DNS服务器中存放的是二级域名的目录

5、顶级DNS服务器返回权威DNS服务器的IP

6、在权威DNS服务器中存放具体的DNS记录,

7、权威DNS服务器返回DNS记录到本地DNS服务器

8、本地DNS服务器返回具体的DNS记录给客户端。

关于缓存

上面的每一个步骤,其实都存在缓存的设计,浏览器会缓存DNS,此外,操作系统、路由器、本地DNS服务器也会缓存,所以大部分情况,请求不会到达根DNS服务器。

以百度为例,如果在某个时刻,同一个区域内有一个用户触发了1-8的过程,另一个同区域的用户就可以在本地DNS服务器中获取DNS记录,而不需要再走到根DNS服务器,这种称为分级缓存策略。

分级缓存策略,每一层都会进行缓存,经过一层层的缓存,最终命中根DNS服务、顶级DNS服务器,权威DNS服务器的请求少之又少。

DNS记录

DNS记录例子

定义www.example.com的ip地址
www.example.com.     IN     A     139.18.28.5;

这个就是一条DNS记录,纯文本。IN代表记录用于互联网,是Intenet的缩写。A是记录的类型,A记录代表着这是一条解析IPv4地址的记录,代表域名和IPv4地址的映射关系。从这条记录可知 www.example.com.的IP地址是 139.18.28.5。

CNAME是用于定义域名的别名的,例如下面这条DNS记录

; 定义www.example.com的别名

a.example.com.          IN     CNAME   b.example.com.

这条DNS记录定义了a.example.com 是 b.example.com 的别名。在浏览器中输入a.example.com 时候,通过 DNS 查询会知道 a.example.com 是 b.example.com 的别名,因此需要实际 IP 的时候,会去拿 b.example.com 的 A 记录。主要作用是将一个域名映射到另一个域名。域名解析的时候,如果看到CNAME记录,则会从映射目标重新开始查询。

目录
相关文章
|
5月前
|
监控
新功能上线:云解析DNS-重点域名监控功能发布
新功能上线:云解析DNS-重点域名监控功能发布
|
6月前
|
存储 域名解析 弹性计算
阿里云上云流程参考:云服务器+域名+备案+域名解析绑定,全流程图文详解
对于初次通过阿里云完成上云的企业和个人用户来说,很多用户不仅是需要选购云服务器,同时还需要注册域名以及完成备案和域名的解析相关流程,从而实现网站的上线。本文将以上云操作流程为核心,结合阿里云的活动政策与用户系统梳理云服务器选购、域名注册、备案申请及域名绑定四大关键环节,以供用户完成线上业务部署做出参考。
|
11月前
|
域名解析 存储 网络协议
域名解析的终极指南:从基础到进阶,彻底搞懂 DNS 记录
域名解析是网站运行的基础,正确配置DNS记录至关重要。本文从基础到进阶全面解析DNS知识,涵盖A、AAAA、CNAME、MX、TXT、CAA等常见记录类型及其应用场景。通过学习,你将了解DNS的工作原理,掌握如何优化域名配置,确保网站与邮件服务高效运行。无论搭建个人博客还是企业官网,本文都能助你轻松搞定域名解析!
2589 0
|
9月前
|
网络协议 安全 区块链
DNS+:互联网的下一个十年,为什么域名系统正在重新定义数字生态? ——解读《“DNS+”发展白皮书(2023)》
DNS+标志着域名系统从基础寻址工具向融合技术、业态与治理的数字生态中枢转变。通过与IPv6、AI和区块链结合,DNS实现了智能调度、加密传输等新功能,支持工业互联网、Web3及万物互联场景。当前,中国IPv6用户达7.6亿,全球DNSSEC支持率三年增长80%,展现了其快速发展态势。然而,DNS+仍面临安全威胁、技术普惠瓶颈及生态协同挑战。未来,需推动零信任DNS模型、加强威胁情报共享,并加速标准制定,以筑牢数字时代网络根基,实现更安全、高效的数字生态建设。
589 4
|
10月前
|
域名解析 网络协议 网络安全
SSL证书验证全攻略:DNS/HTTP/手动解析怎么选?
SSL证书在网络安全中至关重要,1Panel提供三种验证方式:DNS验证、HTTP验证和手动解析。DNS验证便捷,适合CDN网站;HTTP验证快速,需服务器在线;手动解析灵活,但操作复杂。根据需求选择合适确认方式,定期检查证书状态。
1024 2
|
12月前
|
域名解析 存储 缓存
深入学习 DNS 域名解析
在平时工作中相信大家都离不开 DNS 解析,因为 DNS 解析是互联网访问的第一步,无论是使用笔记本浏览器访问网络还是打开手机APP的时候,访问网络资源的第一步必然要经过DNS解析流程。
1050 31
|
10月前
|
网络协议 安全 Linux
阿里云服务器国际站dns服务器不可用怎么办?dns可以随便改吗?
阿里云服务器国际站dns服务器不可用怎么办?dns可以随便改吗?
3211 0
|
12月前
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
1126 29
|
12月前
|
前端开发 数据安全/隐私保护 CDN
二次元聚合短视频解析去水印系统源码
二次元聚合短视频解析去水印系统源码
475 4
|
12月前
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
  • DNS