CentOS虚拟机中配置DNS主从,需先安装DNS服务,然后分别配置主服务器和从服务器的相关文件及
CentOS虚拟机DNS主从配置详解
准备工作
环境要求
- 操作系统:CentOS 7或更高版本(确保两台虚拟机均为相同或兼容版本)
- 网络模式:桥接模式(确保主从服务器能互通,且客户端可访问)
- 软件包:
bind、bindutils、bindchroot(提供DNS服务及安全隔离) - 关闭防火墙与SELinux(可选,但推荐):
systemctl stop firewalld # 关闭防火墙 setenforce 0 # 关闭SELinux
安装BIND服务
在主从服务器上执行:
yum install y bind bindutils bindchroot
主DNS服务器配置
修改主配置文件 /etc/named.conf
编辑文件并设置以下参数:
options {
listenon port 53 { 192.168.1.10; }; # 主服务器IP
listenonv6 port 53 { ::1; };
directory "/var/named";
allowquery { any; }; # 允许所有IP查询
};
关键项:
listenon:指定监听的IP地址(改为实际主服务器IP)。allowquery:设置为any以允许所有客户端查询。
配置正向解析区域
编辑 /etc/named.rfc1912.zones,添加以下内容:
zone "example.com" IN {
type master;
file "example.com.zone"; # 区域文件路径
allowupdate { none; };
};
区域文件示例 (/var/named/example.com.zone):
$TTL 1D
@ IN SOA @ rname.invalid. (
2025072101 ; Serial(格式:YYYYMMDDNN)
1D ; Refresh
1H ; Retry
1W ; Expire
3H ) ; Minimum TTL
NS @
A 192.168.1.10 # 主服务器IP
www IN A 192.168.1.10 # www.example.com解析
ftp IN A 192.168.1.10 # ftp.example.com解析
* IN A 192.168.1.10 # 泛域名解析(如mail.example.com)
配置反向解析区域
在 /etc/named.rfc1912.zones 中添加:
zone "1.168.192.inaddr.arpa" IN {
type master;
file "1.168.192.zone"; # 反向区域文件
allowupdate { none; };
};
反向区域文件示例 (/var/named/1.168.192.zone):
$TTL 1D
@ IN SOA example.com. rname.invalid. (
2025072101
1D
1H
1W
3H )
NS @
10 IN PTR www.example.com. # 192.168.1.10的PTR记录
检查配置并启动服务
namedcheckconf # 检查主配置文件语法 namedcheckzone example.com /var/named/example.com.zone # 检查区域文件 systemctl start named # 启动DNS服务 systemctl enable named # 设置开机自启
从DNS服务器配置
修改主配置文件 /etc/named.conf
编辑文件并设置以下参数:
options {
listenon port 53 { 192.168.1.20; }; # 从服务器IP
listenonv6 port 53 { ::1; };
directory "/var/named";
allowquery { any; };
};
配置正向解析区域为从属模式
在 /etc/named.rfc1912.zones 中添加:
zone "example.com" IN {
type slave;
masters { 192.168.1.10; }; # 主服务器IP
file "slaves/example.com.zone"; # 从服务器区域文件路径
allownotify { 192.168.1.10; }; # 允许主服务器通知
};
配置反向解析区域为从属模式
在 /etc/named.rfc1912.zones 中添加:
zone "1.168.192.inaddr.arpa" IN {
type slave;
masters { 192.168.1.10; };
file "slaves/1.168.192.zone";
allownotify { 192.168.1.10; };
};
检查配置并启动服务
namedcheckconf systemctl start named systemctl enable named
验证与测试
主从同步验证
- 在主服务器修改区域文件(例如新增记录):
echo "\@ IN MX 10 mail.example.com." >> /var/named/example.com.zone systemctl restart named # 重启服务以应用更改
- 在从服务器查看同步结果:
cat /var/named/slaves/example.com.zone # 应包含新增的MX记录
客户端测试
编辑客户端的 /etc/resolv.conf,添加从服务器IP:
nameserver 192.168.1.20 # 从服务器IP
使用 nslookup 测试解析:
nslookup www.example.com # 应返回192.168.1.10 nslookup 192.168.1.10 # 应返回www.example.com
常见问题与解答
Q1:如何确保主从服务器之间的网络连通性?
A1:需确保以下条件:
- 主从服务器的TCP和UDP 53端口互通(使用
telnet 192.168.1.10 53测试)。 - 防火墙允许DNS流量(如开启防火墙,需执行
firewallcmd permanent addservice=dns)。 - 主从服务器的
/etc/resolv.conf指向正确的DNS地址。
Q2:为什么从服务器无法同步主服务器的更新?
A2:可能原因及解决方案:
| 问题 | 原因 | 解决方案 |
||||
| 同步失败 | 主服务器未配置alsonotify或从服务器未配置allownotify | 在主服务器的named.conf中添加alsonotify { 从服务器IP; } |
| 区域文件错误 | 主服务器区域文件语法错误 | 使用namedcheckzone检查并修复 |
| 网络阻塞 | 主从服务器间TCP/UDP 53端口不通 | 检查防火墙规则并开放端口 |
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/230759.html