CentOS 7 下 BIND DNS 主从服务器配置指南
在 Linux 环境中,BIND(Berkeley Internet Name Domain)是最常用的 DNS 服务器软件之一,通过配置主从 DNS 服务器,可以提高 DNS 解析的可靠性和负载均衡能力,本文将以 CentOS 7 为例,详细介绍 BIND 主从服务器的安装、配置及维护过程。

安装 BIND 软件
在 CentOS 7 上,可以通过 YUM 包管理器轻松安装 BIND,更新系统软件包:
sudo yum update -y
然后安装 BIND 及相关工具:
sudo yum install bind bind-utils -y
安装完成后,启动 BIND 服务并设置开机自启:
sudo systemctl start named sudo systemctl enable named
主服务器配置
主服务器负责维护 DNS 区域数据的权威记录,并自动将区域文件同步到从服务器。
编辑主配置文件
打开 BIND 主配置文件/etc/named.conf,确保以下内容正确配置:options { listen-on port 53 { any; }; directory "/var/named"; allow-query { any; }; allow-transfer { 192.168.1.100; }; // 从服务器 IP }; zone "example.com" IN { type master; file "example.com.zone"; allow-update { none; }; };allow-transfer指定了允许接收区域数据的从服务器 IP 地址。创建区域文件
在/var/named目录下创建区域文件example.com.zone:sudo cp /var/named/named.localhost /var/named/example.com.zone sudo chown named:named /var/named/example.com.zone
编辑区域文件,添加 DNS 记录:
$TTL 1D @ IN SOA ns1.example.com. admin.example.com. ( 2025081501 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum IN NS ns1.example.com. IN MX 10 mail.example.com. ns1 IN A 192.168.1.10 mail IN A 192.168.1.20 www IN A 192.168.1.30注意:
serial号必须递增,以便从服务器识别更新。
重启 BIND 服务
sudo systemctl restart named
从服务器配置
从服务器从主服务器同步区域数据,并提供冗余和负载分担。
编辑主配置文件
在从服务器上修改/etc/named.conf,添加以下区域配置:zone "example.com" IN { type slave; file "slaves/example.com.zone"; masters { 192.168.1.10; }; // 主服务器 IP };创建数据目录
确保从服务器有权限写入区域文件:sudo mkdir -p /var/named/slaves sudo chown named:named /var/named/slaves
启动并同步数据
重启 BIND 服务后,从服务器会自动从主服务器同步区域文件:sudo systemctl restart named
检查
/var/named/slaves目录,确认区域文件已生成。
验证主从同步
检查主服务器日志
查看主服务器日志/var/log/messages,确认从服务器请求已处理:tail -f /var/log/messages | grep named
测试 DNS 解析
使用dig命令查询从服务器:dig @192.168.1.100 www.example.com
如果返回正确结果,说明同步成功。

常见问题维护
权限问题
确保区域文件权限正确(通常为640,属主为named):sudo chmod 640 /var/named/example.com.zone sudo chown named:named /var/named/example.com.zone
防火墙设置
如果无法同步,检查防火墙规则:sudo firewall-cmd --permanent --add-service=dns sudo firewall-cmd --reload
日志排查
若同步失败,查看 BIND 错误日志:tail -f /var/log/named.log
FAQs
Q1: 如何手动触发从服务器同步区域数据?
A1: 可以使用 rndc 命令手动刷新区域:
sudo rndc refresh example.com
或直接重启 BIND 服务:
sudo systemctl restart named
Q2: 主从服务器时间不同步会影响 DNS 吗?
A2: 会影响,如果主从服务器时间差异过大,可能导致序列号检查失败,从而阻止区域同步,建议使用 NTP(Network Time Protocol)同步时间:
sudo yum install ntp -y sudo systemctl start ntpd sudo systemctl enable ntpd
通过以上步骤,您可以在 CentOS 7 上成功部署 BIND 主从 DNS 服务器,确保 DNS 服务的稳定性和可靠性。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复