三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

在Linux Centos7上部署DNS服务——主从架构

在Linux Centos7上部署DNS服务——主从架构

环境规划

基于Linux CentOS7.9
主DNS服务器 19.16.2.128
从DNS服务器 19.16.2.129
域名 fanzc.com
www A记录 19.16.2.13019.16.2.131
MX邮件 19.16.2.132
配置forward转发 8.8.8.8 实现上外网解析

安装服务以及插件(两台计算机)

yum-yinstallbindbind-chroot bind-utils

【主服务器】

编辑主配置文件 /etc/named.conf

首先备份配置文件

cp-av/etc/named.conf /opt/named.conf_fanzc_20260513_v1.1.1.bak

将下列配置写入配置文件

完整覆盖内容(直接复制):

cat>/etc/named.conf<<'EOF' options { listen-on port 53 { 127.0.0.1; 19.16.2.128; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { any; }; forwarders { 8.8.8.8; 114.114.114.114; }; forward first; recursion yes; dnssec-enable no; dnssec-validation no; bindkeys-file "/etc/named.root.key"; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; zone "fanzc.com" IN { type master; file "fanzc.com.zone"; allow-transfer { 19.16.2.129; }; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; EOF

检查配置文件语法

named-checkconf-z/etc/named.conf

创建域名区域文件

cd/var/namedcp-avnamed.localhost fanzc.com.zonechownroot:named fanzc.com.zonechmod640fanzc.com.zone

编辑:

vimfanzc.com.zone

完整内容(直接复制):

$TTL1D @ IN SOA ns.fanzc.com. admin.fanzc.com.(0;serial 1D;refresh 1H;retry 1W;expire 3H);minimum @ IN NS ns.fanzc.com. ns IN A19.16.2.128 @ IN MX10mail.fanzc.com. mail IN A19.16.2.132 www IN A19.16.2.130 www IN A19.16.2.131

防火墙放行

firewall-cmd--permanent--add-service=dns firewall-cmd--reload

启动并开机自启

systemctl start named systemctlenablenamed systemctl status named

测试(主DNS)

本机测试

nslookupwww.fanzc.com19.16.2.128nslookupmail.fanzc.com19.16.2.128nslookupwww.baidu.com19.16.2.128

测试结果如下:

[root@localhost named]# nslookup www.fanzc.com 19.16.2.128Server:19.16.2.128 Address:19.16.2.128#53Name: www.fanzc.com Address:19.16.2.130 Name: www.fanzc.com Address:19.16.2.131[root@localhost named]# nslookup mail.fanzc.com 19.16.2.128Server:19.16.2.128 Address:19.16.2.128#53Name: mail.fanzc.com Address:19.16.2.132[root@localhost named]# nslookup www.baidu.com 19.16.2.128Server:19.16.2.128 Address:19.16.2.128#53Non-authoritative answer: Name: www.baidu.com Address:39.156.70.46 Name: www.baidu.com Address:39.156.70.239 Name: www.baidu.com Address:2409:8c00:6c21:118b:0:ff:b0e8:f003 Name: www.baidu.com Address:2409:8c00:6c21:11eb:0:ff:b0bf:59ca

【从服务器】

编辑主配置 /etc/named.conf

cp-av/etc/named.conf /opt/named.conf_fanzc20260513xxxx_v1.1.1.bakvim/etc/named.conf

完整覆盖配置文件内容:

options{listen-on port53{127.0.0.1;19.16.2.129;};listen-on-v6 port53{::1;};directory"/var/named";allow-query{any;};forwarders{8.8.8.8;114.114.114.114;};forward first;recursionyes;dnssec-enable no;dnssec-validation no;};zone"."IN{typehint;file"named.ca";};zone"fanzc.com"IN{typeslave;file"slaves/fanzc.com.zone";masters{19.16.2.128;};};include"/etc/named.rfc1912.zones";include"/etc/named.root.key";

防火墙放行

firewall-cmd--permanent--add-service=dns firewall-cmd--reload

启动服务

systemctl start named systemctlenablenamed

测试(从DNS)

nslookupwww.fanzc.com19.16.2.129nslookupmail.fanzc.com19.16.2.129nslookupwww.baidu.com19.16.2.129

测试结果如下:

[root@localhost ~]# nslookup www.fanzc.com 19.16.2.129Server:19.16.2.129 Address:19.16.2.129#53Name: www.fanzc.com Address:19.16.2.131 Name: www.fanzc.com Address:19.16.2.130[root@localhost ~]# nslookup mail.fanzc.com 19.16.2.129Server:19.16.2.129 Address:19.16.2.129#53Name: mail.fanzc.com Address:19.16.2.132[root@localhost ~]# nslookup www.baidu.com 19.16.2.129Server:19.16.2.129 Address:19.16.2.129#53Non-authoritative answer: Name: www.baidu.com Address:39.156.70.239 Name: www.baidu.com Address:39.156.70.46 Name: www.baidu.com Address:2409:8c00:6c21:11eb:0:ff:b0bf:59ca Name: www.baidu.com Address:2409:8c00:6c21:118b:0:ff:b0e8:f003

DNS服务的主从架构

【主服务器】

主配置文件


第32行为类型,master代表主机
第33行表示地址库文件名称
第34行表示允许从服务器从主服务器传输地址库文件

地址库文件

在之前的地址库文件中做出修改:


第3行:
这是该区域文件的版本号。通常采用 YYYYMMDDNN 的格式(年月日序号)。例如 2026051301 表示 2026 年 5月 13 日第 1次修改。
作用:从服务器(Slave)会定期检查主服务器(Master)的这个数字。如果从服务器发现主服务器的序列号比自己大,就会判定数据已更新,从而触发区域传输(Zone Transfer),下载新的数据。
关键点:每次修改区域文件后,必须手动增加这个数字,否则从服务器会认为数据没有变化,不会同步更新。

重启服务

systemctl restart named

【从服务器】

修改从服务器配置文件


添加以下内容,保证同步过来的地址库文件明文显示,否则是密文乱码显示:

masterfile-format text;

写入DNS服务器到/etc/resolv/conf

echo'nameserver 19.16.2.128'>/etc/resolv.conf

重启服务

systemctl restart named

查看是否从主服务器同步了地址库


成功同步

← 返回列表