简说DNS

事情起因
有些时候会遇到某个地方的用户查看视频出现卡顿,在同网络下访问组件网络连通性检测页面能看到访问stream.youdao.com实时速度很低,并且已传输数据量很小,如下图:

这种情况的排查思路一般是拿到用户请求域名返回的IP地址,单独使用curl指定访问进行测试(需要同运营商网络下),再找CDN同学进行处理,是摘除节点还是调度到其他厂商。
运营同学问到西安用户访问这个域名是不是也会调度到山西CDN节点上,其实根据域名DNS调度策略来说是很少概率出现这种情况的。
这里涉及到了DNS解析过程已经目前主流的DNS调度方案,把全部的过程整理写出来。
DNS架构
先看几篇非常好的博文:
使用AI归纳一下:
1. DNS 的层次结构 —— 倒置树形结构
根域 (Root)
│
┌──────┴──────┐
▼ ▼
顶级域 (TLD) ……
/ \
▼ ▼
gTLD ccTLD
(通用) (国家/地区)
│
二级域 → 三级域 → 主机名说明:
- 根域(
.)- DNS 最顶层,由全球 13 组根服务器逻辑支撑。
- 顶级域(TLD)
gTLD:通用顶级域,如.com,.org,.net,.aiccTLD:国家和地区代码顶级域,如.cn,.us,.jp,.hk,基于 ISO 3166-1 两位字母标准()。
- 子域层级
- 由组织自主创建和管理,例如:
baidu.com是.com下的二级域mail.corp.baidu.com是四级子域
- 由组织自主创建和管理,例如:
示例:
www.example.com= 主机名 + 二级域 + TLD
2. DNS 的核心作用
DNS 是互联网的基础服务之一,主要承担三大功能:
| 功能 | 说明 |
|---|---|
| 易于记忆 | 用人类可读的名称替代 IP 地址(如 www.example.com 替代 192.0.2.1) |
| 定位计算机 | 通过域名解析建立“域名 ↔ IP 地址”映射关系 |
| 服务入口 | 所有基于网络的应用(网站、邮件、API)均依赖 DNS 导航 |
💬 别称:“互联网的中枢神经系统”,因其支撑几乎所有网络交互。
3. 全球治理体系核心 —— ICANN
[ICANN]
│
┌──────────┼──────────┐
▼ ▼ ▼
gTLD管理 根区管理 政策制定关键职责:
- 审批新增顶级域写入根区(Root Zone)
- 管理全球唯一标识符(域名、IP地址、协议号等)
- 制定全球域名政策,采用多利益相关方模型协调各方意见
📌 ICANN 是当前全球域名体系的核心协调机构。
4. IANA 职能移交后运行机制(2016年起)
2016年10月,IANA职能管理权正式从美国政府移交至 ICANN 社群,形成三级协作机制:
[ICANN 董事会]
↓ 授权与监督
[PTI] — 执行根区变更操作
↓ 下发指令
[VeriSign] — 维护根区数据库 & A根服务器运行
↑
社群问责 ← 技术社群 / 政府 / 用户共同监督角色分工:
| 角色 | 职责 |
|---|---|
| ICANN 董事会 | 战略决策,批准根区变更请求 |
| PTI(Public Technical Identifiers) | 实际执行根区更新操作(如添加 NS 记录) |
| VeriSign | 技术运维 A 根服务器及根区数据库 |
| 社群监督 | GAC、RSSAC、ccNSO 等组织参与审核与问责 |
✅ 此模式实现了去中心化、透明化的全球共治。
5. 两类顶级域的不同治理路径
总体架构对比
顶级域 (TLD)
│
┌───────┴────────┐
▼ ▼
ccTLD(国家码) gTLD(通用)
│ │
自主治理 协议约束
│ │
需写入根区 必须签约
│ │
本地主管授权 ICANN 认证监管🔹 ccTLD(如 .CN, .HK, .MO, .TW)
- 命名依据:ISO 3166-1 两位国家/地区代码
- 具有国家主权含义,根据《突尼斯议程》确认其归属属性
- 管理由本地主管部门授权的机构负责(如 CNNIC 运营
.CN) - 无需与 ICANN 签订协议
- 只需申请将其 NS 记录写入根区即可实现全球解析
🔹 gTLD(如 .com, .org, .app)
- 由注册管理机构提出申请,经 ICANN 审批设立
- 必须签订《注册管理机构协议》(Registry Agreement)
- 域名注册商必须获得 ICANN 官方认证
- 只能通过认证的服务商向用户销售域名
- 受 ICANN 合规审查与定期审计
6. 多方参与的治理生态
DNS 治理强调开放、透明、多方参与,主要机制如下:
[多利益相关方模型]
│
┌─────────┴─────────┐
▼ ▼
ICANN 社群组织 区域协作平台
▼ ▼
GNSO ←→ gTLD 政策 APRALO ← 亚太
ccNSO ←→ ccTLD 协作 EURALO ← 欧洲
AFRALO ← 非洲
LACRALO ← 拉美核心参与方:
ICANN 内部社群:
- GNSO(通用名称支持组织):主导 gTLD 相关政策制定
- ccNSO(国家代码名称支持组织):促进 ccTLD 运营商之间的合作与经验共享
区域组织(Regional LOs):
- APRALO:亚太地区
- EURALO:欧洲
- AFRALO:非洲
- LACRALO:拉丁美洲
- 作用:推动本地能力建设、反馈区域需求、加强国际协调
7. 中国的实践与立场
📍 .CN 域名:国家主权的体现
- 运营单位:中国互联网络信息中心(CNNIC)
- 监管部门:工业和信息化部
- 特点:
- 具备完整自主管理权
- 支持中文域名(如
.中国、.公司、.网络) - 遵守国家网络安全法律法规
- 数据存储与解析服务本土化
地区 ccTLD 的归属说明
| 域名 | 所属地区 | 法律地位 |
|---|---|---|
.HK | 香港特别行政区 | 中国不可分割的一部分 |
.MO | 澳门特别行政区 | 中国不可分割的一部分 |
.TW | 台湾地区 | 中国的一个省份,地理编码 |
📌 在 DNS 系统中,这些是基于地理位置的技术编码,不改变政治归属。
根据一个中国原则,所有地区 ccTLD 均属于中国领土范围内的组成部分。
DNS解析策略
阿里云的云解析DNS白皮书 https://developer.aliyun.com/ebook/8472 写的非常详细,引用一下,版权属于阿里云。

行业内用的一种是自定义解析线路,另一种是HTTPDNS。
用的最多而且最简单容易快速实现的就是自定义解析线路,可以实现北京移动用户访问你的业务域名返回A IP,北京联通用户访问返回B IP。这里涉及一个递归DNS,也叫LocalDNS


DNS解析系统都是根据用户接入运营商获取的LocalDNS的出口IP地址来返回对应的解析IP,而不是用户的外网IP(https://datatracker.ietf.org/doc/rfc7871)。有时候就会出现你明明在DNS解析系统中配置了北京移动用户访问域名返回A IP,但是反向有些北京移动用户访问域名返回的是B IP,一排查发现这些拿到B IP的用户的LocalDNS不同和拿到A IP的用户LocalDNS不是同一个或者同一组IP。这种情况就需要HTTPDNS(https://help.aliyun.com/zh/dns/httpdns-what-is-mobile-resolution-httpdns)来解决,

获取域名DNS解析
新加了一个域名主机记录,要看一下全球各地的生效结果,可以从下面三个检测地址来查看:
https://www.whatsmydns.net/

https://dns.google/

https://dnsviz.net/

写在最后
国内基建特别是网络基础建设经过这十多年的建设,以及网络安全的发展,域名DNS劫持发生次数比较少了,使用自定义解析线路加上HTTPDNS(这个业务量大的话费用很高)辅助可以解决99%的解析问题。
基于国内用户就那么多,各个大厂在进行存量厮杀的同时也在积极开发海外用户,基于LocalDNS的自定义解析线路方法会经常遇到某个国家的某个地区运营商无法解析域名的情况,海外这里的DNS解析使用HTTPDNS是最稳健的,推荐使用这种方式赋能业务。
