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记录,则会从映射目标重新开始查询。

目录
相关文章
|
6天前
|
域名解析 存储 缓存
Linux中搭建DNS 域名解析服务器(详细版)
Linux中搭建DNS 域名解析服务器(详细版)
|
12天前
|
缓存 负载均衡 网络协议
【亮剑】一次完整的HTTP请求的重要性和详细过程
【4月更文挑战第30天】本文介绍了HTTP请求的重要性和详细过程。首先,DNS解析将域名转换为IP地址,通过递归和迭代查询找到目标服务器。接着,TCP三次握手建立连接。然后,客户端发送HTTP请求,服务器处理请求并返回响应。最后,理解这个过程有助于优化网站性能,如使用DNS缓存、HTTP/2、Keep-Alive、CDN和负载均衡等实践建议。
|
12天前
|
监控 网络协议 安全
【亮剑】当设备IP能ping通但无法上网时,可能是DNS解析、网关/路由设置、防火墙限制、网络配置错误或ISP问题
【4月更文挑战第30天】当设备IP能ping通但无法上网时,可能是DNS解析、网关/路由设置、防火墙限制、网络配置错误或ISP问题。解决步骤包括检查网络配置、DNS设置、网关路由、防火墙规则,以及联系ISP。预防措施包括定期备份配置、更新固件、监控网络性能和实施网络安全策略。通过排查和维护,可确保网络稳定和安全。
|
13天前
|
网络协议 Windows
Windows Server 各版本搭建 DNS 服务器实现域名正反向解析
Windows Server 各版本搭建 DNS 服务器实现域名正反向解析
|
14天前
|
运维 网络协议 安全
Serverless 应用引擎产品使用之阿里云函数计算中添加自定义域名进行域名DNS验证如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
22 1
|
14天前
|
域名解析 负载均衡 网络协议
【专栏】理解DNS对于利用网络资源和理解互联网运作至关重要
【4月更文挑战第28天】DNS是互联网的关键组件,将域名转换为IP地址,简化了上网方式。它是一个分布式数据库,类似电话簿,但具有动态、层次化和分布式的特性。工作原理涉及多步查询过程,从本地DNS到根服务器,最终找到权威名称服务器获取IP。DNS还支持负载均衡、地理定位和DNSSEC安全技术。随着技术发展,DNS的角色不断扩展,提供域名隐私保护和智能DNS等服务,是连接用户与数字世界的桥梁。理解DNS对于利用网络资源和理解互联网运作至关重要。
|
1天前
PandasTA 源码解析(二十三)
PandasTA 源码解析(二十三)
7 0
|
1天前
PandasTA 源码解析(二十二)(3)
PandasTA 源码解析(二十二)
5 0
|
1天前
PandasTA 源码解析(二十二)(2)
PandasTA 源码解析(二十二)
9 2
|
1天前
PandasTA 源码解析(二十二)(1)
PandasTA 源码解析(二十二)
6 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多