红帽配置dns服务器

编辑/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 reloadsystemctl 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:常见原因包括:

红帽配置dns服务器

  1. 主服务器named.conf未开启alsonotify功能:需在区域声明中添加notify yes;alsonotify { IP地址; }配置
  2. 防火墙阻挡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'
  3. SELinux策略限制:执行setsebool P named_write_master_zones on允许写入操作
  4. 网络连通性问题:使用telnet 主服务器IP 53测试端口连通性

Q2:如何在红帽系统启用DNSSEC签名验证?

A2:实施步骤如下:

红帽配置dns服务器

  1. 生成密钥对dnsseckeygen a RSASHA256 b 2048 n ZONE example.com生成公私钥对
  2. 签署区域文件dnssecsignzone K example.com.keys o example.com db.example.com生成签名文件(.sig)和DS文件(.ds)
  3. 修改主配置文件:在区域声明中添加inlinesigning yes;启用实时签名功能
  4. 父域提交DS记录:将生成的db.example.com.ds文件中的DS记录添加到上级DNS服务器的TXT记录中
  5. 验证签名链:使用dig @1.1.1.1 example.com dnskey +dnssec

来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/199130.html

Like (0)
小编小编
Previous 2025年5月5日 02:13
Next 2025年5月5日 02:31

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注