编辑/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