CentOS 7 搭建 DNS 主从服务

CentOS 7 搭建 DNS 主从服务

1. 服务介绍

DNS 服务负责域名与 IP 地址之间的解析。企业内网常用 BIND 管理内部域名、主机记录和反向解析;主从架构可在主服务器故障时继续提供查询,并通过区域传送自动同步记录。

2. 准备运行环境

• 操作系统:CentOS 7.x。

• 主 DNS:10.1.100.101。

• 从 DNS:10.1.100.102。

• 示例域名:qwe.com。

• 管理账号:root 或具备 sudo 权限的账号。

• 两台服务器网络互通,YUM 软件源可用。

3. 相关知识

• DNS 默认使用 UDP/TCP 53 端口;普通查询多使用 UDP,区域传送和较大响应可能使用 TCP。

• BIND 主配置文件是 /etc/named.conf,区域声明常放在 /etc/named.rfc1912.zones,区域数据文件默认位于 /var/named。

• 修改主区域文件后必须递增 SOA 序列号,否则从服务器可能不会同步。

• 主服务器应使用 allow-transfer 限制允许传送区域的从服务器地址。

• 配置完成后先运行 named-checkconf 和 named-checkzone,语法正确后再重启服务。

• 客户端测试应明确指定查询服务器,避免本地缓存或其他 DNS 服务器影响结果。

4. 实验步骤

4.1 安装软件

主从服务器都执行:

bash 复制代码
yum -y install bind bind-utils
systemctl enable named

4.2 配置主服务器

备份并编辑 /etc/named.conf:

bash 复制代码
cp -a /etc/named.conf{,.bak}
vi /etc/named.conf

允许服务器监听并响应实验网段查询:

conf 复制代码
listen-on port 53 { any; };
allow-query { any; };

在 /etc/named.rfc1912.zones 中声明正向和反向区域:

conf 复制代码
zone "qwe.com" IN {
    type master;
    file "qwe.com.zone";
    allow-update { none; };
    allow-transfer { 10.1.100.102; };
};

zone "100.1.10.in-addr.arpa" IN {
    type master;
    file "10.1.100.zone";
    allow-update { none; };
    allow-transfer { 10.1.100.102; };
};

创建正向区域文件 /var/named/qwe.com.zone:

dns 复制代码
$TTL 1D
@ IN SOA dns1.qwe.com. admin.qwe.com. (
    2026071201 1H 15M 1W 1D )
  IN NS dns1.qwe.com.
  IN NS dns2.qwe.com.
dns1 IN A 10.1.100.101
dns2 IN A 10.1.100.102

创建反向区域文件 /var/named/10.1.100.zone:

dns 复制代码
$TTL 1D
@ IN SOA dns1.qwe.com. admin.qwe.com. (
    2026071201 1H 15M 1W 1D )
  IN NS dns1.qwe.com.
  IN NS dns2.qwe.com.
101 IN PTR dns1.qwe.com.
102 IN PTR dns2.qwe.com.

修正权限并启动服务:

bash 复制代码
chown root:named /var/named/qwe.com.zone /var/named/10.1.100.zone
chmod 640 /var/named/qwe.com.zone /var/named/10.1.100.zone
named-checkconf
named-checkzone qwe.com /var/named/qwe.com.zone
named-checkzone 100.1.10.in-addr.arpa /var/named/10.1.100.zone
systemctl restart named

客户端将 DNS 地址设置为主服务器后测试:

bash 复制代码
echo 'nameserver 10.1.100.101' > /etc/resolv.conf

4.3 配置从服务器

编辑从服务器 /etc/named.conf:

conf 复制代码
listen-on port 53 { any; };
allow-query { any; };

在 /etc/named.rfc1912.zones 中声明从区域:

conf 复制代码
zone "qwe.com" IN {
    type slave;
    masters { 10.1.100.101; };
    file "slaves/qwe.com.zone";
};

zone "100.1.10.in-addr.arpa" IN {
    type slave;
    masters { 10.1.100.101; };
    file "slaves/10.1.100.zone";
};

检查配置并启动服务:

bash 复制代码
named-checkconf
systemctl restart named
ls -l /var/named/slaves/

从服务器成功完成区域传送后,可在 slaves 目录看到同步生成的区域文件。

5. 验证结果

主服务器执行:

bash 复制代码
systemctl status named --no-pager
ss -lunpt | grep ':53'
dig @10.1.100.101 qwe.com SOA
dig @10.1.100.101 dns1.qwe.com A
dig @10.1.100.101 -x 10.1.100.102
journalctl -u named -n 50 --no-pager

从服务器执行:

bash 复制代码
systemctl status named --no-pager
ls -l /var/named/slaves/
dig @10.1.100.102 qwe.com SOA
dig @10.1.100.102 dns2.qwe.com A
dig @10.1.100.102 -x 10.1.100.101
journalctl -u named -n 50 --no-pager

主从服务器返回相同 SOA 序列号,正向和反向记录均能查询,53 端口正常监听,说明 DNS 主从服务配置成功。

相关推荐
强哥聊算力5 分钟前
《算力江湖·DeepSeek》第四集:DeepSeek如何改变中国算力的采购逻辑?
大数据·运维·人工智能·ai·gpu算力
~城南花已开~20 分钟前
Redfish 事件接收服务搭建指南(Ubuntu Server 实测)
linux·服务器·python·ubuntu
承渊政道26 分钟前
新增一台服务器时还要重新装Nginx?Ansible只改hosts目标列表,同一份Playbook继续执行
运维·nginx·ansible·内网穿透·cpolar
德迅云安全-上官33 分钟前
服务器遭攻击如何快速响应?从技术原理到接入防御架构的实战指南
运维·服务器·架构
我命由我1234534 分钟前
6-2.Python 异常处理 - 异常捕获(捕获指定异常、常见异常类型、异常信息)
java·运维·开发语言·python·http·https·java-ee
倔强的石头10641 分钟前
【Linux指南】进程通信系列(四):命名管道 FIFO —— 让陌生进程按名字见面
linux·服务器·网络
段一凡-华北理工大学1 小时前
高炉能源系统智能化:热风炉、煤气与极致能效~系列文章03:热风炉烧炉与风温的决定因素
大数据·linux·人工智能·能源·热风炉·高炉能源优化
_小许_1 小时前
Linux 常用命令速查:CentOS 与 Ubuntu 双线对照
linux·ubuntu·centos
A-刘晨阳1 小时前
同一句需求优化前后差多少?Prompt Optimizer先整理提示词,再用同一个模型直接对比结果
运维·prompt·cpolar
李纲明1 小时前
WordPress 结账页一直转圈不跳支付:AJAX、缓存排除、支付回调和 REST 怎么逐层核
运维·ajax·缓存·wordpress·woocommerce·devdiy·结账