rhcse----DNS
一、DNS 基础认知:先搞懂 “是什么”
这部分是入门核心,解决 “DNS 到底用来干嘛” 的问题,避免学员一开始陷入技术细节。
1. DNS 的定义与核心价值
-
定义:DNS(Domain Name System,域名系统)是 “将人类可读的域名(如
www.baidu.com)转换为机器可识别的 IP 地址(如180.101.49.12)的分布式查询系统”。 -
核心价值:
-
解决 “记 IP 难” 的问题 —— 人类记不住大量 IP,但能记住域名;
-
实现 “IP 变更时,域名不变”(如网站服务器迁移,用户无需改访问地址)。
-
2. DNS 解决的核心问题
-
问题 1:IP 地址(如
192.168.1.1)难记忆,域名(如home.router)更友好。 -
问题 2:服务器 IP 变更时,若直接用 IP 访问,所有用户需同步改地址;用域名则只需更新 DNS 记录,用户无感知。
-
问题 3:互联网设备数量庞大(数十亿台),无法用 “中心化列表” 维护域名与 IP 的映射,需分布式系统支撑。
二、DNS 核心原理:搞懂 “怎么工作”
这是 DNS 的核心逻辑,重点突破 “域名解析流程” 和 “域名结构”,是学员理解的关键。
1. 域名的层级结构:DNS 的 “地址格式”
需先讲清域名的 “树状层级”,否则后续解析流程无法理解。

-
层级划分:从右到左依次为 “根域(.)→ 顶级域(TLD)→ 二级域(SLD)→ 子域 → 主机名”。
-
示例:
www.baidu.com. -
FQDN(全限定域名)是一个完整的域名,包含主机名和域名后缀,用于唯一标识和定位网络上的主机或服务。FQDN由多个部分组成,每个部分之间用点号(.)分隔,最右边是顶级域名(TLD),然后是次级域名,最左边是主机名。例如,www.example.com就是一个FQDN,它在网络中用于唯一标识和寻址主机或服务。
-
根域:
.(全球共 13 组根服务器) -
顶级域:
.com(商业域)、.cn(国家域)、.org(非盈利域)等 -
二级域:
baidu.com(企业 / 组织的核心域名,需注册) -
子域:
www.baidu.com(www是baidu.com的子域,可自定义) -
主机名:
www(对应具体服务器,如 Web 服务器)
-
-
-
核心规则:每个层级的域名由 “.” 分隔,层级越靠右,范围越广(根域覆盖全球,子域仅属于某个组织)。
2. DNS 解析流程:从 “输入域名” 到 “拿到 IP” 的全步骤
这是难点,需分 “递归查询” 和 “迭代查询”,用 “用户→本地 DNS→根服务器→顶级域服务器→权威服务器” 的交互过程拆解。

-
关键概念区分:
-
递归查询:“我问你,你必须给我结果”(如用户的本地 DNS 向根服务器查询时,根服务器不会直接返回 IP,而是告诉本地 DNS“去问 .com 顶级域服务器”—— 这不是递归,是迭代);正确场景:用户电脑 / 手机向 “本地 DNS 服务器” 发起的查询是递归(用户只等结果,不管中间过程)。
-
迭代查询:“我问你,你告诉我下一步该问谁”(如本地 DNS 向根服务器、顶级域服务器、权威服务器的查询,是迭代过程)。
-
-
完整解析流程(以
www.baidu.com为例):-
用户在浏览器输入
www.baidu.com,电脑先查 “本地缓存”(如操作系统缓存、浏览器缓存),有则直接返回 IP,无则下一步。 -
电脑向 “本地 DNS 服务器”(通常是路由器分配的 ISP DNS,如电信 / 联通的 DNS)发起递归查询:“请给我
www.baidu.com的 IP”。 -
本地 DNS 先查自身缓存,有则返回;无则向 “根服务器” 发起迭代查询:“
www.baidu.com的 IP 在哪?”。 -
根服务器回复:“我不存具体 IP,但
.com顶级域服务器的地址是 X.X.X.X,你去问它”。 -
本地 DNS 向
.com顶级域服务器发起迭代查询:“www.baidu.com的 IP 在哪?”。 -
顶级域服务器回复:“
baidu.com的权威服务器地址是 Y.Y.Y.Y,你去问它”(权威服务器是 “管理baidu.com域名记录的服务器”,由百度自己或服务商维护)。 -
本地 DNS 向
baidu.com权威服务器发起迭代查询:“www.baidu.com的 IP 是多少?”。 -
权威服务器查询自身的 “域名解析记录”,返回
www.baidu.com对应的 IP(如180.101.49.12)。 -
本地 DNS 缓存该 IP(按 TTL 时间保存),并将 IP 递归返回给用户电脑。
-
用户电脑用 IP 访问
www.baidu.com,完成网页加载。
-

3. DNS 记录类型:DNS 服务器 “存什么数据”
这是后续配置 DNS 服务器的基础,需讲清 “常用记录的作用 + 格式”,学员后续写区域文件会直接用到。
| 记录类型 | 作用 | 示例(区域文件中) |
|---|---|---|
| A 记录 | 将域名映射到 IPv4 地址(最常用) | www IN A 180.101.49.12(www.baidu.com 对应 IPv4) |
| AAAA 记录 | 将域名映射到 IPv6 地址 | www IN AAAA 2400:da00::6666(www.baidu.com 对应 IPv6) |
| CNAME 记录 | 将域名 “别名” 映射到 “主域名”(避免重复配置) | blog IN CNAME www.baidu.com(访问 blog.baidu.com 等同于访问 www.baidu.com) |
| MX 记录 | 指定域名的邮件服务器(用于收发邮件) | baidu.com IN MX 10 mail.baidu.com(10 是优先级,数字越小优先级越高) |
| NS 记录 | 指定管理该域名的 “权威 DNS 服务器” | baidu.com IN NS ns1.baidu.com(baidu.com 的权威服务器是 ns1.baidu.com) |
| SOA 记录 | 标记 “区域的起始授权记录”(每个区域文件必须有,包含主服务器、管理员邮箱等) | baidu.com IN SOA ns1.baidu.com admin.baidu.com. (2024010101 3600 1800 604800 86400) |
| TTL | 记录的 “缓存时间”(单位:秒),控制 DNS 缓存的有效期 | 上述记录中未显式写 TTL 时,用区域文件的默认 TTL(如 $TTL 86400,即 1 天) |
三、DNS 组件架构:搞懂 “谁在参与”
讲清 DNS 系统的 “角色分工”,让学员理解 “分布式系统” 的具体体现。
1. DNS 服务器的类型:按功能划分
-
根 DNS 服务器:
-
作用:全球共 13 组(字母 A-M 命名),存储 “所有顶级域服务器的地址”,不存具体域名的 IP。
-
特点:由 ICANN 管理,是 DNS 解析的 “起点”。
-
-
顶级域(TLD)DNS 服务器:
-
作用:存储 “该顶级域下所有二级域的权威服务器地址”(如
.comTLD 服务器存所有xxx.com的权威服务器地址)。 -
分类:按顶级域类型分 —— 通用顶级域(.com/.org/.net)、国家顶级域(.cn/.jp/.us)。
-
-
权威 DNS 服务器:
-
作用:“管理某个域名的具体解析记录”(如百度的权威服务器管理
baidu.com及其子域的 A/CNAME/MX 记录)。 -
特点:是 DNS 解析的 “终点”,只有它能返回域名的最终 IP(或别名)。
-
-
缓存 DNS 服务器:
-
作用:不存储 “原始解析记录”,只缓存 “其他服务器返回的解析结果”,加速后续查询。
-
常见场景:用户的本地 DNS 服务器(ISP 提供的 DNS、公共 DNS 如 8.8.8.8/114.114.114.114)。
-
关键:缓存有效期由 TTL 控制,TTL 到期后会重新查询权威服务器更新缓存。
-
2. 客户端与 DNS 的交互:用户侧的 “参与角色”
-
本地缓存:操作系统(如 Windows 的
ipconfig /displaydns、Linux 的/etc/hosts)和浏览器会缓存近期解析过的域名,优先使用缓存(最快,无网络请求)。 -
/etc/hosts文件:本地 “静态域名 - IP 映射表”,优先级高于 DNS 解析(若hosts中有www.baidu.com 127.0.0.1,则访问该域名会指向本地,而非 DNS 返回的 IP)。-
用途:测试域名解析(无需改 DNS 服务器)、屏蔽广告域名(将广告域名指向
127.0.0.1)。
-
四、DNS 实践操作:从 “理论” 到 “动手”
通过 “部署 DNS 服务器 + 配置解析 + 验证查询” 巩固知识点,推荐用主流的 BIND(Berkeley Internet Name Domain,最常用的 DNS 服务器软件)。
1. BIND 服务器部署:基础环境搭建
步骤 1:安装 BIND(以 CentOS 为例):
yum install bind bind-utils -y # bind 是服务器端,bind-utils 是查询工具(dig/nslookup)
步骤 2:核心配置文件说明:
-
主配置文件:
/etc/named.conf(控制 BIND 服务的全局参数,如监听地址、允许查询的客户端)。
-
关键配置:
listen-on port 53 { any; };(监听所有地址的 53 端口,DNS 默认端口是 53,UDP 协议);allow-query { any; };(允许所有客户端查询)。
-
-
区域配置文件:
/etc/named.rfc1912.zones(定义 “正向解析区域” 和 “反向解析区域”,即 BIND 要管理哪些域名)。 -
区域数据文件:
/var/named/目录下(存储具体的 DNS 记录,如 A/CNAME/MX 记录,需手动创建)。
2. 配置 “正向解析”:域名→IP
-
需求:让 DNS 服务器解析
www.test.com到192.168.1.100。 -
步骤 1:在区域配置文件中添加正向区域
vim /etc/named.rfc1912.zones
# 添加以下内容
zone "test.com" IN {type master; # 该服务器是 test.com 的“主权威服务器”file "test.com.zone"; # 区域数据文件路径(/var/named/ 下)allow-update { none; }; # 禁止更新(安全)
};
步骤 2:创建区域数据文件
cd /var/named/
cp named.localhost test.com.zone # 复制模板文件
vim test.com.zone
# 修改为以下内容(注意:域名末尾需加“.”)
$TTL 1D # 默认 TTL 1 天
@ IN SOA ns.test.com. admin.test.com. (2024010101 ; 序列号(每次改记录需加 1,用于主从同步)1H ; 刷新时间(从服务器多久查一次主服务器)15M ; 重试时间(刷新失败后多久重试)1W ; 过期时间(从服务器多久后放弃同步)1D ) ; 否定缓存时间IN NS ns.test.com. ; NS 记录:test.com 的权威服务器是 ns.test.com
ns IN A 192.168.1.5 ; A 记录:ns.test.com 对应 IP(即当前 DNS 服务器 IP)
www IN A 192.168.1.100 ; A 记录:www.test.com 对应 IP
blog IN CNAME www.test.com ; CNAME 记录:blog 是 www 的别名
- `test.com`:**区域名**,表示这条 SOA 记录属于 `test.com` 域名的 DNS 区域。- `IN`:**类别标识**,表示这是 Internet 类别的 DNS 记录(最常用的类别)。- `SOA`:**记录类型**,即 “起始授权记录”,是区域的 “权威起点”,每个区域必须有且仅有一条 SOA 记录。- `ns.test.com.`:**主域名服务器(Primary Name Server)**,负责维护 `test.com` 区域的解析记录。末尾的 `.` 表示这是**绝对域名**(完整域名,无需拼接后缀)。- `admin.test.com.`:**区域管理员邮箱**,格式是把 `@` 替换为 `.`,实际邮箱为 `admin@test.com`。末尾的 `.` 同样表示绝对域名。- 括号内的时间参数(按顺序):- `2024010101`:**序列号(Serial)**,用于主从 DNS 服务器的同步(每次更新区域文件时需递增,通常用 “日期 + 版本” 格式,如 2024 年 1 月 1 日第 1 次更新)。- `3600`:**刷新时间(Refresh)**,从服务器(Slave)多久(秒)查询一次主服务器以同步记录(这里是 3600 秒 = 1 小时)。- `1800`:**重试时间(Retry)**,如果从服务器刷新失败,多久后重试(这里是 1800 秒 = 30 分钟)。- `604800`:**过期时间(Expire)**,如果从服务器长期无法联系主服务器,多久后认为主服务器的记录 “失效”(这里是 604800 秒 = 7 天)。- `86400`:**最小 TTL(Minimum TTL)**,区域内所有记录的默认缓存时间(如果记录自身未指定 TTL,则用这个值,这里是 86400 秒 = 1 天)。### 2. 核心作用SOA 记录的本质是 “区域的元数据配置”,解决以下关键问题:- **主从同步**:通过 “序列号、刷新时间、重试时间、过期时间”,确保从服务器能及时同步主服务器的记录更新,且在主服务器不可用时能判断记录的有效性。
- **缓存管理**:通过 “最小 TTL” 控制 DNS 解析结果在客户端 / 递归服务器的缓存时长,平衡解析效率和记录更新的实时性。
- **责任归属**:明确区域的主服务器和管理员,便于 DNS 问题的溯源和管理。
步骤 3:启动 BIND 服务并验证
systemctl start named # 启动服务
systemctl enable named # 开机自启
dig @192.168.1.5 www.test.com # 用 dig 工具查询(@后是 DNS 服务器 IP)
# 若结果中“ANSWER SECTION”显示 www.test.com. 1D IN A 192.168.1.100,说明解析成功
3. 配置 “反向解析”:IP→域名
-
需求:让 DNS 服务器解析
192.168.1.100到www.test.com(常用于邮件服务器反垃圾邮件)。 -
核心逻辑:反向解析的 “区域名” 是 “IP 段的反向写法”(如
192.168.1.0/24网段,反向区域名是1.168.192.in-addr.arpa)。 -
步骤:类似正向解析,需在
named.rfc1912.zones中添加反向区域,再创建反向区域数据文件(记录类型用PTR,如100 IN PTR www.test.com.)。
4. DNS 查询工具:验证与排错
讲师需演示常用工具,让学员知道 “如何判断 DNS 解析是否正常”。
-
dig工具(最强大,推荐):-
基本用法:
dig @DNS服务器IP 域名(如dig @8.8.8.8 www.baidu.com)。 -
关键看 “ANSWER SECTION”(解析结果)、“SERVER”(查询的 DNS 服务器)。
-
-
nslookup工具(简单直观):-
基本用法:
nslookup 域名 DNS服务器IP(如nslookup www.test.com 192.168.1.5)。
-
-
host工具(轻量):-
基本用法:
host 域名 DNS服务器IP(如host www.baidu.com 114.114.114.114)。
-
5. 常见 DNS 问题排查:学员必学的排错思路
-
问题 1:域名解析失败(
dig无 ANSWER 段):-
排查步骤:1. 检查 DNS 服务器是否正常运行(
systemctl status named);2. 检查区域文件是否有语法错误(named-checkzone test.com /var/named/test.com.zone);3. 检查客户端是否能 ping 通 DNS 服务器(网络连通性)。
-
-
问题 2:解析结果是旧 IP(缓存问题):
-
排查步骤:1. 用
dig +norecurse @权威服务器IP 域名查询权威服务器,确认记录已更新;2. 客户端清空本地缓存,或等待 TTL 过期。
-
-
问题 3:反向解析失败:
-
排查步骤:检查反向区域名是否正确(IP 段反向写法)、PTR 记录的域名末尾是否加 “.”。
-
第二部分:核心知识点
一、递归查询 vs 迭代查询(DNS 解析的两种核心方式)
| 对比维度 | 递归查询(Recursive Query) | 迭代查询(Iterative Query) | 核心差异点 |
|---|---|---|---|
| 查询逻辑 | “我问你,你必须给我最终结果”(不告诉我下一步,只给答案) | “我问你,你告诉我‘下一步该问谁’”(不给最终答案,给指引) | 结果形式:最终答案 vs 下一步指引 |
| 发起方 | 客户端(用户电脑 / 手机) → 本地 DNS 服务器 | 本地 DNS 服务器 → 根服务器 → 顶级域服务器 → 权威服务器 | 发起角色:客户端→本地 DNS vs 本地 DNS→各级服务器 |
| 责任范围 | 接收查询的服务器需全程负责,直到拿到 IP 或报错 | 接收查询的服务器仅提供 “下一级服务器地址”,不负责最终结果 | 责任:全程负责 vs 仅指方向 |
| 适用场景 | 客户端对本地 DNS 的查询(用户无需关心中间过程) | 本地 DNS 对根、顶级域、权威服务器的查询 | 场景:用户侧查询 vs 服务器侧查询 |
| 示例 | 电脑问本地 DNS:“www.baidu.com 的 IP 是多少?”(等 IP) | 本地 DNS 问根服务器:“www.baidu.com 在哪查?”(等指引) | - |
二、DNS 服务器类型对比(按功能分工)
| 服务器类型 | 核心作用 | 存储内容 | 典型示例 / 特点 | 层级定位 |
|---|---|---|---|---|
| 根 DNS 服务器 | DNS 解析的 “起点”,指引到顶级域服务器 | 全球所有顶级域(.com/.cn/.org 等)的服务器地址 | 全球共 13 组(A-M),由 ICANN 管理 | 最高层级(顶层指引) |
| 顶级域(TLD)服务器 | 指引到二级域的权威服务器 | 该顶级域下所有二级域(如 xxx.com)的权威服务器地址 | .com 服务器、.cn 服务器 | 中层指引(顶级域管理) |
| 权威 DNS 服务器 | 管理某个域名的 “最终解析记录”,是解析的 “终点” | 具体域名的 A/CNAME/MX/PTR 等记录(如 baidu.com 的所有子域记录) | 百度的 ns1.baidu.com、阿里云 DNS 服务器 | 底层执行(记录存储) |
| 缓存 DNS 服务器 | 缓存其他服务器的解析结果,加速后续查询 | 临时存储解析结果(按 TTL 过期),不存原始记录 | 运营商 DNS(如 100.100.100.100)、公共 DNS(8.8.8.8) | 加速层(缓存优化) |
三、常用 DNS 记录类型对比(权威服务器存储的数据)
| 记录类型 | 核心作用 | 映射关系 | 使用场景 | 示例(区域文件中) |
|---|---|---|---|---|
| A 记录 | 将域名映射到 IPv4 地址 | 域名 → IPv4 | 最常用(Web 网站、服务器访问) | www IN A 180.101.49.12(www.baidu.com→IPv4) |
| AAAA 记录 | 将域名映射到 IPv6 地址 | 域名 → IPv6 | 支持 IPv6 网络的场景 | www IN AAAA 2400:da00::6666 |
| CNAME 记录 | 将 “别名域名” 映射到 “主域名”(避免重复配置) | 别名域名 → 主域名 | 多域名指向同一服务(如 blog→www、m→www) | blog IN CNAME www.baidu.com |
| MX 记录 | 指定域名的邮件服务器(收发邮件必备) | 域名 → 邮件服务器域名 | 企业邮箱、个人邮箱(如 @baidu.com 邮件) | baidu.com IN MX 10 mail.baidu.com(10 = 优先级) |
| NS 记录 | 指定管理该域名的 “权威 DNS 服务器” | 域名 → 权威 DNS 服务器域名 | 域名注册后必须配置(告诉全球 “谁管我的记录”) | baidu.com IN NS ns1.baidu.com |
| PTR 记录 | 将 IP 地址映射到域名(反向解析) | IPv4/IPv6 → 域名 | 邮件反垃圾、服务器身份验证(验证 IP 是否对应合法域名) | 100 IN PTR www.test.com.(192.168.1.100→域名) |
| SOA 记录 | 标记区域的 “起始授权信息”(每个区域必含) | 主服务器、管理员邮箱、TTL 等参数 | 区域文件的 “头部”,用于主从 DNS 同步 | test.com IN SOA ns.test.com. admin.test.com. (2024010101 3600 1800 604800 86400) |
四、正向解析 vs 反向解析(DNS 的两种查询方向)
| 对比维度 | 正向解析(Forward Resolution) | 反向解析(Reverse Resolution) | 核心差异点 |
|---|---|---|---|
| 查询方向 | 域名 → IP 地址(用户常用) | IP 地址 → 域名(服务器侧常用) | 方向:域名查 IP vs IP 查域名 |
| 区域名格式 | 直接用域名(如 test.com) | IP 段 “反向写法”+ 固定后缀(如 1.168.192.in-addr.arpa,对应 192.168.1.0/24 网段) | 区域名:原域名 vs IP 反向 + 后缀 |
| 核心记录类型 | A 记录(IPv4)、AAAA 记录(IPv6)、CNAME 记录 | PTR 记录(唯一用于反向解析的记录类型) | 记录类型:A/AAAA vs PTR |
| 主要用途 | 用户访问网站(输入域名→获取 IP)、服务器访问 | 邮件反垃圾、服务器身份验证(验证 IP 是否对应合法域名) | 用途:用户访问 vs 服务器验证 |
| 配置难度 | 简单(直接写域名和 IP 映射) | 稍复杂(需注意 IP 反向写法、PTR 记录格式) | 难度:简单 vs 稍复杂 |
第三部分:实验
实验1:正向解析
正向解析 FQND www.zhang.com. --->ip
通过 “部署 DNS 服务器 + 配置解析 + 验证查询” 巩固知识点,推荐用主流的 BIND(Berkeley Internet Name Domain,最常用的 DNS 服务器软件)。
1. BIND 服务器部署:基础环境搭建
-
步骤 1:安装 BIND(以 CentOS 为例):
yum install bind bind-utils -y # bind 是服务器端,bind-utils 是查询工具(dig/nslookup)

-
步骤 2:核心配置文件说明:
-
主配置文件:
/etc/named.conf(控制 BIND 服务的全局参数,如监听地址、允许查询的客户端)。
-
关键配置:
listen-on port 53 { any; };(监听所有地址的 53 端口,DNS 默认端口是 53,UDP 协议);allow-query { any; };(允许所有客户端查询)。
-
-
区域配置文件:
/etc/named.rfc1912.zones(定义 “正向解析区域” 和 “反向解析区域”,即 BIND 要管理哪些域名)。 -
区域数据文件:
/var/named/目录下(存储具体的 DNS 记录,如 A/CNAME/MX 记录,需手动创建)。
-
2. 配置 “正向解析”:域名FQDN→IP
-
需求:让 DNS 服务器解析
www.test.com到192.168.1.100。 -
步骤 1:在区域配置文件中添加正向区域
vim /etc/named.rfc1912.zones
# 在下面添加以下内容
zone "test.com." IN {type master; # 该服务器是 test.com 的“主权威服务器”file "test.com.zone"; # 区域数据文件路径(/var/named/ 下)
};
步骤 2:创建区域数据文件
cd /var/named/
cp -a named.localhost test.com.zone # 注意:一定加上-a选项复制模板文件,完整地保留原始文件的所有属性和结构
vim test.com.zone
# 修改为以下内容(注意:域名末尾需加“.”)
$TTL 1D # 默认 TTL 1 天
@ IN SOA ns.test.com. admin.test.com. (2024010101 ; 序列号(每次改记录需加 1,用于主从同步)1H ; 刷新时间(从服务器多久查一次主服务器)15M ; 重试时间(刷新失败后多久重试)1W ; 过期时间(从服务器多久后放弃同步)1D ) ; 最小缓存时间IN NS ns.test.com. ; NS 记录:test.com 的权威服务器是 ns.test.com
ns IN A 192.168.1.5 ; A 记录:ns.test.com 对应 IP(即当前 DNS 服务器 IP)
www IN A 192.168.1.100 ; A 记录:www.test.com 对应 IP
blog IN CNAME www.test.com ; CNAME 记录:blog 是 www 的别名

步骤 3:启动 BIND 服务并验证
systemctl start named # 启动服务
systemctl enable named # 开机自启
setenforce 0
systemctl stop firewalld
dig -x www.test.com

实验2:反向解析
zone "1.0.0.127.in-addr.arpa." IN {type master; # 区域类型:主区域(该服务器是此区域的权威服务器)file "named.loopback"; # 解析记录文件:存储该区域反向解析记录的文件路径allow-update { none; }; # 动态更新权限:不允许任何主机动态更新该区域的记录
};
反向解析的区域名需将 IP 地址 “反转” 后加上 .in-addr.arpa 后缀。例如,IP 地址 127.0.0.1 反转后为 1.0.0.127,因此对应的反向解析区域名为 1.0.0.127.in-addr.arpa,用于解析 127.0.0.1 对应的域名。
反向 DNS 解析区域名的命名规则—— 它的结构直接决定了覆盖的 IP 范围,一个反向区域名要么对应 “单个 IP”,要么对应 “某个网段”
反向 DNS 解析的本质是 “通过 IP 查域名”,而反向区域名的格式是 “IP 段反转后 + .in-addr.arpa”,其中 “IP 段的长度” 由 子网掩码 决定:
-
若子网掩码是 /24(最常见的 “网段”,如
192.168.1.0/24):反向区域名只包含 “IP 的前 3 段(反转)”,格式为[第三段].[第二段].[第一段].in-addr.arpa,覆盖整个 / 24 网段(256 个 IP)。示例:192.168.1.0/24对应的反向区域名是1.168.192.in-addr.arpa,负责解析该网段所有 IP(192.168.1.1~192.168.1.254)。 -
若子网掩码是 /32(“单个 IP”,如
127.0.0.1):反向区域名包含 “IP 的完整 4 段(反转)”,格式为[第四段].[第三段].[第二段].[第一段].in-addr.arpa,仅覆盖这一个 IP。示例:127.0.0.1/32对应的反向区域名是1.0.0.127.in-addr.arpa,只负责解析127.0.0.1这一个 IP。
前置准备:在虚拟机网卡中添加新的ip:128为主机

步骤 1:在区域配置文件中添加正向区域
vim /etc/named.rfc1912.zones
zone "60.168.192.in-addr.arpa." IN {type master;file "named.192.168.60.zone";
};

步骤 2:创建区域数据文件(注意文件内容书写,注意细节)
[root@shawn ~]# cd /var/named/
[root@shawn named]# cp -a named.loopback named.192.168.60.zone# 注意:一定加上-a选项复制模板文件,完整地保留原始文件的所有属性和结构
vim named.192.168.60.zone
$TTL 1D
@ IN SOA dns2.zhang.com. haha.admin. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimumNS dns2.zhang.com.
dns2.zhang.com. A 192.168.60.128
129 PTR xiaha.zhang.com.
130 PTR huhu.zhang.com.
131 PTR lele.zhang.com.
步骤3:测试
[root@shawn named]# setenforce 0
[root@shawn named]# systemctl disable firewalld
[root@shawn named]# systemctl restart named
[root@shawn named]# dig @192.168.60.128 129.60.168.192.in-addr.arpa PTR
[root@shawn named]# dig -x 192.168.60.129 130.60.168.192
[root@shawn named]# host 192.168.60.129 192.168.60.130
Using domain server:
Name: 192.168.60.130
Address: 192.168.60.130#53
Aliases: 129.60.168.192.in-addr.arpa domain name pointer xiaha.zhang.com.
实验3:主从同步-完全传输
主机:128
主:128
[root@server ~]# vim /etc/named.conflisten-on port 53 { any; };allow-query { any; };directory "/var/named";allow-transfer { 192.168.60.132; };zone "zhang.com." IN {type master;file "named.zhang.com";};
[root@shawn ~]# vim /var/named/named.zhang.com
$TTL 1D
@ IN SOA ns admin.zhang.com. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimumIN NS ns.zhang.com.IN NS slave.zhang.com.
ns IN A 192.168.60.128
slave IN A 192.168.60.128
mail IN A 192.168.60.132
www IN A 192.168.60.132
ftp IN CNAME www
w IN CNAME www


从机:132
[root@slave ~]# systemctl start named
[root@slave ~]# vim /etc/named.conf
ptions {listen-on port 53 { 192.168.60.132;};allow-query { any; };directory "/var/named";};
zone "zhang.com" IN {type slave;masters { 192.168.60.128; };file "slaves/named.zhang.com";
};

[root@fuji ~]# systemctl restart named
[root@fuji ~]# ll /var/named/slaves/
总用量 4
-rw-r--r--. 1 named named 442 11月 6 16:35 named.zhang.com
#测试:132

扩展:写反向解析域的主从同步
主机128:
在区域配置文件添加正向区域 ,在vim /etc/name.conf文件中添加

从机132:
在/etc/named.conf中添加zone文件(file命名要与上面正向区域区分)

重启服务[root@fuji ~]# systemctl restart named
从机132测试:

实验4:主从同步-增量传输
在主 DNS 服务器上获取完整的资源记录副本;同时,为了保证数据同步,主域名服务器有更新时也会及时通知辅助域
名服务器从而执行 增量区域传送
主机128:
在 vim /var/named/named.zhang.com中添加一条IN MX 10 mail.zhang.com.
然后重启服务systemctl restart named

从机132:
[root@fuji ~]# rndc refresh zhang.com
zone refresh queued
测试:
[root@shawn ~]# host w.zhang.com 192.168.60.128
Using domain server:
Name: 192.168.60.128
Address: 192.168.60.128#53
Aliases: w.zhang.com is an alias for www.zhang.com.
www.zhang.com has address 192.168.60.132

