CentOS 7 BIND反向DNS解析故障求助
排查CentOS 7 BIND反向解析失败问题
我帮你捋捋CentOS 7上BIND反向解析失效的常见坑,这些都是新手容易忽略的细节:
确认反向区域在
named.conf中正确声明
你得先检查/etc/named.conf里有没有添加反向区域的配置条目。比如你的服务器网段是192.168.1.x,那反向区域名要写成1.168.192.in-addr.arpa,配置格式大概是:zone "1.168.192.in-addr.arpa" IN { type master; file "example.com.rev"; # 这里填你的反向解析文件名 allow-update { none; }; };注意网段的反向写法别搞反了,比如10.0.0.x的反向区域是
0.0.10.in-addr.arpa。检查反向解析文件的格式是否正确
反向解析文件里的PTR记录很容易写错:- 每条记录的前缀是IP的最后一段,比如192.168.1.10对应的前缀是
10 - PTR记录的目标主机名必须带结尾的点(.),不然会自动拼接
$ORIGIN的后缀,导致解析错误,正确格式示例:$TTL 86400 @ IN SOA ns.example.com. admin.example.com. ( 2024052001 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ; Minimum TTL ) @ IN NS ns.example.com. 10 IN PTR ansible-node1.example.com.
另外要确保文件里的
$ORIGIN和你在named.conf里声明的反向区域名一致。- 每条记录的前缀是IP的最后一段,比如192.168.1.10对应的前缀是
验证文件权限与SELinux上下文
CentOS 7里BIND的运行用户是named,所以/var/named/下的反向解析文件必须满足:- 权限至少是
640,避免权限不足读取失败 - 所属用户组是
named:named
可以用下面的命令修复:
chown named:named /var/named/你的反向解析文件名 chmod 640 /var/named/你的反向解析文件名 restorecon -Rv /var/named/ # 修复SELinux上下文- 权限至少是
检查配置语法并重启服务
每次修改配置后,先验证语法是否正确:named-checkconf /etc/named.conf # 检查主配置 named-checkzone 1.168.192.in-addr.arpa /var/named/你的反向解析文件名 # 检查反向区域文件如果没有报错,再重启named服务生效:
systemctl restart named systemctl enable named # 确保开机自启用命令测试反向解析
最后用dig或者nslookup直接测试,比如:dig -x 192.168.1.10 @localhost # 指定本地DNS服务器测试 nslookup 192.168.1.10 localhost看输出里的ANSWER SECTION有没有对应的PTR记录,如果没有,再回头检查前面的配置。
内容的提问来源于stack exchange,提问作者wabbajack001
相关产品推荐
相关产品推荐

