893 字
4 分钟
DNS服务器配置与管理

DNS服务器配置与管理#

本实验记录了在 Linux 虚拟机上安装与配置 DNS 服务(BIND)的全过程,包括正向与反向解析的设置及常见错误排查。


一、实验目的#

  • 了解 DNS 的基本概念和作用
  • 掌握 DNS 域名解析过程与查询模式
  • 熟悉 BIND 服务器主要配置文件与参数
  • 学会使用 named-checkconf、nslookup 等命令进行测试与调试

二、实验环境#

  • 一台虚拟机作为服务器端
  • 一台虚拟机作为客户端
  • 软件环境:BIND + BIND-chroot
  • 网络要求:两台主机在同一网段可互相 ping 通

三、安装与配置 BIND#

1️⃣ 安装 DNS 服务#

Terminal window
yum install bind bind-chroot -y
pic1

2️⃣ 修改主配置文件 /etc/named.conf#

打开文件:

Terminal window
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";

修改后效果示例:

listen-on port 53 { any; };
allow-query { any; };
recursion yes;
dnssec-enable yes;
dnssec-validation no;
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
pic2 pic3 pic4

四、配置区域文件#

1️⃣ 编辑 /etc/named.rfc1912.zones#

备份原配置:

Terminal window
cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak

然后编辑:

Terminal window
vim /etc/named.rfc1912.zones

在 42 行 添加如下内容:

zone "mypt.edu.cn" IN {
type master;
file "mypt.edu.cn.zone";
allow-update { none; };
};
zone "42.241.192.in-addr.arpa" IN { // 这里网段地址是反向的 192.241.42
type master;
file "3.42.241.192.zone";
allow-update { none; };
};
pic5

五、正向解析文件#

Terminal window
cd /var/named
cp -p named.localhost mypt.edu.cn.zone # cp -p 保留源文件权限
vim mypt.edu.cn.zone

内容如下:

$TTL 1D
@ IN SOA @ name.mypt.edu.cn. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS name.mypt.edu.cn.
IN MX 10 mail.mypt.edu.cn.
name IN A 192.241.42.3
mail IN A 192.241.42.20
www IN A 192.241.42.10
ftp IN A 192.241.42.30
gw IN A 192.241.42.254
web IN CNAME www.mypt.edu.cn.
pic6

六、反向解析文件#

Terminal window
cp -p named.loopback 3.42.241.192.zone
vim /var/named/3.42.241.192.zone

内容如下:

$TTL 1D
@ IN SOA @ name.mypt.edu.cn. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS name.mypt.edu.cn.
IN MX 10 mail.mypt.edu.cn.
3 IN PTR name.mypt.edu.cn.
10 IN PTR www.mypt.edu.cn.
20 IN PTR mail.mypt.edu.cn.
30 IN PTR ftp.mypt.edu.cn.
pic7

七、关闭防火墙与 SELinux(实验用)#

Terminal window
setenforce 0
systemctl stop firewalld

八、启动与测试#

1️⃣ 检查配置文件是否正确#

Terminal window
named-checkconf -z

出现以下输出表示通过:

zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone mypt.edu.cn/IN: loaded serial 0
zone 42.241.192.in-addr.arpa/IN: loaded serial 0

2️⃣ 启动 DNS 服务#

Terminal window
systemctl restart named
systemctl enable named
systemctl status named

出现:

Active: active (running)

表示启动成功 ✅


九、客户端测试#

  • 在客户端网络设置中将 DNS 地址改为服务器地址: 192.241.42.3
pic8
  • 使用 nslookup 测试:
Terminal window
nslookup 192.241.42.3

输出:

3.42.241.192.in-addr.arpa name = name.mypt.edu.cn.
pic9

正反向解析均成功 ✅


十、踩坑记录与排查经验#

在调试过程中,我遇到了几种典型错误:

❶ named 服务启动失败#

查看状态:

Terminal window
systemctl status named
pic10

发现报错:

/etc/named.rfc1912.zones:49: missing ';' before 'zone'

解决方法:上一个 zone 块忘记写分号结尾,加上 }; 即可。


❷ 反向区域加载失败#

执行:

Terminal window
named-checkconf -z
pic11

输出:

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#

zone 42.241.192.in-addr.arpa/IN: has no NS records

→ 原因:反向区文件缺少 NS 记录。 → 解决:添加

IN NS name.mypt.edu.cn.

❹ connection timed out#

客户端使用 nslookup 时:

connection timed out; no servers could be reached

→ 解决:

  • 确认防火墙已关闭;

  • 确认 /etc/named.conf 中 listen-on port 53 { any; };;

  • 重启服务:

    Terminal window
    systemctl restart named

✅ 最后验证#

Terminal window
named-checkconf -z
systemctl restart named
systemctl status named
pic12

出现:

Active: active (running)

即表示 DNS 服务器配置成功!

DNS服务器配置与管理
https://blog.ipox.cn/posts/zh-cn/dns-config/
作者
槿鸢
发布于
2025-11-11
许可协议
CC BY-NC-SA 4.0

分享文章

生成精美分享图或复制链接,与更多人分享本文。

继续阅读

沿着主题读

基于共同的标签与分类

换条路线

从其他文章中稳定抽取

最后更新于 ,距今已过 345 天

部分内容可能已过时