一、前言

在平时工作中相信大家都离不开 DNS 解析,因为 DNS 解析是互联网访问的第一步,无论是使用笔记本浏览器访问网络还是打开手机APP的时候,访问网络资源的第一步必然要经过DNS解析流程。

二、DNS 是什么

 DNS(域名系统 Domain Name System),它是一个记录域名和Ip地址相互映射的一个系统,是互联网的“电话簿”,负责将人类可读的域名(如 example.com)转换为机器可识别的 IP 地址(如 127.0.0.1)。

其核心功能就是域名解析,能够将用户访问互联网时使用的域名地址转换成对应的IP地址。正向解析:将域名转换为 IP 地址; 反向解析:将 IP 地址转换为域名。 通过域名得到域名对应的IP地址的过程被称为域名解析。DNS运行在 UDP 协议之上,使用的端口为53。

三、DNS 分层结构

DNS 是一个树状分层系统,分为以下层级:

  1. 根域名服务器.):全球 13 组,管理顶级域(如 .com)。
  2. 顶级域服务器(TLD,如 .com.org):管理二级域名(如 google.com)。
  3. 权威域名服务器:由域名注册商或用户自行管理,存储具体域名的记录(如 AMX)。

详细结构:

主机名.次级域名.域名.根域名

host.sld.tld.root

主机名次级域名顶级域名根域名
host.sld.tld.root

 title=

如上图所示,域名结构是树状结构,树的最顶端代表根服务器,根的下一层就是由我们所熟知的.com、.net、.cn等通用域和.cn、.uk等国家域组成,称为顶级域。网上注册的域名基本都是二级域名,比如 google.com、baidu.com等等二级域名,它们基本上是归企业和运维人员管理。接下来是三级或者四级域名,这里不多赘述。总体概括来说域名是由整体到局部的机制结构。

四、常见 DNS 记录类型

记录类型用途示例
A域名 → IPv4 地址example.com → 1.1.1.1
AAAA域名 → IPv6 地址example.com → 2001:db8::1
CNAME域名别名(指向另一个域名)www.example.com → test.example.com
MX邮件服务器地址example.com → mail.example.com
TXT文本信息(如 SPF、DKIM 配置)"v=spf1 include:_spf.google.com ~all"
NS指定域名的权威 DNS 服务器example.com → ns1.example-dns.com
PTRIP → 域名(反向解析)1.1.1.1 → example.com
SOA域名的权威起始记录(管理信息)包含主 DNS 服务器、管理员邮箱等

五、DNS 解析流程

 title=

如上图所示,详细阐述 DNS 解析流程:

1、首先客户端位置是一台电脑或手机,在打开浏览器以后,输入 http://www.zdns.cn\
,它首先是由浏览器发起一个 DNS 解析请求,如果本地缓存服务器中找不到结果,则首先会向根服务器查询,根服务器里面记录的都是各个顶级域所在的服务器的位置,当向根请求 http://www.zdns.cn 的时候,根服务器就会返回 .cn 服务器的位置信息。

2、​​​​​​递归服务器拿到 .cn 的权威服务器地址以后,就会寻问 cn 的权威服务器,知不知道http://www.zdns.cn 的位置。这个时候cn权威服务器查找并返 http:... 服务器的地址。

3、继续向 http://zdns.cn的权威服务器去查询这个地址,由http://zdns.cn 的服务器给出了地址:202.173.11.10

4、最终才能进行http的链接,顺利访问网站。

5、补充说明,一旦递归服务器拿到解析记录以后,就会在本地进行缓存,如果下次客户端再请求本地的递归域名服务器相同域名的时候,就不会再这样一层一层查了,因为本地服务器里面已经有缓存了,这个时候就直接把 http://www.zdns.cn 的A记录返回给客户端就可以了。

六、DNS 服务类型

常见的 DNS 服务器就是两种:权威解析服务器和递归解析服务器,递归解析服务器也可以叫做localDNS。

 title=

权威解析服务器

DNS 权威服务器保存着域名空间中部分区域的数据。如果 DNS 服务器负责管辖一个或多个区域时,称此 DNS 服务器为这些区域的权威服务器。

根权威 DNS 或者二级权威服务器中的资源记录标记被指定为区域权威服务器的 DNS 服务器。通过资源记录中列出服务器,其他服务器就认为它是该区域的权威服务器。这意味着在 NS 资源记录中指定的任何服务器都被其他服务器当作权威的来源,并且能肯定应答区域内所含名称的查询。

递归服务器

递归服务器在正常情况下,初始的时候里面没有任何域名解析数据,里面所有的域名解析数据都来自于它到权威解析服务器的查询结果,一旦查询完毕,递归服务器就会根据TTL时间在本地形成一条缓存记录,并为用户提供DNS解析的查询服务,这是递归服务器的功能。

七、DNS 查询方式

DNS 的查询方式有两种,分为递归查询(recursion)和迭代查询(iteration)。

递归查询

客户端发起一个DNS解析请求,若本地DNS服务器若不能为客户端直接解析域名,则域名服务器会代替客户端(下级服务器)向域名系统中的各分支的上下级服务器进行递归查询,直到有服务器响应回答了该请求后,将该请求结果返回客户端。在此期间,客户端将一直处于等待状态。

迭代查询

客户端(下级服务器)发起一个DNS解析请求后,若上级DNS服务器并不能直接提供该DNS的解析结果,则该上级DNS服务器会告知客户端(下级服务器)另一个可能查询到该DNS解析结果的DNS服务器IP,客户端(下级服务器)再次向这个DNS服务器发起解析请求,如此类推,直到查询到对应的结果为止。

通常递归查询这种方式用于PC机与本地DNS服务器之间的查询,而迭代查询则多用于DNS服务器之间的查询,如下图:

 title=

总结

DNS 域名解析是互联网基础服务的重要组成部分,通过易记的名称简化了网络资源的访问。了解DNS 解析的过程和原理对于网络工程师和开发者来说非常重要,它有助于诊断网络问题和优化网络性能。


打盹的猴子
6 声望0 粉丝