📖 6.4 域名系统 DNS
🎯 课程摘要:DNS(域名系统)负责将便于记忆的域名转换为用于寻址的 IP 地址。因特网采用层次树状结构的域名和分布式的域名服务器体系,包括根、顶级、权限、本地四类域名服务器。域名解析有递归查询与迭代查询两种方式,通常"主机到本地域名服务器用递归、其余用迭代",并广泛使用高速缓存提高效率、减轻根服务器负担。DNS 报文使用 UDP 封装,端口号 53。
📝 详细笔记
1. DNS 的作用
- 概念定义:DNS(域名系统)是因特网中用于完成域名到 IP 地址转换的分布式系统。
- 原理解析:
- TCP/IP 体系采用 IP 地址进行寻址,即使不使用域名也能用 IP 地址访问目的主机;但域名便于人们记忆,因此大多数网络应用使用域名访问。
- 当浏览器中输入域名时,主机先在自己DNS 高速缓存中查找对应 IP;找不到则向网络中某台 DNS 服务器查询,DNS 服务器中有域名与 IP 地址映射关系的数据库,查询后把结果返回主机。
- ⚠️ 重点/考点:为什么因特网不只用一台 DNS 服务器?因为因特网规模大,单服务器会超负荷且一旦故障全网瘫痪。早在 1983 年因特网就采用层次结构的命名树和分布式域名系统:大多数域名在本地解析,仅少量需在因特网上通信,效率高;单台服务器故障也不妨碍整个系统运行。
2. 因特网的层次树状域名结构
- 概念定义:域名的结构由若干个分量组成,各分量之间用点隔开,分别代表不同级别的域名。
- 原理解析:
- 每一级域名由英文字母和数字组成,不超过 63 个字符,不区分大小写;级别最低的写在最左,级别最高的顶级域名写在最右;完整域名不超过 255 个字符。
- 域名系统不规定一个域名需含多少下级域名,也不规定各级含义;各级域名由其上一级域名管理机构管理,最高顶级域名由 ICANN(因特网名称与数字地址分配机构)管理。
- 示例:
nic.hnust.edu.cn——cn 顶级域(中国)、edu 二级域(教育机构)、hnust 三级域(湖南科技大学)、nic 四级域(网络信息中心,由学校自行管理)。
- 顶级域名分三类:
- 国家顶级域名:采用 ISO 3166 规定,如 cn(中国)、us(美国)、uk(英国)。
- 通用顶级域名:最常见七个——com(公司企业)、net(网络服务机构)、org(非盈利性组织)、int(国际组织)、edu(美国教育机构)、gov(美国政府部门)、mil(美国军事部门)。
- 反向域:用于反向域名解析,即由 IP 地址反向解析为域名。
- 我国二级域名的划分:
- 类别域名(7 个):ac(科研机构)、com(工商金融等企业)、edu(教育机构)、gov(政府部门)、net(网络服务机构)、mil(军事机构)、org(非盈利性组织)。
- 行政区域名(34 个):适用于各省、自治区、直辖市,如 bj(北京市)、sh(上海市)、js(江苏省)等。
- 注:在日本顶级域 jp 下,企业/教育机构用 ac 和 co 而非 edu 和 com。
- ⚠️ 重点/考点:
- 域名空间是一棵倒着生长的树,根没有对应域名,下一级是顶级域名,再依次划分二级、三级、四级域名等。
- 按等级管理的命名方法便于维护域名唯一性,也容易设计高效的域名查询机制。
- 域名只是逻辑概念,不代表计算机所在的物理地点;域名与 IP 的映射必须保存在域名服务器中。
- 名称相同但等级未必相同:如 com 既可作通用顶级域名,也可作我国 cn 下的二级域名。
3. 域名服务器的四种类型
DNS 使用分布在各地的域名服务器实现域名到 IP 的转换,可划分为四类:
| 类型 | 职责与特点 |
|---|---|
| 根域名服务器 | 知道所有顶级域名服务器的域名及其 IP;因特网共 13 个不同 IP 的根域名服务器,每个实为分布世界各地的服务器集群;通常不直接解析,而是返回所属顶级域名服务器的 IP;路由器把查询转发到最近的根服务器以加快查询、合理利用资源 |
| 顶级域名服务器 | 负责管理在该顶级域名服务器注册的所有二级域名;收到查询时给出最后结果或下一级权限域名服务器的 IP |
| 权限域名服务器 | 负责管理某个区的域名;每个主机域名都必须在某权限域名服务器注册登记;知道其管辖的域名与 IP 映射,还知道下级域名服务器地址 |
| 本地域名服务器 | 不属于上述等级结构;主机发出 DNS 请求时首先送往本地域名服务器,它起代理作用将报文转发到等级结构中;每个 ISP、大学甚至学院都可拥有;离用户较近(一般不超过几个路由器,也可能在同一局域网);又称默认域名服务器,其 IP 需直接配置在需解析的主机中 |
- ⚠️ 重点/考点:本地域名服务器是主机 DNS 请求的第一站,起代理作用;其 IP 地址需直接配置在主机中。
4. 域名解析过程:递归查询与迭代查询
- 概念定义:
- 递归查询:被查询的域名服务器若不知道答案,会代替请求者继续向下一级服务器查询,直到得到结果再沿原路返回。
- 迭代查询:被查询的域名服务器若不知道答案,只返回下一步应查询的域名服务器 IP,由请求者自己再去查询。
- 原理解析(以查询
y.abc.com的 IP 为例):
- 纯递归查询:主机→本地→根→顶级→权限,各级都代为继续查询,结果沿原路逐级传回用户主机。
- 迭代查询:主机→本地为递归;本地→根→顶级→权限为迭代,每级只告知下一级服务器 IP,由本地域名服务器依次主动查询。
- ⚠️ 重点/考点:
- 由于递归查询对被查询服务器负担太大,**通常采用"主机到本地域名服务器用递归查询、其余用迭代查询"**的模式。
- 最坏情况下(本地无缓存),本地域名服务器需依次向根、顶级、权限域名服务器发出多次 DNS 查询。
5. 高速缓存(DNS Cache)
- 概念定义:高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录。
- 原理解析:
- 若本地域名服务器缓存中已有该域名 IP,则无需再向根服务器迭代查询,直接把结果告诉用户主机。
- 由于域名与 IP 的映射关系并非永久不变,域名服务器需为每项内容设置计时器,删除超时项(如每项只存放两天)以保持缓存正确。
- 不只在本地域名服务器,用户主机中也需要高速缓存:主机启动时可从本地域名服务器下载域名与 IP 数据库维护自己的缓存,只在缓存找不到时才向域名服务器查询;主机同样需保持缓存内容正确性。
- ⚠️ 重点/考点:高速缓存的作用是提高 DNS 查询效率、减轻根域名服务器负担、减少因特网上 DNS 查询报文数量;必须设计时器定期清理过期项。
6. DNS 记录类型(补充)
域名服务器中存放的域名与 IP 映射记录有不同的类型,常见类型如下:
| 记录类型 | 含义 |
|---|---|
| A | 将域名映射为 IPv4 地址 |
| AAAA | 将域名映射为 IPv6 地址(四倍 A,对应 128 位地址) |
| CNAME | 别名记录,将一个域名映射为另一个规范域名 |
| NS | 指明该域名由哪台域名服务器负责解析 |
| MX | 邮件交换记录,指明该域的邮件服务器 |
| PTR | 反向记录,将 IP 地址映射回域名(用于反向解析) |
7. DNS 的协议封装与安全
- 概念定义:DNS 报文使用运输层 UDP 协议封装,端口号为 53。
- ⚠️ 重点/考点:DNS 使用 UDP,端口 53;DNS 污染等安全问题超出本课程教学大纲。
💡 核心总结
- DNS 把便于记忆的域名转换为用于寻址的 IP 地址,采用层次树状域名结构与分布式域名服务器。
- 域名分量用点分隔,最低级在最左、顶级在最右,每级≤63 字符,整名≤255 字符;顶级域分国家、通用、反向三类。
- 四类域名服务器:根(13 个、知所有顶级、返回顶级 IP)、顶级(管二级)、权限(管某区、主机必须注册)、本地(主机请求第一站、起代理)。
- 解析方式:递归(代为查询)与迭代(只给下一级 IP);常用模式为主机→本地递归、其余迭代。
- 广泛使用高速缓存提高效率、减轻根服务器负担,须设计时器清理过期项。
- DNS 基于 UDP,端口 53。
❓ 课后思考 / 经典考题
- (2010 年统考)采用递归查询方式进行域名解析时,本地域名服务器无缓存,它将依次向哪些服务器发送 DNS 查询?(答案:本地先向根域名服务器查询)
- (2016 年统考)采用迭代查询、主机 DNS 高速缓存无相关信息时,最坏情况下本地域名服务器需依次向哪四级域名服务器发出共四次 DNS 查询?(答案:根域名服务器、顶级域名服务器 .com、权限域名服务器 xyz.com、权限域名服务器 abc.xyz.com)
- 为什么因特网不只用一台 DNS 服务器?层次树状域名结构和分布式域名系统有何优势?
- 简述递归查询与迭代查询的区别,并说明实际中最常用的查询模式。
- DNS 高速缓存的作用是什么?为什么需要为缓存项设置计时器?