TOC

DNS 体系

术语

  • Domain Name:DNS 中的名称
  • Label:域名由多个 Label 组成
  • Root(根域):DNS 命名空间顶层,用 . 表示。
  • TLD(Top-Level Domain):顶级域名,如 com、org、cn。
  • FQDN(Fully Qualified Domain Name):完整域名,包含根域,例如:www.markjour.com.
  • DNS 数据模型
  • Zone(区域):DNS 管理单位,由权威服务器负责维护的一部分命名空间。
  • Zone File(区域文件):保存 Zone 内资源记录的配置文件。
  • Resource Record(RR,资源记录):DNS 中存储的数据项。
  • RRSet:同一个名称、类型对应的一组记录。比如:

    example.com. IN A 1.1.1.1
    example.com. IN A 8.8.8.8
    

    这两条记录共同组成一个 A RRSet。

  • 委派与管理

  • Delegation(委派):将某个子域的管理权交给其他权威服务器。
  • Parent Zone(父区域)/ Child Zone(子区域):example.com 是 www.example.com 的父区域,www.example.com 是 example.com 的子区域。
  • Glue Record(胶水记录):为避免循环查询而放在父区域中的 A/AAAA 记录。

DNS 服务器角色

  • Authoritative Name Server(权威服务器):对某个 Zone 拥有最终解释权。
    权威服务器只对自己区域负责,范围之外的内容概不负责(不做递归查询)。
  • Primary Master(主服务器):Zone 数据维护源。
  • Secondary Server(从服务器):通过 Zone Transfer 同步数据。

  • Recursive Resolver(递归解析器):代替客户端完成完整查询过程。
    用户最常接触的 DNS 服务器,比如谷歌 DNS 8.8.8.8,阿里 DNS 223.5.5.5 等 Public DNS。
    帮用户完成整个查询过程:Root → TLD → 权威 DNS,一般都有自己的本地缓存。

有些企业内部部署一个 Private Authoritative DNS(私网权威 DNS),对内部域名或私有 Zone 提供解析权威响应,不对公网开放。常用于内部服务发现、微服务域名解析及隔离公网 DNS 体系,提升安全性与可控性。

Client → Recursive Resolver(内网转发器)
               │  匹配到 forward zone: corp.internal
               ▼
         Private Authoritative DNS  ← 真正托管 zone 数据的地方

有一些 Recursive Resolver 主打的就是 DNS 缓存,所以也被称之为 Caching Resolver,或 Caching DNS。
很多 IT 企业会部署缓存 DNS,缓存热点记录,减少外部 DNS 请求,加速解析。
简单场景下,还可以接管内部域名解析(省掉 Private Authoritative DNS 这一层)。

  • Forwarder(转发器):将查询继续转发给其他 Resolver。
    从客户角度看,转发器就是一台递归解析器,但是二者工作流程不同。递归解析器要做完整链路 DNS 解析,而转发器直接充当一个普通客户端找上游解析器要最终结果,然后返回给客户。

  • Stub Resolver(客户端解析器):操作系统中的轻量 DNS 解析组件,例如 glibc resolver(通过 getaddrinfo 提供),负责将查询转发给递归 DNS,不执行递归解析。
    glibc resolver 会连接操作系统配置的递归解析器,Linux 操作系统上一般就是 systemd-resolved 这个本地 DNS 解析控制系统,如果没有缓存就会到达上有递归解析器。

PS:dig 是一个独立 DNS 客户端,不调用任何操作系统提供的 DNS 解析组件。

互联网 DNS 架构(均属于权威服务器)

  • Root Server(根服务器)-> Root Zone Authoritative Name Server
    提供顶级域(TLD)权威 DNS 服务器位置(NS 记录),这个区域叫 Root Zone。
    13 组 Root Server(a~m.root-servers.net),IP 地址是固定的,写在下游服务器配置中。后面会继续介绍。

很多人以为全球只有 13 台根服务器,实际上并不是。
DNS 协议最初限制根服务器名称只能使用 A~M 共 13 个逻辑编号:

A.root-servers.net
B.root-servers.net
...
M.root-servers.net

因此经常被称为“13 组根服务器”。
实际上今天全球已经部署了数千个 Anycast 根服务器节点,分布在世界各地。
对于普通用户来说,访问的是距离自己最近的根服务器副本,而不是某一台固定机器。

  • TLD Server(顶级域服务器)-> TLD Zone Authoritative Name Server
    比如:.com、.net、.cn
    记录该顶级域下所有注册域名的权威 DNS 服务器位置(NS 记录),这个区域叫 TLD Zone。

注意:
1. .com.cn、.net.cn 这一类后缀属于二级公共后缀(Second-Level Domain),是 .cn 下划分出来的注册域。
2. 术语中没有“主域”这个概念,只有注册域名 Registered Domain。
3. 中文中还经常看到误用“顶级域名”来表示注册域名,我认为技术人员应该严谨一些,不能滥用。

  • Domain Zone Authoritative Name Server
    域名的 NS 记录指向的地方,最终保存域名各类型 DNS 记录的服务器,提供 A / AAAA / MX / TXT 等类型的记录值。
-> % dig +noall +answer NS markjour.com
markjour.com.     36000   IN  NS  dns9.hichina.com.
markjour.com.     36000   IN  NS  dns10.hichina.com.

全球 DNS 管理体系

ICANN
  │
  └── IANA
          │
          └── Root Zone
                  │
                  ├── .com
                  ├── .net
                  ├── .org
                  ├── .cn
                  └── ...

其中:

  • ICANN(Internet Corporation for Assigned Names and Numbers):全球域名与 IP 地址协调机构,负责互联网域名体系管理(不直接运营根服务器);
  • IANA(Internet Assigned Numbers Authority)负责域名、IP 地址等资源分配;
  • 各顶级域名(gTLD、ccTLD)由不同注册管理机构运营;
  • 通用顶级域注册局(gTLD Registry):经 ICANN 授权运营某个 gTLD。
  • 国家/地区注册局(ccTLD Registry):经 ICANN 授权运营某个 ccTLD。
  • 域名注册商向普通用户提供注册服务。

例如:

  • .com 由 Verisign 运营;
  • .cn 由中国互联网络信息中心(CNNIC)运营。

很多关于互联网治理、国家主权互联网、根服务器控制权的讨论,本质上都和 DNS 管理体系有关。

混乱的叫法

DNS 技术标准中只定义域名由多个 Label 用小数点连接,从右往左解析,没有一、二、三、四级域名的正式说法。

但是基于工程实践和历史约定,大家习惯使用一些称呼,而这些称呼又容易产生歧义,尤其是在中文语境中。

  • 根域(Root Domain / Root Zone):DNS 域名空间的最高层,用单个点号(.)表示。按照 DNS 规范,完整域名应以根域结尾(如 www.markjour.com.),但在日常使用中通常省略最后的点号。
  • 顶级域名(TLD, Top-Level Domain):位于根域下一层的域名,分成两种:
  • gTLD(Generic TLD):通用顶级域名,如 comnetorginfo
  • ccTLD(Country Code TLD):国家和地区顶级域名,如 cnusjpuk

  • 二级域名(SLD, Second-Level Domain):位于 TLD 下一层的域名标签(Label),比如:

  • markjour.com 中,markjour 是 SLD。
  • com.cn 中,com 也是 SLD。
  • PS:在 markjour.com.cn 中,markjour 是三级域名(Third-Level Domain)。

但是后来很多人将 com.cn 视为一个与 com 类似的可注册域名后缀,从而将 markjour.com.cn 称为二级域名,造成了称呼上的混乱。

因此在工程实践中,很多人逐渐不用 SLD 表示“用户注册的主体域名”,而改用:

Public Suffix

  • 注册局管理的域名后缀,如 comcom.cn
  • 一些互联网平台管理的域名后缀,如 github.iogitbook.io

Public Suffix 不是 DNS 协议、RFC 或 ICANN 定义的正式术语,而是 Web 浏览器生态为安全需求发展出的工程概念,表示其下一级域名可由不同主体独立注册或分配的域名边界,例如 comcom.cnco.ukgithub.io。是的,其中 github.iogitbook.io 这类并非注册局直接管理、但允许用户创建独立子域名的平台域名,也属于 Public Suffix。

浏览器和应用通常依据 Mozilla 维护的 Public Suffix List(PSL)识别这些后缀,并计算注册域名(eTLD+1),用于 Cookie 作用域限制、同站策略(SameSite)以及其他 Web 安全边界判断。

Registrable Domain(注册域名)/ Effective TLD+1(eTLD+1)

如:

markjour.com
markjour.com.cn

注册者选择一个 Registrable Label,并与 Public Suffix 组合形成注册域名。

其他常见别名

  • 根域名(Root Domain / Base Domain,非严格标准):工程和 SEO 领域常用说法,通常等同于注册域名(Registrable Domain)。
  • 主域名(Primary Domain,非 DNS 标准):业务概念,一般指系统或组织对外使用的主要注册域名。
如果你有魔法,你可以看到一个评论框~