DNS域名系统介绍(将域名解析成IP地址)FQDN完整域名、完全限定域名、根域、TLD顶级域名、主域名、子域名、主机名(如www)、DNS查询、递归DNS、权威DNS、TTL缓存时间、DNSSEC
文章目录
- DNS 域名系统详解:互联网是如何找到网站的?
- 一、什么是 DNS?
- 二、DNS 的诞生历史
- 三、DNS 的树形结构
- 四、DNS 基础术语
- 1、根域(Root Domain)
- 2、顶级域(TLD)
- 通用顶级域
- 国家顶级域
- 新顶级域
- 3、主域名(Second Level Domain)
- 4、子域名(Subdomain)
- 5、FQDN(Fully Qualified Domain Name)
- 6、Hostname(主机名)
- 五、DNS 查询过程
- 第一步:浏览器缓存
- 第二步:系统缓存
- 第三步:递归 DNS
- 第四步:根服务器
- 第五步:TLD 服务器
- 第六步:权威 DNS
- 查询流程图
- 六、DNS 记录类型
- A 记录
- AAAA
- CNAME
- MX
- TXT
- NS
- 七、递归 DNS 与权威 DNS
- 递归 DNS
- 权威 DNS
- 八、TTL 是什么?
- 九、DNSSEC
- 十、Cloudflare 中的 DNS
- 十一、为什么 DNS 如此重要?
- 十二、总结
DNS 域名系统详解:互联网是如何找到网站的?
当你在浏览器输入:
www.google.com浏览器为什么能准确找到 Google 的服务器?
为什么我们不需要记住一长串 IP 地址,例如:
142.250.190.78答案就是DNS(Domain Name System,域名系统)。
DNS 被称为互联网的“电话簿”,负责把人类容易记忆的域名转换成计算机能够识别的 IP 地址。
一、什么是 DNS?
DNS(Domain Name System)是一套分布式命名系统。
它的核心作用只有一句话:
将域名(Domain Name)解析成 IP 地址。
例如:
www.example.com ↓ 93.184.216.34用户记住:
chat.openai.com计算机实际连接:
104.xxx.xxx.xxx如果没有 DNS,互联网会变成:
访问淘宝: 39.156.xx.xx 访问GitHub: 140.82.xx.xx 访问Bilibili: 120.xx.xx.xx几乎没人能记住。
DNS 的出现让互联网拥有了友好的名称体系。
二、DNS 的诞生历史
早期互联网规模很小。
所有主机信息保存在一个文件:
hosts.txt管理员统一维护:
MIT Stanford Harvard NASA新增主机时:
更新hosts文件 重新分发给所有机器随着互联网快速增长:
100台 1000台 10000台 100000台这种方式彻底崩溃。
1983 年,Paul Mockapetris 提出了 DNS。
DNS 的设计理念:
去中心化
分层管理
全球分布式
直到今天,这套架构仍然支撑整个互联网。
三、DNS 的树形结构
DNS 本质上是一棵巨大的树。
. Root(根域) ┌────────┼────────┐ com org cn │ │ │ example wikipedia gov │ www │ www.example.com从右往左阅读。
例如:
www.example.com表示:
com └── example └── www四、DNS 基础术语
这是很多人最容易混淆的部分。
| 术语 | 说明 | 例子 |
|---|---|---|
| FQDN | 完整域名 | www.example.com. |
| 根域 | DNS 树顶层 | . |
| TLD | 顶级域 | .com |
| 主域名 | 注册域名 | example.com |
| 子域名 | 主域下的分支 | api.example.com |
| Hostname | 具体主机名称 | mail(在 mail.example.com 中) |
1、根域(Root Domain)
DNS 最顶层。
写作:
.所有域名都属于根域。
实际上:
www.example.com.最后面还有一个点。
只是浏览器默认隐藏。
完整形式:
www.example.com. ↑ Root2、顶级域(TLD)
Top Level Domain。
位于根域下一层。
例如:
.com .org .net .io .ai .dev .cn分类:
通用顶级域
.com .org .net .info国家顶级域
.cn .us .jp .uk .de新顶级域
.dev .app .ai .xyz .cloud3、主域名(Second Level Domain)
用户真正购买的域名。
例如:
example.com其中:
example 是主体名称 .com 是TLD你注册:
mycompany.com那么:
mycompany.com就是你的主域名。
4、子域名(Subdomain)
主域名下继续划分。
例如:
www.example.com api.example.com mail.example.com auth.example.com可以无限扩展。
v1.api.example.com internal.dev.example.com k8s.cluster.example.com5、FQDN(Fully Qualified Domain Name)
完全限定域名。
表示完整路径。
www.example.com.包含:
主机名 域名 顶级域 根域即:
www example com .6、Hostname(主机名)
表示某台具体机器。
例如:
mail.example.com其中:
mail就是 Hostname。
api.example.com Hostname: apiauth.example.com Hostname: auth需要注意:
Hostname 不一定是真实物理机器,也可能代表服务。
例如:
db.example.com redis.example.com cdn.example.com可能都只是负载均衡入口。
五、DNS 查询过程
假设访问:
www.example.comDNS 查询过程如下。
浏览器 ↓ 操作系统缓存 ↓ 本地DNS服务器 ↓ 根DNS ↓ .com服务器 ↓ example.com权威DNS ↓ 获取IP ↓ 连接服务器第一步:浏览器缓存
浏览器先检查:
www.example.com是否已经解析过。
例如:
Chrome DNS Cache第二步:系统缓存
Windows:
ipconfig /displaydnsLinux:
systemd-resolved第三步:递归 DNS
通常是运营商 DNS。
例如:
114.114.114.114 223.5.5.5 8.8.8.8 1.1.1.1用户只问一次:
www.example.com在哪?递归服务器负责继续寻找。
第四步:根服务器
全球只有 13 组根服务器。
记作:
A-root B-root C-root ... M-root根服务器.回答:
我不知道IP 但.com归这些服务器管第五步:TLD 服务器
.com服务器回答:
example.com 归Cloudflare负责返回:
ns1.cloudflare.com ns2.cloudflare.com第六步:权威 DNS
权威服务器返回:
www.example.com A 93.184.216.34最终获得 IP。
查询流程图
Client ↓ Resolver ↓ Root ↓ .com ↓ Cloudflare NS ↓ example.com ↓ IP地址六、DNS 记录类型
DNS 的本质就是:
名称 → 数据
常见记录如下。
| 记录 | 作用 |
|---|---|
| A | IPv4地址 |
| AAAA | IPv6地址 |
| CNAME | 别名 |
| MX | 邮件服务器 |
| TXT | 文本信息 |
| NS | 权威DNS |
| PTR | 反向解析 |
| SRV | 服务发现 |
| CAA | 证书授权 |
| HTTPS | 新型服务记录 |
A 记录
最常见。
example.com ↓ 93.184.216.34example.com A 93.184.216.34AAAA
IPv6。
example.com AAAA 2001:db8::1CNAME
别名记录。
blog.example.com ↓ ghs.googlehosted.comblog CNAME ghs.googlehosted.comMX
邮件服务器。
example.com MX 10 mail.example.comTXT
存储文本。
常用于:
SPF DKIM DMARC Google验证 OpenAI验证例如:
TXT "v=spf1 include:_spf.google.com ~all"NS
指定权威服务器。
example.com NS ns1.cloudflare.com七、递归 DNS 与权威 DNS
很多人会混淆。
递归 DNS
帮用户找答案。
例如:
8.8.8.8 1.1.1.1 223.5.5.5职责:
客户端 ↓ 递归DNS ↓ 负责全部查询权威 DNS
保存真正的数据。
例如:
Cloudflare Route53 DNSPod权威服务器保存:
example.com A 1.2.3.4八、TTL 是什么?
TTL(Time To Live)表示缓存时间。
例如:
A 1.2.3.4 TTL 300表示:
缓存300秒5 分钟内不会重新查询。
TTL 较小:
更新快 切换方便 DNS请求更多TTL 较大:
缓存命中率高 解析速度快 修改传播慢常见设置:
300 秒 600 秒 3600 秒 86400 秒九、DNSSEC
DNS 本身没有安全机制。
攻击者可能伪造解析结果。
例如:
bank.com ↓ 假IP用户会访问钓鱼网站。
DNSSEC 解决这个问题。
原理:
数字签名 公钥验证 信任链流程:
Root ↓ .com ↓ example.com ↓ DNSSEC签名校验确保:
返回的数据确实来自权威服务器,没有被篡改。
十、Cloudflare 中的 DNS
很多开发者第一次接触 DNS 都是在 Cloudflare。
例如:
| 记录 | 值 |
|---|---|
| A | 203.0.113.10 |
| AAAA | 2001:db8::1 |
| CNAME | app.example.com |
| MX | mail.example.com |
| TXT | SPF记录 |
Cloudflare 还加入了代理能力:
🟠 橙云(Proxied)
用户 ↓ Cloudflare CDN ↓ 源站特点:
隐藏真实IP CDN缓存 WAF防护 DDoS防御⚪ 灰云(DNS Only)
用户 ↓ 源站仅提供 DNS 解析。
不经过 Cloudflare 网络。
十一、为什么 DNS 如此重要?
DNS 是互联网最基础的基础设施之一。
它承担着:
- 网站访问
- 邮件收发
- CDN 调度
- 负载均衡
- 服务发现
- SSL 证书验证
- Kubernetes 服务解析
- 微服务通信
甚至在云原生环境中:
service.namespace.svc.cluster.local本质上仍然是 DNS。
例如:
redis.default.svc.cluster.localpostgres.database.svc.cluster.local十二、总结
可以把 DNS 理解成互联网的导航系统。
域名 ↓ DNS解析 ↓ IP地址 ↓ TCP连接 ↓ HTTPS ↓ 网站内容整个 DNS 体系可以概括为:
Root (.) ↓ TLD (.com) ↓ example.com ↓ api.example.com ↓ A记录 ↓ 203.0.113.10一句话总结:
DNS 是互联网的电话簿,也是全球最大、最重要的分布式数据库系统之一。它让人类能够使用容易记忆的域名,而无需记住复杂的 IP 地址。
