提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、DNS
-
- [1.1、DNS 概述与核心作用](#1.1、DNS 概述与核心作用)
- [1.2、DNS 查询原理(重点)](#1.2、DNS 查询原理(重点))
- 1.3、DNS服务器架构与类型
- 二、DHCP
-
- [2.1 什么是 DHCP](#2.1 什么是 DHCP)
- [2.2、DHCP 的好处](#2.2、DHCP 的好处)
- [2..3、DHCP 的工作模式与分配方式](#2..3、DHCP 的工作模式与分配方式)
- [2.4 DHCP 工作原理(四次握手)](#2.4 DHCP 工作原理(四次握手))
- [2.5 租约更新机制](#2.5 租约更新机制)
- 总结
前言
域名系统(DNS)是互联网的核心基础设施之一,扮演着"互联网导航员"的关键角色。它实现了人类易于记忆的域名与机器用于寻址的IP地址之间的相互转换,是所有网络应用访问的起点。本文档系统阐述了DNS的工作原理、系统架构、服务器类型及详细的部署配置方法,旨在为网络管理员和技术爱好者提供一份全面、清晰的参考指南。
一、DNS
1.1、DNS 概述与核心作用
1.1 DNS 的角色(重点)
DNS (Domain Name System) 是互联网的"导航员"。它的核心作用是实现域名与 IP 地址之间的相互映射。
正向解析: 根据域名查找对应的 IP 地址(最常用)。
反向解析: 根据 IP 地址查找对应的域名(用于特殊用途,如邮件服务器及垃圾验证)。
1.2 端口与协议
默认端口:53
使用协议:
UDP: 用于常规的域名解析查询。速度快,开销小。
TCP: 用于区域传送(主从服务器同步数据)。因为TCP更可靠,能保证大数据量的准确传输。
1.3 域名结构:FQDN
FQDN (Fully Qualified Domain Name,完全合格域名): 全限定域名,完整标识主机在域名树中的位置。
格式:主机名、子域、二级域、顶级域、根域。(根域,通常省略)
示例:www.sina.com.cn -> www.sina.com.cn. (根域以点表示)

1.2、DNS 查询原理(重点)
1.2.1 两种查询方式
1.2.1.1 递归查询 (Recursive Query)
客户机与本地DNS服务器之间的查询方式。
客户机发出请求后,只需等待最终结果(成功或失败),中间的所有查询过程由DNS服务器代理完成。
一句话:"你办事,我放心,我只要结果"。
1.2.1.2 迭代查询 (Iterative Query)
本地DNS服务器与其它各级DNS服务器之间的查询方式。
上级服务器不会替下级服务器去查询,而是返回一个最佳查询点(另一台DNS服务器的地址),让请求者自己再去问。
一句话:"这个我不直接管,你去问XX办公室吧"。
1.2.2 完整的正向解析流程
以www.google.com为例解析为IP地址的过程,主要涉及递归查询和迭代查询两种方式,各服务器角色分工明确:
步骤1:客户端发起递归查询
客户端向本地DNS服务器发起递归查询请求,查询www.google.com的IP地址。
步骤2:本地DNS服务器先自查
本地DNS服务器首先检查自身的本地缓存和hosts文件,看是否有www.google.com对应的IP记录。如果有,直接返回;如果没有,进入下一步。
步骤3:本地DNS服务器向根DNS服务器发起迭代查询
本地DNS服务器向根DNS服务器发起迭代查询,询问www.google.com的IP。根DNS服务器没有直接的记录,会建议本地DNS服务器去查询.com顶级域服务器的地址。
步骤4:本地DNS服务器向顶级域服务器发起迭代查询
本地DNS服务器根据建议,向**.com顶级域服务器发起迭代查询。顶级域服务器同样没有直接记录,会建议**本地DNS服务器去查询google.com的权威服务器(二级域服务器)地址。
步骤5:本地DNS服务器向二级域服务器发起迭代查询
本地DNS服务器再向google.com二级域服务器 发起迭代查询。这次,二级域服务器有www.google.com的记录,会返回其对应的IP地址。
步骤6:本地DNS服务器返回结果并缓存
本地DNS服务器拿到www.google.com的IP后,一方面将结果以递归响应的方式返回给客户端;另一方面,会把这个IP记录缓存起来,方便后续查询使用。
一句话总结:
递归查询:
客户端只发一次请求·要求对法直接出最终结果
迭代查询:
客户端他发出一次请求,如果对方没有授权回答,他就会返回一个能解答这个査询的其他的服务名称列表(根服务器、顶级域、权威域),最终他会提供一个解析的结果
缓存清理命令:
Windows: ipconfig /displaydns (查看缓存), ipconfig /flushdns (清理缓存)
Linux: 需安装 nscd 服务,使用 nscd -i hosts 清理。
1.3、DNS服务器架构与类型
1.3.1 分布式层次结构
全球DNS系统是一个庞大的分布式数据库,由众多服务器共同承担解析任务。
服务器类型 职责 举例
根DNS服务器 管理根域,返回顶级域服务器的地址 全球13个根服务器系统集群(编号A-M)
顶级域DNS服务器 管理特定顶级域,返回权威服务器地址 .com, .cn, .net 服务器
权威DNS服务器 管理特定域名(如google.com),返回其下主机的最终IP ns1.google.com
重要提示: 所谓的"全球13台根服务器"指的是13个逻辑根服务器系统,每个系统都通过任播技术在全球部署了上百台物理服务器副本,以提高 resiliency (弹性) 和访问速度。中国也有多个根镜像服务器。
1.3.2 DNS服务器软件(BIND)
BIND (Berkeley Internet Name Domain): 是最广泛使用的DNS服务软件。
软件包组成:
bind: 主程序包
bind-utils: 提供 nslookup, dig 等测试工具
bind-libs: 提供库文件
bind-chroot: 提供一个伪根目录,将DNS服务锁定在 /var/named/chroot/ 中,增强安全性。
1.3.3 DNS服务器系统类型
根据职能,一台物理DNS服务器可以被配置为以下一种或多种类型:
类型 作用 特点
主域名服务器 维护特定区域的权威数据,数据可修改 type master;
从域名服务器 从主服务器同步区域数据,提供冗余备份和负载均衡 type slave; 需指定 masters{};
缓存域名服务器 不管理任何区域,仅缓存查询结果,加速访问 必须指定根域或转发器
转发域名服务器 将所有非本地查询请求转发给指定的其他DNS服务器 配置 forwarders {};
二、DHCP
2.1 什么是 DHCP
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)
是一种用于 自动为网络设备分配 TCP/IP 参数 的应用层协议,使用 UDP 67(服务器端)和 UDP
68(客户端) 端口通信。
它由 IETF(Internet 工程任务组) 制定,前身是 BOOTP 协议,功能更简单;而 DHCP 支持更多自动
配置项,例如:
角色 协议端口 功能
Server UDP 67 接收客户端请求并分配地址
Client UDP 68 发送请求并接收地址信息
类型 描述
自动分配 客户端第一次获得地址后永久使用该地址。
手动分配 管理员为特定主机指定固定 IP。
动态分配 最常用方式,地址有租期,到期释放供他人使用。
IP 地址、子网掩码、广播地址
默认网关地址
DNS 服务器地址
2.2、DHCP 的好处
- 简化网络管理
自动分配 IP,减少管理员工作量。
避免手工配置错误。 - 防止冲突与浪费
自动检测并防止 IP 地址冲突。
动态回收未使用的 IP,提高利用率。 - 灵活适应网络变化
改变网络地址段时,无需重新配置每台主机。
客户端重新上线可快速获取旧地址或新地址。
2...3、DHCP 的工作模式与分配方式
2.3.1.1 C/S 模式(Client/Server)
DHCP 服务器:负责集中分配与管理地址池。
DHCP 客户端:自动获取地址与网络参数。
2.3.1.2 分配方式
2.4 DHCP 工作原理(四次握手)
广播通信,先到先得。
步骤 名称 内容
① DHCP Discover 客户端广播"有 DHCP 服务器吗?"
② DHCP Offer 服务器回应"我有一个 IP 可用"
③ DHCP Request 客户端选择一个 Offer 并请求使用
④ DHCP ACK 服务器确认分配并建立租约
📦 类比:
客户端像"租房客",服务器像"中介":
请求 → 提供房源 → 选择 → 签约。
2.5 租约更新机制
T1 = 50% 租期:客户端单播请求续租。
T2 = 87.5% 租期:若无回应,广播请求续租。
若收到 DHCP ACK → 更新成功。
若收到 DHCP NAK → 客户端重新发现(Discover)新的地址。
总结
本文档系统地介绍了DNS域名解析服务的各个方面。从核心作用(正反向解析)和基础概念(端口、协议、FQDN)出发,深入讲解了其查询原理(递归与迭代查询的结合),揭示了全球DNS系统的分布式层次架构(根、顶级域、权威服务器)以及单台服务器可扮演的不同角色(主、从、缓存、转发)。
文档的核心部分通过一个详细的实战案例,演示了如何使用BIND软件部署一台具备正向和反向解析功能的主DNS服务器,涵盖了从安装软件、修改配置文件(主配置、区域配置、数据文件)到语法检查、服务启动和最终测试的完整流程。
最后,本章通过解析访问百度的完整流程,具象化地阐述了OSI七层模型中"下行封装、上行解封"的核心通信机制,揭示了数据从客户端到服务端的跨网络传输原理,这将有助于理解和部署企业级DNS服务,保障网络访问的可靠性和效率。