2025-11-11
linux
00

目录

DNS服务架构
什么是DNS根域服务器
为什么只有13个DNS根服务器地址
谁对DNS根服务器拥有权限
解析器如何找到DNS根服务器
如果DNS根服务器不可用怎么办
互联网顶级域列表
DNS查询过程
RR (Resource Record)资源记录介绍

(blibli同步视频:https://www.bilibili.com/video/BV1mWfFYYEUx/?vd_source=ae216d62b7bae16ca9da13d217cc92fb)

DNS服务架构

DNS(全称Domain Name System,域名系统)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址数字串。

打个比喻,DNS在互联网中起到路标指示的作用,指引用户到具体服务器获取信息,一旦路标被毁或出现故障,将导致用户访问网站失败。

DNS的发展是跟随因特网发展而来的产物。互联网和DNS的发展大致可以分成三个阶段:
2365928686c33e944df3c399b27e303b.image.png

什么是DNS根域服务器

要明白DNS服务架构,首先要明白什么是DNS根服务器。DNS 根服务器是 DNS 系统的起点,它存储了顶级域名服务器的信息,包括通用顶级域(gTLD)和国家代码顶级域(ccTLD)的域名服务器地址。当用户输入一个域名时,本地 DNS 解析器首先向 DNS 根服务器查询,获取顶级域名服务器的地址。然后,再向该顶级域名服务器查询,逐级向下,直到获得最终的目标服务器的 IP 地址。因此,DNS 根服务器在域名解析的过程中起到了至关重要的作用。

在未缓存的DNS查询期间,每当用户在浏览器中输入网址,该操作都会触发DNS查找,并且所有DNS查找都从根区域开始。查找到达根区域后,将沿DNS系统的层次结构向下移动,首先到达TLD(TopLevelDomain)服务器,然后到达特定域(可能还有子域)的服务器,直到最终到达权威名字服务器,以查到正确的域名,其中包含要搜索的网站的数字IP地址。然后,该IP地址被返回给客户端。有趣的是,尽管需要许多骤,但此过程仍可以非常快速地进行。

4673ad4e07c174ae17f4a8c8e1a30911.image.png

为什么只有13个DNS根服务器地址

实际上,DNS 根服务器的数量远不止13个。13个字母只是一个符号性的表示方式,用于方便标识这些根服务器的名称。每个字母代表一个名为“根区域”的逻辑区域,而每个根区域都由多个实际的根服务器组成,以提供冗余和高可用性。

每个根区域都有多个根服务器,它们被称为“根服务器实例”或“根服务器镜像”。这些实例分布在全球各地的多个地理位置和数据中心,由不同的组织和运营商负责。这样做是为了确保 DNS 服务的稳定性、可靠性和快速响应。

在每个根区域中,根服务器实例使用 anycast 技术,这是一种将同一个 IP 地址同时分配给多个服务器的技术。当用户向 DNS 根服务器查询时,它们的请求将被路由到最近的、可用的根服务器实例,从而降低了延迟,并分散了全球范围内的查询负载。

因此,虽然根区域字母只有13个,但实际上 DNS 根服务器的数量远远超过13个,它们共同构成了 DNS 系统的核心。

a41d7833516972a189d9ca5201be23d6.image.png

谁对DNS根服务器拥有权限

根区域的最终权限属于国家电信和信息管理局(NTIA),后者是美国商务部的一部分。NTIA将根区域的管理委托给Internet名称与数字地址分配机构(ICANN)。ICANN为根区域中13个IP地址之一操作服务器,并将其他12个IP地址的操作委托给包括NASA、马里兰大学和Verisign(唯一运营两个根IP地址的组织)在内的多个组织。cloudflare帮助向名为F-Root的根服务器提供DNSAnycast服务;Cloudflare根据与ISC(F-Root运营商)的合同提供其他F-Root实例。

解析器如何找到DNS根服务器

由于DNS根区域位于DNS层次结构的顶部,因此递归解析器无法在DNS查找中被引导到这些位置。因此,每个DNS解析器都在其软件中内置了13个IP根服务器地址的列表。每次发起DNS查找时,递归器的第一个通信就是与这13 个IP地址之一进行的。

如果DNS根服务器不可用怎么办

由于使用了Anycast路由并具备高冗余性,根服务器非常可靠。但是在极少数情况下,根服务器将必须更新其IP地址。在这种情况下,递归解析器可以继续使用根区域中的其他12个IP地址执行DNS查找,直到它们的软件更新为所有13台服务器的正确地址为止。由于所有根服务器都能够将DNS请求转发到TLD服务器,因此当一台根服务器关闭时,不会影响Internet正常运行。

互联网顶级域列表

根据IANA定义,顶级域分为:基础设施顶级域(ARPA),通用顶级域(gTLD),通用受限制顶级域(grTLD),赞助类顶级域(sTLD),国家和地区顶级域(cCTLD),测试顶级域(tTLD)。

下表罗列了部分顶级域及分类:

分类子分类顶级域用途/说明示例或备注
通用顶级域(gTLDs)常见开放注册.com商业用途(开放注册)最广泛使用的顶级域
.org原为非营利组织,现开放注册常用于公益、开源项目
.net网络服务(现开放注册)早期用于网络基础设施
赞助类.edu美国教育机构(需认证)仅限美国授权教育机构使用
.gov美国政府机构仅限美国联邦或州政府使用
新增通用顶级域.app应用程序需启用HTTPS加密
.xyz通用因价格低廉广泛使用
.ai安圭拉国家代码,但多用于人工智能领域商业化推广(如AI公司)
国家代码顶级域(ccTLDs)主要国家/地区.us美国开放注册,但需美国关联
.cn中国需实名认证
基础设施顶级域-.arpa技术基础设施(如反向DNS查询)仅用于互联网技术管理
国际化顶级域(IDN TLDs)-.中国中文域名支持中文输入
.рф俄语域名(俄罗斯)仅允许西里尔字母
其他特殊用途-.example保留示例不可注册
.test测试用途本地开发环境使用
.localhost本地网络指向本机(127.0.0.1

DNS查询过程

1.client要访问 www.baidu.com,首先查找本机 DNS 缓存,再查找自己的 hosts 文件,若都没有找到,则向 DNS 服务器发送查询请求(DNS Server为计算机设置的DNS,如114.114.114.114或8.8.8.8)

2.DNS Sever收到 request,首先查看自己是有 www.baidu.com 的缓存,若有直接返回给 client,若没有越级上访到根域,并询问根域

3.根域看到是找 .com 域的,会把到 .com 域的路(也就是Address)告诉DNS Server,让DNS Sever自己去找 .com

4.DNS Server去找 .com, .com看到是自己管辖下的 baidu.com ,就把 baidu.com 的 IPAdress 给 DNSServer 让他去找 baidu.com

5.DNS找到baidu.com,baidu.com发现 DNS Sever 要找的是自已区域里的 www 主机,就把这个 HostIP 给 DNS Server

6.DNS Server会把得到的 www.baidu.com 的IP结果告诉 client,并缓存一份结果在自己的机器中(默认会缓存,因为该服务器允许为 client 递归,否则不会缓存非权威数据)

7.client得到回答的 IPAdress 后缓存下来并去访问 www.baidu.com ,然后 www.baidu.com 就把页面内容发送给 client

为什么客户端到DNS服务器阶段是递归查询?因为客户端本身不是DNS服务器,它自已是找不到互联网上的域名地址的,所以只能询问DNS服务器,最后一定由DNS服务器来返回答案,所以DNSSerVer需要对这个客户端允许递归。因此,dns解析器(nslookup、host、dig等)所发出的查询都是递归查询。

ccafbe2b2e1da35488688f5ca7c5fb05.image.png

RR (Resource Record)资源记录介绍

ower-nameTTLclasstypedata
www,example.com300INA192.168.1.10

上面是一个RR资源记录示例,所有的RR都具有相同的顶级字段格式定义:ower TTL class type data

**owner:**指RR的DNS域名

**TTL:**对大多数资源记录,该字段为可选项。指明其它DNS服务器在期满放弃该记录信息之前对其缓存多长时间。TTL值为零的资源记录不会被缓存

CLASS有如下几种类型:IN(Internet类) 、CS(CSNET类)、CH(CHAOs类)、HS(Hesiod)很少使用

type有如下类型:

A记录

用来将 域名解析 到IPv4地址的 DNS 记录。A记录也称为主机记录,是使用最广泛的DNS记录,A记录的基本作用就是说明一个域名对应的IP是多少,它是域名和IP地址的对应关系,表现形式为www.example.com 192.168.1.10这就是一个A记录!A记录除了进行域名IP对应以外,还有一个高级用法,可以作为低成本的负载均衡的解决方案,比如说 www.example.com 可以创建多个A记录,对应多台物理服务器的IP地址,可以实现基本的流量均衡。

AAAA记录

用来将 域名解析 到IPv6地址的 DNS 记录,用法和A记录一致。

Ns(Name Server)记录

NS记录和SOA记录是任何一个DNS区域都不可或缺的两条记录,NS记录也叫名称服务器记录,用于说明这个区域有哪些DNS服务器负责解析,SOA记录说明负责解析的DNS服务器中哪一个是主服务器。因此,任何一个DNS区域都不可能缺少这两条记录。NS记录,说明了在这个区域里,有多少个服务器来承担解析的任务

SOA记录

NS记录说明了有多台服务器在进行解析,但哪一个才是主服务器呢,NS并没有说明,这个就要看SOA记录了,SOA名叫起始授权机构记录,SOA记录说明了在众多NS记录里那一台才是主要的服务器!

MX记录

全称是邮件交换记录,在使用邮件服务器的时候,MX记录是无可或缺的,比如A用户向B用户发送一封邮件,那么他需要向DNS查询B的MX记录,DNS在定位到了B的MX记录后反馈给A用户,然后A用户把邮件投递到B用户的MX记录服务器里!

Cname记录

又叫别名记录,我们可以这么理解,我们小的时候都会有一个小名,长大了都是学名,那么正规来说学名的符合公安系统的,那个小名只是我们的一个代名词而已,这也存在一个好处,就是比暴漏自己,比如一个网站a.com在发布的时候,他可以建立一个别名记录,把b.com发布出去,这样不容易被外在用户所察觉!达到隐藏自己的目的!

SRV记录

SRV记录是服务器资源记录的缩写,SRV记录是DNS记录中的新鲜面孔,在RFC2052中才对SRV记录进行了定义,因此很多老版本的DNS服务器并不支持SRV记录。那么SRV记录有什么用呢?SRV记录的作用是说明一个服务器能够提供什么样的服务,

PTR记录

PTR记录也被称为指针记录,PTR记录是A记录的逆向记录,作用是把IP地址解析为域名。由于我们在前面提到过,DNS的反向区域负责从IP到域名的解析,因此如果要创建PTR记录,必须在反向区域中创建。

本文作者:大鹏

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!