DNS服务器配置与管理

DNS服务器配置与管理
槿鸢DNS服务器配置与管理
本实验记录了在 Linux 虚拟机上安装与配置 DNS 服务(BIND)的全过程,包括正向与反向解析的设置及常见错误排查。
一、实验目的
- 了解 DNS 的基本概念和作用
- 掌握 DNS 域名解析过程与查询模式
- 熟悉 BIND 服务器主要配置文件与参数
- 学会使用
named-checkconf、nslookup等命令进行测试与调试
二、实验环境
- 一台虚拟机作为服务器端
- 一台虚拟机作为客户端
- 软件环境:BIND + BIND-chroot
- 网络要求:两台主机在同一网段可互相 ping 通
三、安装与配置 BIND
1️⃣ 安装 DNS 服务
1 | yum install bind bind-chroot -y |
2️⃣ 修改主配置文件 /etc/named.conf
打开文件:
1 | vim /etc/named.conf |
按照以下步骤修改(带行号的是文件中对应位置):
- 13 行:
listen-on port 53 { };→ 在{ }中改为any; - 21 行:
allow-query { };→ 在{ }中改为any; - 33 行:
recursion yes; - 35 行:
dnssec-enable yes; - 36 行:
dnssec-validation no; - 59 行:添加
include "/etc/named.rfc1912.zones"; - 60 行:添加
include "/etc/named.root.key";
修改后效果示例:
1 | listen-on port 53 { any; }; |
四、配置区域文件
1️⃣ 编辑 /etc/named.rfc1912.zones
备份原配置:
1 | cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak |
然后编辑:
1 | vim /etc/named.rfc1912.zones |
在 42 行 添加如下内容:
1 | zone "mypt.edu.cn" IN { |
五、正向解析文件
1 | cd /var/named |
内容如下:
1 | 1D |
六、反向解析文件
1 | cp -p named.loopback 3.42.241.192.zone |
内容如下:
1 | 1D |
七、关闭防火墙与 SELinux(实验用)
1 | setenforce 0 |
八、启动与测试
1️⃣ 检查配置文件是否正确
1 | named-checkconf -z |
出现以下输出表示通过:
1 | zone localhost.localdomain/IN: loaded serial 0 |
2️⃣ 启动 DNS 服务
1 | systemctl restart named |
出现:
1 | Active: active (running) |
表示启动成功 ✅
九、客户端测试
- 在客户端网络设置中将 DNS 地址改为服务器地址:
192.241.42.3
- 使用
nslookup测试:
1 | nslookup 192.241.42.3 |
输出:
1 | 3.42.241.192.in-addr.arpa name = name.mypt.edu.cn. |
正反向解析均成功 ✅
十、踩坑记录与排查经验
在调试过程中,我遇到了几种典型错误:
❶ named 服务启动失败
查看状态:
1 | systemctl status named |
发现报错:
1 | /etc/named.rfc1912.zones:49: missing ';' before 'zone' |
解决方法:上一个 zone 块忘记写分号结尾,加上 }; 即可。
❷ 反向区域加载失败
执行:
1 | named-checkconf -z |
输出:
1 | zone 42.241.192.in-addr.arpa/IN: loading from master file failed: file not found |
→ 原因:文件名写错了,改为 3.42.241.192.zone 即可。
❸ has no NS records
1 | zone 42.241.192.in-addr.arpa/IN: has no NS records |
→ 原因:反向区文件缺少 NS 记录。
→ 解决:添加
1 | IN NS name.mypt.edu.cn. |
❹ connection timed out
客户端使用 nslookup 时:
1 | connection timed out; no servers could be reached |
→ 解决:
确认防火墙已关闭;
确认
/etc/named.conf中listen-on port 53 { any; };;重启服务:
1
systemctl restart named
✅ 最后验证
1 | named-checkconf -z |
出现:
1 | Active: active (running) |
即表示 DNS 服务器配置成功!
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果



















