计算机网络---DNS(域名系统)
DNS(Domain Name System,域名系统)是互联网的核心基础设施之一,它如同“网络世界的通讯录”,负责将人类易记的域名(如www.baidu.com
)转换为计算机可识别的IP地址(如180.101.49.11
),让用户无需记忆复杂的数字IP即可访问网络资源。
一、DNS的定义
DNS是一个分布式的域名解析系统,通过层级化的服务器集群和协议,实现域名与IP地址的映射(包括正向解析:域名→IP,反向解析:IP→域名)。
- 核心作用:解决“人类记域名、机器认IP”的矛盾。例如,当用户在浏览器输入
www.google.com
时,DNS会自动查询其对应的IP地址(如142.250.185.196
),使浏览器能与目标服务器建立连接。
二、DNS的工作原理(正向解析流程)
DNS解析是一个“从本地到全球”的分层查询过程,以下以访问www.baidu.com
为例,拆解其步骤:
-
本地缓存查询
- 首先检查用户设备(电脑、手机)的本地DNS缓存,若之前访问过该域名,会直接返回缓存的IP地址(缓存有过期时间,通常几分钟到几小时)。
- 若本地缓存无记录,查询本地DNS服务器(由ISP或用户手动设置,如家庭网络中路由器分配的DNS,或公共DNS如
114.114.114.114
)。
-
本地DNS服务器查询
- 本地DNS服务器先检查自身缓存,若有记录则直接返回;若无,则启动递归查询(代替用户向其他DNS服务器请求)。
-
根域名服务器查询
- 本地DNS服务器向根域名服务器(全球共13组,负责管理顶级域名)发送查询请求。
- 根服务器无法直接返回
www.baidu.com
的IP,但会告知“.com
顶级域名由哪些服务器负责”(即.com
顶级域名服务器的IP)。
-
顶级域名服务器查询
- 本地DNS服务器向
.com
顶级域名服务器发送请求,后者告知“baidu.com
二级域名由其授权的权威域名服务器负责”(即baidu.com
的权威DNS服务器IP)。
- 本地DNS服务器向
-
权威域名服务器查询
- 本地DNS服务器向
baidu.com
的权威DNS服务器(由百度公司管理)发送请求,该服务器存储着www.baidu.com
对应的IP地址,直接返回结果(如180.101.49.11
)。
- 本地DNS服务器向
-
结果返回与缓存
- 本地DNS服务器将IP地址返回给用户设备,并在自身缓存中记录该映射(便于下次快速查询),用户设备即可通过IP访问目标服务器。
三、DNS的域名结构(层级化设计)
DNS域名采用层级化的树状结构,从根到叶依次为:根域→顶级域→二级域→子域→主机名,各层级用“.
”分隔。
-
示例:
mail.tech.baidu.com
的结构拆解:- 根域:最顶层,通常省略(完整域名为
mail.tech.baidu.com.
,末尾的“.”代表根); - 顶级域(TLD):
.com
(商业机构)、.org
(非营利组织)、.cn
(中国国家顶级域)等; - 二级域:
baidu.com
(百度公司注册的主域名); - 子域:
tech.baidu.com
(百度内部的技术部门子域); - 主机名:
mail
(该子域下的邮件服务器主机)。
- 根域:最顶层,通常省略(完整域名为
-
常见顶级域分类:
- 通用顶级域(gTLD):
.com
(商业)、.org
(非营利)、.net
(网络服务)、.edu
(教育机构)等; - 国家/地区顶级域(ccTLD):
.cn
(中国)、.us
(美国)、.jp
(日本)等; - 新通用顶级域(New gTLD):
.xyz
、.club
、.shop
等(2013年后新增)。
- 通用顶级域(gTLD):
四、DNS服务器的类型
根据功能不同,DNS服务器可分为以下几类:
-
根域名服务器(Root Name Server)
- 全球共13组(编号A至M),由不同机构管理(如美国Verisign、中国CNNIC等),负责返回顶级域服务器的地址。
- 虽然数量少,但通过任播技术(Anycast)在全球部署了数百个节点,确保高可用性。
-
顶级域名服务器(TLD Server)
- 负责管理顶级域(如
.com
、.cn
),存储二级域的权威服务器地址。例如,.com
服务器管理所有以.com
结尾的域名。
- 负责管理顶级域(如
-
权威域名服务器(Authoritative Name Server)
- 由域名持有者管理(或委托给服务商),存储该域名下所有主机的DNS记录(如
www
、mail
对应的IP)。 - 例如,百度的权威服务器存储
baidu.com
及其子域的解析记录,是域名解析的“最终来源”。
- 由域名持有者管理(或委托给服务商),存储该域名下所有主机的DNS记录(如
-
递归域名服务器(Recursive Resolver)
- 也称为“本地DNS服务器”,接收用户的查询请求,代替用户向根服务器、顶级域服务器等递归查询,最终返回结果。
- 常见于ISP(如电信、联通)提供的DNS,或公共DNS(如
114.114.114.114
、8.8.8.8
)。
五、常见DNS记录类型
DNS服务器通过不同类型的记录存储域名与IP的映射关系,常见类型包括:
记录类型 | 作用 | 示例 |
---|---|---|
A记录 | 域名映射到IPv4地址(最常用) | www.baidu.com → 180.101.49.11 |
AAAA记录 | 域名映射到IPv6地址 | www.baidu.com → 240e:ff:f100:100::11 |
CNAME记录 | 域名别名(将一个域名指向另一个域名) | blog.baidu.com → www.baidu.com |
MX记录 | 指定邮件服务器(用于邮件传输) | baidu.com 的MX记录指向mx.baidu.com |
NS记录 | 指定该域名的权威DNS服务器 | baidu.com 的NS记录为ns1.baidu.com |
TXT记录 | 存储文本信息(如SPF反垃圾邮件配置) | baidu.com 的TXT记录包含反垃圾邮件规则 |
PTR记录 | 反向解析(IP映射到域名) | 180.101.49.11 → www.baidu.com |
六、DNS的重要性与常见问题
-
为什么DNS至关重要?
- 没有DNS,用户需直接输入IP地址访问网站,极大降低互联网易用性;
- DNS故障会导致大面积网站无法访问(如2016年美国DNS服务商Dyn遭攻击,导致Twitter、Netflix等服务瘫痪)。
-
常见问题及解决
- DNS污染:恶意篡改DNS解析结果,将域名指向错误IP(如某些地区无法访问特定网站),可通过使用加密DNS(如DNS over HTTPS)或更换公共DNS解决。
- DNS缓存中毒(缓存污染):攻击者向递归服务器注入虚假解析记录,导致用户被引导至恶意网站,解决方法包括启用DNSSEC(DNS安全扩展)验证记录真实性。
- 解析延迟:本地DNS服务器响应慢,可更换为公共DNS(如
114.114.114.114
、8.8.8.8
)提升速度。
七、DNS的扩展技术
- DNSSEC:通过数字签名确保DNS记录未被篡改,防止缓存中毒攻击。
- DNS over HTTPS(DoH)/DNS over TLS(DoT):对DNS查询数据加密,防止第三方监听或篡改(传统DNS查询为明文)。
- EDNS(扩展DNS):扩展DNS协议的功能,支持更大的数据包、更多的记录类型,提升解析效率。