配置与管理DNS服务器实验报告
实验目的与背景
DNS(Domain Name System)是互联网的核心基础服务,负责将用户易记的域名(如www.example.com)转换为机器可识别的IP地址(如192.168.1.100),是网站访问、邮件传输等网络服务的基石,本实验旨在通过实际操作,掌握DNS服务器的配置与管理技能,包括正向/反向解析区域、区域传输、DNS转发器的设置,以及服务测试与故障排查,加深对DNS工作原理的理解。

实验环境搭建
硬件与软件环境
- 硬件:1台虚拟机(如VMware或VirtualBox),支持多网卡配置(模拟局域网)。
- 操作系统:CentOS 8 Stream(64位),内核版本5.x及以上。
- 网络拓扑:单机模拟局域网,包含DNS主服务器(IP:192.168.1.100)、辅助服务器(IP:192.168.1.101)及测试主机(IP:192.168.1.102)。
IP地址规划(见表1)
| 设备类型 | IP地址 | 子网掩码 | 网关 |
|---|---|---|---|
| DNS主服务器 | 168.1.100 | 255.255.0 | 168.1.1 |
| DNS辅助服务器 | 168.1.101 | 255.255.0 | 168.1.1 |
| 测试主机 | 168.1.102 | 255.255.0 | 168.1.1 |
实验步骤详解
安装DNS服务组件
在CentOS 8中,通过yum命令安装BIND(Berkeley Internet Name Domain)及辅助工具:
sudo yum install -y bind bind-utils
安装完成后,验证服务状态并启用:
systemctl status named # 检查服务是否运行 systemctl enable named # 设置开机自启动
配置正向解析区域(主区域)
正向解析区域负责将域名解析为IP地址,需创建主区域文件(/etc/named/zones/db.example.com)。
步骤:
- 编辑区域文件,添加基础配置($TTL、$ORIGIN、SOA记录、NS记录、主机记录):
$TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2026100101 ; 序列号 3600 ; 刷新时间(秒) 1800 ; 重试时间(秒) 604800 ; 过期时间(秒) 86400 ) ; 最小TTL(秒) @ IN NS ns1.example.com. ns1 IN A 192.168.1.100 www IN A 192.168.1.100 mail IN A 192.168.1.101 - 保存文件后,使用
named-checkzone验证语法:sudo named-checkzone example.com /etc/named/zones/db.example.com
配置反向解析区域(主区域)
反向解析区域负责将IP地址解析为域名,需创建反向区域文件(/etc/named/zones/db.192.168.1,对应IP段192.168.1.0/24)。
步骤:
- 编辑区域文件,添加$TTL、$ORIGIN、SOA记录、NS记录及PTR记录:
$TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2026100101 3600 1800 604800 86400 ) @ IN NS ns1.example.com. 100 IN PTR ns1.example.com. 100 IN PTR www.example.com. 101 IN PTR mail.example.com. - 同样使用
named-checkzone验证语法。
配置区域传输(辅助服务器)
区域传输用于将主服务器的区域数据复制到辅助服务器,提高DNS服务的冗余性。
步骤:

- 主服务器配置:在正向解析区域文件(
db.example.com)中添加允许传输的IP范围:allow-transfer { 192.168.1.101; }; # 允许辅助服务器(IP:192.168.1.101)复制区域 - 辅助服务器配置:使用
rndc命令同步区域数据:sudo rndc transfer example.com # 强制从主服务器获取区域数据
配置DNS转发器
当本地DNS服务器无法解析的域名时,可通过转发器将请求转发至外部DNS服务器(如Google的8.8.8.8)。
步骤:
- 编辑主配置文件(
/etc/named.conf),在options部分添加转发器配置:options { directory "/var/named"; forwarders { 8.8.8.8; # 外部DNS服务器IP 8.8.4.4; }; forward only; # 仅使用转发器,不进行递归查询 recursion yes; # 启用递归查询(可选) }; - 重启named服务使配置生效:
sudo systemctl restart named
测试DNS服务功能
使用dig和nslookup工具验证配置效果:
(1)正向解析测试
dig www.example.com @192.168.1.100 A
预期输出:
;; ANSWER SECTION:
www.example.com. 86400 IN A 192.168.1.100(2)反向解析测试
dig -x 192.168.1.100 @192.168.1.100 PTR
预期输出:
;; ANSWER SECTION:
100.1.168.192.in-addr.arpa. 86400 IN PTR ns1.example.com.(3)区域传输测试(辅助服务器)
在辅助服务器(192.168.1.101)上执行:
dig @192.168.1.100 example.com AXFR
预期输出:
;; ANSWER SECTION:
example.com. 86400 IN SOA ns1.example.com. admin.example.com. ( ... )(4)转发器测试
在测试主机(192.168.1.102)上查询外部域名:

nslookup google.com 192.168.1.100
预期输出:
Server: 192.168.1.100
Address: 192.168.1.100#53
Non-authoritative answer:
google.com. 300 IN A 142.250.190.1实验结果与问题分析
实验结果
- 正向/反向解析区域配置成功,
dig命令返回正确结果。 - 区域传输功能正常,辅助服务器能获取主区域数据更新。
- 转发器配置生效,无法解析的域名通过外部DNS服务器完成查询。
问题与解决
- 问题1:区域文件语法错误导致named服务无法启动。
解决:检查区域文件中的$ORIGIN是否正确(如正向解析区域需以example.com.,使用named-checkzone验证语法。 - 问题2:防火墙阻止区域传输。
解决:在CentOS中开放53端口(TCP/UDP),命令为:sudo firewall-cmd --add-port=53/tcp --permanent sudo firewall-cmd --add-port=53/udp --permanent sudo firewall-cmd --reload
通过本次实验,系统掌握了DNS服务器的核心配置流程:从正向/反向解析区域的创建,到区域传输的权限管理,再到转发器的应用,最终通过测试验证了服务的正确性,理解了DNS解析的递归查询与迭代查询流程,以及区域传输和转发器在提升服务可靠性和扩展性中的作用,实验过程中遇到的问题(如语法错误、防火墙配置)也通过排查解决,进一步提升了实际操作能力。
FAQs
问题1:正向解析区域和反向解析区域在DNS服务中分别起什么作用?
解答:正向解析区域(Forward Zone)用于将域名解析为IP地址,是用户日常访问网站时使用的核心功能(如访问www.example.com时,DNS将域名转换为IP);反向解析区域(Reverse Zone)用于将IP地址解析为域名,主要用于邮件服务器(如SMTP)的域名验证(SPF记录)和故障排查(如通过IP查域名),两者是镜像关系,正向解析的每个主机记录(A记录)在反向解析中对应一个PTR记录,反之亦然。
问题2:如何解决DNS区域传输失败的问题?
解答:区域传输失败通常由以下原因导致:
- 允许传输的IP范围未配置:主服务器未在区域文件中添加
allow-transfer指令(如未允许辅助服务器IP复制区域)。 - 防火墙阻止通信:辅助服务器与主服务器的防火墙规则阻止了53端口的通信。
- 区域文件版本不一致:主服务器和辅助服务器的区域文件修改后未更新。
解决方法:
- 在主区域文件(如
db.example.com)中添加allow-transfer { 辅助服务器IP; };。 - 检查并开放防火墙端口(如CentOS中用
firewall-cmd命令),允许辅助服务器的IP访问53端口。 - 确保主服务器和辅助服务器的区域文件内容一致,使用
rndc transfer命令强制同步区域数据。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/216016.html


