层次域名空间与域名服务器
域名系统(Domain Name System,DNS)是因特网使用的命名系统,用来把便于人们记忆的具有特定含义的主机名(如 www.cskaoyan.com)转换为便于机器处理的 IP 地址。DNS 系统采用客户/服务器模型,其协议运行在 UDP 之上,使用 53 号端口(DNS 向下依次使用的协议 2018、2021 年考过)。
从概念上可将 DNS 分为三部分:层次域名空间、域名服务器和解析器。本页讲前两部分,解析过程见 6.2.3。
本页 1 道错题:域名和 IP 地址、MAC 地址、主机都不是一一对应的。
机制
6.2.1 层次域名空间
因特网采用层次树状结构的命名方法。采用这种命名方法,任何一个连接到因特网的主机或路由器,都有一个唯一的层次结构名称,即域名。域是名字空间中一个可被管理的划分;域可以划分为子域,而子域还可以继续划分为子域的子域,这样就形成了顶级域、二级域、三级域等。
每个域名都由标号序列组成,而各标号之间用点隔开。例如 www.cskaoyan.com 由三个标号组成,其中标号 com 是顶级域名,标号 cskaoyan 是二级域名,标号 www 是三级域名。
关于域名中的标号有以下几点需要注意:
- 标号中的英文不区分大小写。
- 标号中除**连字符(-)**外不能使用其他的标点符号。
- 每个标号不超过 63 个字符,多标号组成的完整域名最长不超过 255 个字符。
- 级别最低的域名写在最左边,级别最高的顶级域名写在最右边。
顶级域名(Top Level Domain,TLD)分为如下三大类:
| 类别 | 说明 |
|---|---|
| 国家(地区)顶级域名(nTLD) | 国家和某些地区的域名,如 “.cn” 表示中国,“.us” 表示美国,“.uk” 表示英国 |
| 通用顶级域名(gTLD) | 常见的有 “.com”(公司)、“.net”(网络服务机构)、“.org”(非营利性组织)、“.edu”(教育机构)、“.gov”(国家或政府部门)等 |
| 基础结构域名(arpa) | 用于反向域名解析,即 IP 地址反向解析为域名 |
在域名系统中,各级域名由其上一级的域名管理机构管理,顶级域名由 ICANN 管理。国家顶级域名下注册的二级域名均由该国家自行确定,每个组织都可以将它的域再分成一定数量的子域,并将这些子域委托给其他组织去管理。例如,管理 cn 域的中国将 edu.cn 子域授权给中国教育和科研计算机网(CERNET)来管理。
6.2.2 域名服务器
域名到 IP 地址的解析是由运行在域名服务器上的程序完成的。一个服务器所负责管辖的(或有权限的)范围称为区(小于或等于域),一个区中的所有节点必须是能够连通的,每个区设置相应的权限域名服务器,用来保存该区中的所有主机的域名到 IP 地址的映射。每个域名服务器不但能够进行一些域名到 IP 地址的解析,而且必须具有连向其他域名服务器的信息;当自己不能进行域名到 IP 地址的转换时,能够知道到什么地方去找其他域名服务器。
DNS 使用了大量的域名服务器,它们按层次方式组织。没有一台域名服务器具有因特网上所有主机的映射,相反,该映射分布在所有的域名服务器上。有 4 种类型的域名服务器:
flowchart TB R["根域名服务器<br/>(全球 13 个,均为冗余集群)"] T1["com 顶级域名服务器"] T2["org 顶级域名服务器"] T3["cn 顶级域名服务器"] A1["cskaoyan.com<br/>权限域名服务器"] A2["edu.cn 域名服务器"] A3["hust.edu.cn 域名服务器"] R --> T1 --> A1 R --> T2 R --> T3 --> A2 --> A3
| 类型 | 职责 |
|---|---|
| 根域名服务器 | 最高层次的域名服务器,知道所有顶级域名服务器的域名和 IP 地址。不管是哪个本地域名服务器,只要自己无法解析,就首先求助于根域名服务器。因特网上有 13 个根域名服务器,每个”服务器”实际上是冗余服务器的集群。根域名服务器用来管辖顶级域,通常它并不直接将待查询的域名直接转换成 IP 地址,而是告诉本地域名服务器下一步应当找哪个顶级域名服务器进行查询 |
| 顶级域名服务器 | 负责管理在该顶级域名服务器注册的所有二级域名。收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的 IP 地址) |
| 权限域名服务器(授权域名服务器) | 每台主机都必须在权限域名服务器处登记;为了更可靠地工作,一台主机最好至少有两个权限域名服务器。许多域名服务器都同时充当本地域名服务器和权限域名服务器。权限域名服务器总能将其管辖的主机名转换为该主机的 IP 地址 |
| 本地域名服务器 | 对域名系统非常重要。每个 ISP、一所大学,甚至一所大学中的各个系,都可以拥有一个本地域名服务器。当一台主机发出 DNS 查询请求时,这个查询请求报文就发送给该主机的本地域名服务器;在 Windows 中配置网络时填写的”DNS 地址”就是它 |
边界
错题复盘:域名与 IP 地址、MAC 地址、主机都不是一一对应的
王道 6.2.4 第 1 题:域名与( )具有一一对应的关系(A. IP 地址 B. MAC 地址 C. 主机 D. 以上都不是)。答案 D。
若一台主机通过两块网卡连接到两个网络(如服务器双线接入),则就具有两个 IP 地址,每个网卡对应一个 MAC 地址,显然这两个 IP 地址可以映射到同一个域名上。此外,多台主机也可以映射到同一个域名上(如负载均衡),一台主机也可以映射到多个域名上(如虚拟主机)。因此,A、B 和 C 和域名均不具有一一对应的关系。
与之配套的是第 2 题:因特网上提供访问的主机一定要有 IP 地址,而不一定要有域名(错误项 A);同一域名在不同时间可能解析出不同的 IP(负载分担),多个域名可以指向同一个 IP,同一子网中的主机也可由不同的域名服务器维护映射——这三项都是对的。
DNS 是基于 C/S 模型的分布式数据库系统。 没有任何一台服务器保存全部映射(第 3 题)。
DNS 的组成不包括”内部 IP 到外部 IP 的翻译程序”。 那是 NAT 的事(第 4 题,4.2.2)。
主机只需要知道本地域名服务器的 IP。 根节点、父节点的地址都由本地域名服务器负责(第 5 题)。
能把管辖的主机名转换成 IP 地址的是权限域名服务器。 根域名服务器通常只告诉”下一步去问谁”(第 9 题)。
根域名服务器有 13 个(逻辑上)。 每个都是冗余集群,不是 13 台机器。
口径差异:DNS 用 UDP 还是 TCP
教材口径:DNS 协议运行在 UDP 之上,使用 53 号端口(2018 年真题的答案:应用层协议中可以使用无连接服务的是 DNS)。
标准口径:DNS 同时在 UDP 53 和 TCP 53 上工作。普通查询走 UDP;当响应超过 512 字节被截断、或做区域传送(主从服务器同步整个区的数据)时改用 TCP。近年还有 DoT/DoH(DNS over TLS/HTTPS),把查询封装进 TLS 或 HTTP 以防窃听和篡改。
考试按教材口径作答:DNS 使用 UDP。
对照速查
| 说法 | 对错 |
|---|---|
| DNS 使用 UDP,端口号 53 | ✅ |
| 域名与 IP 地址一一对应 | ❌ |
| 因特网上提供访问的主机一定要有域名 | ❌(一定要有 IP 地址) |
| 一个域名在不同时间可以解析出不同的 IP 地址 | ✅ |
| 标号中的英文区分大小写 | ❌ |
| 完整域名最长 255 个字符,每个标号最长 63 个 | ✅ |
| 级别最高的顶级域名写在最左边 | ❌(最右边) |
| 顶级域名由 ICANN 管理 | ✅ |
| 有一台域名服务器保存了因特网上所有主机的映射 | ❌ |
| 根域名服务器直接把域名转换成 IP 地址 | ❌(告诉下一步问哪个顶级域名服务器) |
| 每台主机都必须在权限域名服务器处登记 | ✅ |
| 区一定等于域 | ❌(区小于或等于域) |
考点
- DNS:C/S 模型、UDP、53 端口(2018、2021);三部分组成
- 域名标号的四条规则;三类顶级域名(nTLD、gTLD、arpa 反向解析)
- 4 种域名服务器:根(13 个、管辖顶级域)、顶级、权限(主机在此登记)、本地
- 区 ≤ 域;映射分布在所有域名服务器上
链接
- 🏠 返回总览:计算机网络第 6 章:应用层总览
- ⬅️ 上一节:6.1 网络应用模型
- ➡️ 下一节:6.2.3 域名解析过程
- 🔗 5.2 UDP(DNS 为什么用 UDP)
- 📖 名词库:第 6 章名词库