编辑/etc/resolv.conf添加nameserver或装bind配name
红帽系统配置DNS服务器详细指南
DNS服务
1 DNS基础概念
| 术语 | 说明 |
|---|---|
| 域名空间 | 采用树状结构组织的域名体系,根域为”.”, 顶级域如.com,二级域如example.com |
| 正向解析 | 将域名转换为IP地址(如www.example.com → 192.168.1.100) |
| 反向解析 | 将IP地址转换为域名(如168.1.100 → www.example.com) |
| 权威DNS | 存储特定域名记录的服务器 |
| 递归DNS | 负责查询其他DNS服务器直到获取最终结果 |
2 DNS服务组件
- BIND:Berkeley Internet Name Domain,最流行的DNS软件
- /etc/named.conf:主配置文件
- /var/named/:默认数据存储目录
- rndc:远程管理工具
- chroot jail:安全隔离环境
环境准备
1 系统要求
| 项目 | 要求 |
|---|---|
| 操作系统 | RHEL/CentOS 7+ |
| 内存 | ≥512MB(建议1GB+) |
| 网络接口 | 至少1个可用网卡(建议双网卡做冗余) |
| 防火墙 | 开放TCP/UDP 53端口 |
| SELinux | 允许named进程访问网络和文件系统 |
2 安装BIND服务
# 安装基础组件
yum install y bind bindutils
# 创建数据目录结构
mkdir p /var/named/{zones,reverse,ca}
chown named:named /var/named R
# 启动并设置自启
systemctl enable now named
核心配置详解
1 named.conf主配置文件
// 全局配置示例
options {
listenon port 53 { 192.0.2.1; }; // 监听IP地址
directory "/var/named"; // 数据文件路径
recursion yes; // 启用递归查询
allowquery { any; }; // 允许所有客户端查询
// 转发器配置(可选)
forwarders { 8.8.8.8; 8.8.4.4; }; // Google公共DNS
// 安全加固
allowtransfer { 192.0.2.2; }! // 仅允许指定IP进行区域传输
};
2 正向解析区域配置
2.1 创建区域文件
# 创建example.com区域文件 vim /var/named/zones/db.example.com
; 区域文件示例
$TTL 86400 ; 默认生存时间(秒)
@ IN SOA ns1.example.com. admin.example.com. (
2023100101 ; 序列号
3600 ; 刷新间隔
1800 ; 重试间隔
1209600 ; 过期时间
86400 ) ; 最小TTL
IN NS ns1.example.com.
IN NS ns2.example.com.
www IN A 192.0.2.100 ; A记录
mail IN A 192.0.2.101 ; 邮件服务器记录
@ IN MX 10 mail.example.com. ; 邮件交换记录
2.2 区域声明配置
// 在named.conf中添加区域声明
zone "example.com" {
type master;
file "zones/db.example.com";
allowupdate { none; }; # 禁止动态更新
};
3 反向解析区域配置
# 创建反向区域文件 vim /var/named/reverse/db.192.0.2
; 反向解析文件示例
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2023100101 ; 序列号
3600 ; 刷新间隔
1800 ; 重试间隔
1209600 ; 过期时间
86400 ) ; 最小TTL
IN NS ns1.example.com.
IN NS ns2.example.com.
100 IN PTR www.example.com. ; PTR记录
101 IN PTR mail.example.com. ; PTR记录
// 在named.conf中添加反向区域声明
zone "192.0.2.inaddr.arpa" {
type master;
file "reverse/db.192.0.2";
};
安全加固配置
1 访问控制配置
// 限制查询范围示例
allowquery {
192.0.2.0/24; // 允许子网查询
localhost; // 允许本地回环地址
};
2 加密传输配置
// TLS证书配置示例 include "/etc/named/tls.key"; # TLS密钥文件路径 include "/etc/named/tls.crt"; # TLS证书文件路径
3 DNSSEC配置
# 生成DS记录(在子域服务器) cd /var/named/zones/ dnsseckeygen a HMACSHA256 b 256 n HOST example.com # 签署区域文件 dnssecsignzone K example.com.keys o example.com db.example.com
服务测试验证
1 本地测试工具
# 测试正向解析 dig @127.0.0.1 www.example.com +nocmd nslookup mail.example.com 127.0.0.1 # 测试反向解析 dig x 192.0.2.100 @127.0.0.1 host 192.0.2.101 127.0.0.1
2 外部验证方法
# 使用外部DNS服务器测试 dig @8.8.8.8 www.example.com nslookup type=mx example.com 8.8.4.4
常见问题排错
1 典型故障现象与解决方案
| 故障现象 | 可能原因 | 解决方案 |
|---|---|---|
| 无法解析新域名 | 未重新加载配置 | rndc reload 或 systemctl restart named |
| 出现”server failure” | 防火墙阻挡或服务未启动 | firewallcmd addservice=dns,检查服务状态 |
| PTR记录不生效 | 反向区域配置错误 | 检查named.conf中的反向区域声明,确认PTR记录格式正确 |
| 递归查询超时 | 未配置转发器或网络问题 | 添加forwarders配置,检查网络连通性 |
| SELinux拒绝访问 | SELinux策略限制 | setsebool P named_write_master_zones on |
性能优化建议
1 缓存配置优化
// 调整缓存参数示例
options {
forwarders { 8.8.8.8; 8.8.4.4; } // 使用Google公共DNS作为转发器
querycachesize 500M; // 设置缓存大小为500MB
maxcachettl 3600; // 最大缓存时间1小时
};
2 负载均衡配置
// 轮询式负载均衡配置示例
zone "example.com" {
type master;
file "zones/db.example.com";
notify yes; // 启用通知机制
alsonotify { 192.0.2.2; }; // 同步到备用服务器
};
问题与解答栏目
Q1:为什么配置的主从DNS服务器无法同步区域文件?
A1:常见原因包括:

- 主服务器
named.conf未开启alsonotify功能:需在区域声明中添加notify yes;和alsonotify { IP地址; }配置 - 防火墙阻挡AXFR传输:需开放TCP 53端口及允许特定IP的连接(
firewallcmd permanent addrichrule='rule family="ipv4" source address=192.0.2.2 destination address=192.0.2.1 port protocol=tcp port=53 accept') - SELinux策略限制:执行
setsebool P named_write_master_zones on允许写入操作 - 网络连通性问题:使用
telnet 主服务器IP 53测试端口连通性
Q2:如何在红帽系统启用DNSSEC签名验证?
A2:实施步骤如下:

- 生成密钥对:
dnsseckeygen a RSASHA256 b 2048 n ZONE example.com生成公私钥对 - 签署区域文件:
dnssecsignzone K example.com.keys o example.com db.example.com生成签名文件(.sig)和DS文件(.ds) - 修改主配置文件:在区域声明中添加
inlinesigning yes;启用实时签名功能 - 父域提交DS记录:将生成的
db.example.com.ds文件中的DS记录添加到上级DNS服务器的TXT记录中 - 验证签名链:使用
dig @1.1.1.1 example.com dnskey +dnssec
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/199130.html