云计算——DNS域名解析服务+DHCP服务
前言
域名系统(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服务,保障网络访问的可靠性和效率。