centos7上搭建dns

安装bind,编辑named.conf,定义zone,添加NS/A记录,开放防火墙53端口,启动name

CentOS7上搭建DNS服务器详细教程

环境准备

系统要求

项目 要求
操作系统 CentOS 7.x
内存 ≥512MB(建议1GB+)
存储空间 ≥200MB(含日志文件)
网络环境 公网IP或内网固定IP

基础网络配置

# 查看网络接口名称
ip addr show
# 配置网卡(示例eth0)
nmcli con mod "System eth0" ipv4.addresses "192.168.1.10/24" ipv4.gateway "192.168.1.1" ipv4.dns "8.8.8.8"
nmcli con up "System eth0"

安装BIND DNS服务

安装软件包

# 更新YUM源
yum update y
# 安装BIND
yum install y bind bindutils
# 验证安装
named V

启动与自启设置

# 启动服务
systemctl start named
# 设置开机自启
systemctl enable named
# 查看运行状态
systemctl status named

核心配置文件解析

/etc/named.conf主配置文件

// 全局配置示例
options {
    listenon port 53 { 192.168.1.10; any; };  // 监听地址
    directory       "/var/named";             // 数据存放目录
    dumpfile       "/var/named/data/cache_dump.db";
    statisticsfile "/var/named/data/named_stats.txt";
    recursion yes;                            // 开启递归查询
    allowquery { any; };                     // 允许所有客户端查询
};

正向解析区域配置

// 在named.conf中添加zone配置
zone "example.com" IN {
    type master;
    file "example.com.zone";                  // 对应文件路径:/var/named/example.com.zone
    allowupdate { none; };                  // 禁止动态更新
};

反向解析区域配置

// 反向解析配置示例(针对192.168.1.x/24)
zone "1.168.192.inaddr.arpa" IN {
    type master;
    file "1.168.192.zone";                   // 对应文件路径:/var/named/1.168.192.zone
};

区域文件制作

创建目录结构

mkdir p /var/named/
chown named:named /var/named/

正向区域文件示例 (/var/named/example.com.zone)

$TTL 86400       ; 默认生存时间(秒)
@   IN SOA      ns1.example.com. admin.example.com. (
                2023100101 ; Serial Number
                3600       ; Refresh (秒)
                1800       ; Retry (秒)
                1209600    ; Expire (秒)
                86400 )    ; Minimum TTL (秒)
    IN NS      ns1.example.com.
    IN NS      ns2.example.com.
ns1 IN A       192.168.1.10      ; 主DNS服务器IP
ns2 IN A       192.168.1.11      ; 备用DNS服务器IP
www IN A       192.168.1.100     ; Web服务器IP
mail IN A      192.168.1.101     ; 邮件服务器IP

反向区域文件示例 (/var/named/1.168.192.zone)

$TTL 86400
@   IN SOA      ns1.example.com. admin.example.com. (
                2023100101 ; Serial Number
                3600       ; Refresh
                1800       ; Retry
                1209600    ; Expire
                86400 )    ; Minimum TTL
    IN NS      ns1.example.com.
    IN NS      ns2.example.com.
10      IN PTR     ns1.example.com.
11      IN PTR     ns2.example.com.
100     IN PTR     www.example.com.
101     IN PTR     mail.example.com.

安全加固设置

SELinux配置

# 添加BIND相关策略
setsebool P named_write_master_zones on

防火墙配置

# 开放TCP/UDP 53端口
firewallcmd permanent addport=53/tcp addport=53/udp
firewallcmd reload

测试验证

使用dig命令测试

# 测试正向解析
dig @192.168.1.10 www.example.com
# 测试反向解析
dig x 192.168.1.100 @192.168.1.10

使用nslookup交互测试

# 进入交互模式
nslookup example.com 192.168.1.10
> server 192.168.1.10          # 指定DNS服务器
> www.example.com              # 查询记录

常见问题处理

现象 解决方法
服务无法启动 检查named.conf语法错误,使用namedcheckconf /etc/named.conf检测
域名解析失败 确认区域文件中的NS记录与实际服务器IP匹配,检查SOA记录中的序列号
客户端无法访问DNS服务器 检查防火墙规则,确认53端口已开放,SELinux策略正确
递归查询功能异常 options中设置forwarders指向上游DNS,或保持recursion yes;配置

相关问题与解答

Q1:如何将DNS服务器设置为缓存服务器?

A:需修改named.conf配置文件,在options段添加forwarders指令指向上游DNS,并关闭递归查询:

centos7上搭建dns

options {
    forwarders { 8.8.8.8; 8.8.4.4; };   # Google公共DNS
    recursion no;                        # 关闭递归查询
};

此时DNS服务器将作为转发缓存服务器,不直接提供域名解析。


Q2:如何实现DNS主从架构?

A:需在主服务器配置中添加allowtransfer指令,并在从服务器配置zone类型为slave
主服务器配置

centos7上搭建dns

zone "example.com" IN {
    type master;
    file "example.com.zone";
    allowtransfer { 192.168.1.11; };    # 允许从服务器IP同步数据
};

从服务器配置

zone "example.com" IN {
    type slave;
    file "slaves/example.com.zone";     # 数据文件路径
    masters { 192.168.1.10; };          # 

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

Like (0)
小编小编
Previous 2025年5月12日 16:26
Next 2025年5月12日 17:02

相关推荐

发表回复

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