CentOS 6 作为一款经典的企业级操作系统,其内置的 BIND(Berkeley Internet Name Domain)服务是实现 DNS(域名系统)部署的重要工具,通过配置 BIND 主从架构,可以有效提升 DNS 服务的可用性、负载均衡和数据安全性,本文将详细介绍在 CentOS 6 系统中搭建 BIND 主从服务器的具体步骤、核心配置及注意事项。

环境准备与安装基础软件
在开始配置前,需确保服务器满足基本条件:主从服务器均安装 CentOS 6 操作系统,具备静态 IP 地址,并确保服务器之间网络互通(可通过 ping 测试验证),需关闭防火墙或开放 DNS 相关端口(默认为 TCP/UDP 53),临时关闭防火墙可使用 service iptables stop,若需永久关闭则需编辑 /etc/sysconfig/iptables 文件并执行 service iptables restart。
安装 BIND 软件包:
yum install -y bind bind-utils
安装完成后,检查 BIND 服务状态:
service named status
若未运行,可通过 service named start 启动,并使用 chkconfig named on 设置开机自启。
主服务器配置
主服务器负责 DNS 区域数据的权威管理,所有域名记录的修改均在主服务器上进行,然后同步至从服务器。
定义区域文件
编辑 BIND 主配置文件 /etc/named.conf,在 options 语句后添加正向与反向区域声明,为域名 example.com(假设主服务器 IP 为 168.1.100)配置区域:
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update { none; };
allow-transfer { 192.168.1.101; }; # 允许从服务器 IP 同步
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.zone";
allow-update { none; };
allow-transfer { 192.168.1.101; };
}; allow-transfer 指定从服务器 IP,确保只有授权从服务器可同步数据。
创建正向与反向区域文件
区域文件存储于 /var/named/ 目录,需确保文件权限为 named:named 且所有者为 named。

正向区域文件 example.com.zone:
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2025051501 ; 序列号,修改记录时需递增
3600 ; 刷新间隔(秒)
1800 ; 重试间隔(秒)
604800 ; 过期时间(秒)
86400 ; 否定缓存TTL(秒)
)
@ IN NS ns1.example.com.
@ IN NS ns2.example.com. # 从服务器域名记录(可选)
ns1 IN A 192.168.1.100
ns2 IN A 192.168.1.101 # 从服务器 IP
www IN A 192.168.1.102 反向区域文件 168.1.zone:
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2025051501
3600
1800
604800
86400
)
@ IN NS ns1.example.com.
100 IN PTR ns1.example.com.
101 IN PTR ns2.example.com.
102 IN PTR www.example.com. 重启主服务并检查配置
修改完成后,重启 BIND 服务:
service named restart
使用 named-checkzone 检查区域文件语法:
named-checkzone example.com /var/named/example.com.zone named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.zone
若提示 OK,则配置正确。
从服务器配置
从服务器通过主服务器同步区域数据,提供冗余解析服务,减轻主服务器负载。
修改从服务器主配置文件
编辑从服务器的 /etc/named.conf,添加与主服务器相同的区域声明,但需修改 type 为 slave,并指定主服务器 IP:
zone "example.com" IN {
type slave;
file "slaves/example.com.zone"; # 同步后文件存储目录
masters { 192.168.1.100; }; # 主服务器 IP
};
zone "1.168.192.in-addr.arpa" IN {
type slave;
file "slaves/192.168.1.zone";
masters { 192.168.1.100; };
}; 确保 slaves 目录存在且权限正确(默认由 BIND 自动创建)。

重启从服务并验证同步
重启从服务器 BIND 服务:
service named restart
检查 /var/named/slaves/ 目录下是否成功生成同步的区域文件,并使用 dig 命令测试解析:
dig @192.168.1.101 www.example.com
若返回正确的解析结果,说明同步成功。
安全与优化建议
- 限制查询来源:在主服务器
/etc/named.conf的options段落中添加allow-query { localhost; 192.168.1.0/24; };,仅允许本地及指定网段查询。 - 启用 DNSSEC(可选):通过
dnssec-keygen生成密钥对,并在区域配置中添加 DNSSEC 记录,增强域名解析安全性。 - 日志监控:修改
/etc/named.conf中的logging选项,将日志输出至指定文件(如/var/log/named.log),便于排查问题。 - 序列号管理:修改区域文件时务必递增序列号,否则从服务器无法同步更新。
FAQs
Q1:如何判断 BIND 主从服务器是否正常同步?
A:可通过以下方式验证:
- 在从服务器上执行
rndc zone example.com status,查看SOA serial是否与主服务器区域文件中的序列号一致; - 检查从服务器
/var/named/slaves/目录下是否存在区域文件,文件内容是否与主服务器匹配; - 使用
dig命令从从服务器查询域名,若能返回正确结果则说明同步正常。
Q2:主服务器区域文件修改后,从服务器未同步怎么办?
A:可按以下步骤排查:
- 确认主服务器
allow-transfer配置是否包含从服务器 IP; - 检查主从服务器防火墙是否开放 53 端口,网络是否互通;
- 在主服务器上执行
rndc retransfer example.com强制触发重传,或使用rndc reload重载配置; - 检查从服务器日志(默认位于
/var/log/messages),查看是否有同步失败的具体错误信息(如权限不足、网络超时等)。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复