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.comwwwbaidu.com 的子域,可自定义)

      • 主机名:www(对应具体服务器,如 Web 服务器)

  • 核心规则:每个层级的域名由 "." 分隔,层级越靠右,范围越广(根域覆盖全球,子域仅属于某个组织)。

2. DNS 解析流程:从 "输入域名" 到 "拿到 IP" 的全步骤

这是难点,需分 "递归查询" 和 "迭代查询",用 "用户→本地 DNS→根服务器→顶级域服务器→权威服务器" 的交互过程拆解。

  • 关键概念区分:

    • 递归查询:"我问你,你必须给我结果"(如用户的本地 DNS 向根服务器查询时,根服务器不会直接返回 IP,而是告诉本地 DNS"去问 .com 顶级域服务器"------ 这不是递归,是迭代);正确场景:用户电脑 / 手机向 "本地 DNS 服务器" 发起的查询是递归(用户只等结果,不管中间过程)。

    • 迭代查询:"我问你,你告诉我下一步该问谁"(如本地 DNS 向根服务器、顶级域服务器、权威服务器的查询,是迭代过程)。

  • 完整解析流程(以 www.baidu.com 为例):

    1. 用户在浏览器输入 www.baidu.com,电脑先查 "本地缓存"(如操作系统缓存、浏览器缓存),有则直接返回 IP,无则下一步。

    2. 电脑向 "本地 DNS 服务器"(通常是路由器分配的 ISP DNS,如电信 / 联通的 DNS)发起递归查询 :"请给我 www.baidu.com 的 IP"。

    3. 本地 DNS 先查自身缓存,有则返回;无则向 "根服务器" 发起迭代查询 :"www.baidu.com 的 IP 在哪?"。

    4. 根服务器回复:"我不存具体 IP,但 .com 顶级域服务器的地址是 X.X.X.X,你去问它"。

    5. 本地 DNS 向 .com 顶级域服务器发起迭代查询:"www.baidu.com 的 IP 在哪?"。

    6. 顶级域服务器回复:"baidu.com 的权威服务器地址是 Y.Y.Y.Y,你去问它"(权威服务器是 "管理 baidu.com 域名记录的服务器",由百度自己或服务商维护)。

    7. 本地 DNS 向 baidu.com 权威服务器发起迭代查询:"www.baidu.com 的 IP 是多少?"。

    8. 权威服务器查询自身的 "域名解析记录",返回 www.baidu.com 对应的 IP(如 180.101.49.12)。

    9. 本地 DNS 缓存该 IP(按 TTL 时间保存),并将 IP 递归返回给用户电脑。

    10. 用户电脑用 IP 访问 www.baidu.com,完成网页加载。

3. DNS 记录类型:DNS 服务器 "存什么数据"

这是后续配置 DNS 服务器的基础,需讲清 "常用记录的作用 + 格式",学员后续写区域文件会直接用到。

记录类型 作用 示例(区域文件中)
A 记录 将域名映射到 IPv4 地址(最常用) www IN A 180.101.49.12www.baidu.com 对应 IPv4)
AAAA 记录 将域名映射到 IPv6 地址 www IN AAAA 2400:da00::6666www.baidu.com 对应 IPv6)
CNAME 记录 将域名 "别名" 映射到 "主域名"(避免重复配置) blog IN CNAME www.baidu.com(访问 blog.baidu.com 等同于访问 www.baidu.com
MX 记录 指定域名的邮件服务器(用于收发邮件) baidu.com IN MX 10 mail.baidu.com10 是优先级,数字越小优先级越高)
NS 记录 指定管理该域名的 "权威 DNS 服务器" baidu.com IN NS ns1.baidu.combaidu.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 服务器:

    • 作用:存储 "该顶级域下所有二级域的权威服务器地址"(如 .com TLD 服务器存所有 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.com192.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.100www.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.12www.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.com192.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       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      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.conf
	listen-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       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN  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 ![](https://i-blog.csdnimg.cn/direct/a902b93aaf2f46a7a0784b7ec040fb59.png) ![](https://i-blog.csdnimg.cn/direct/9d883c4504e04352b05b22ed9fe9f898.png) 扩展:写反向解析域的主从同步 主机128: 在区域配置文件添加正向区域 ,在vim /etc/name.conf文件中添加 ![](https://i-blog.csdnimg.cn/direct/fb1d043494dd492381d33542c140dc7f.png) 从机132: 在/etc/named.conf中添加zone文件(file命名要与上面正向区域区分) ![](https://i-blog.csdnimg.cn/direct/30935d7e2c514cf1be3706eb6c330bbe.png) 重启服务\[root@fuji \~\]# systemctl restart named 从机132测试: ![](https://i-blog.csdnimg.cn/direct/41d85296a045408b80ab59d099e83c13.png) #### 实验4:主从同步-增量传输 在主 DNS 服务器上获取完整的资源记录副本;同时,为了保证数据同步,主域名服务器有更新时也会及时通知辅助域 名服务器从而执行 **增量区域传送** 主机128: 在 vim /var/named/named.zhang.com中添加一条IN MX 10 mail.zhang.com. 然后重启服务systemctl restart named ![](https://i-blog.csdnimg.cn/direct/ee24d42b4e294760af44e998fb10f7cc.png) 从机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 ![](https://i-blog.csdnimg.cn/direct/4542b57ad87845e8b8c1cebdf655856f.png)

相关推荐
☆璇2 小时前
【Linux】Reactor反应堆模式
linux·运维·服务器·网络
七七七七072 小时前
【计算机网络】UDP协议深度解析:从报文结构到可靠性设计
服务器·网络·网络协议·计算机网络·算法·udp
拾心212 小时前
【云运维】zabbix管理(续)
运维·zabbix
半桔2 小时前
【IO多路转接】epoll 高性能网络编程:从底层机制到服务器实战
linux·运维·服务器·网络·php
刘某的Cloud2 小时前
openvswitch-ovs-流表
linux·运维·openstack·系统·neutron·openvswitch
Yiiz.2 小时前
RHCE练习
运维
物联网软硬件开发-轨物科技2 小时前
【轨物方案】轨物科技低压综保智慧运维方案:以AIoT重塑电气安全与能效新范式
运维·科技·安全
恒创科技HK2 小时前
香港100G高防服务器的防御力如何?
运维·服务器
Hoxy.R2 小时前
iSCSI 磁盘扩容后节点不刷新容量的问题解决(StarWind + Linux)
linux·运维·服务器