当前位置: 首页 > news >正文

DNS正反向解析转发服务器主从服务

DNS正反向解析&转发服务器&主从服务

1. 正反向解析

主机角色系统IP
client客户端redhat 9.6192.168.72.7
server域名解析服务器redhat 9.6192.168.72.18

1.1 配置服务端

1)修改主机名和IP地址

[root@localhost ~]# hostnamectl hostname server[root@server ~]# nmcli c m ens160 ipv4.addresses 192.168.72.18/24
[root@server ~]# nmcli c up ens160 

2)安装软件

[root@server ~]# dnf install bind -y# 软件的配置文件
[root@server ~]# rpm -qc bind
/etc/logrotate.d/named
/etc/named.conf
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback

3)修改主配置文件

[root@server ~]# vim /etc/named.conf
[root@server ~]# cat /etc/named.conf 
options {listen-on port 53 { 192.168.72.18; };	// 将监听的IP修改为本机的IP地址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";secroots-file	"/var/named/data/named.secroots";recursing-file	"/var/named/data/named.recursing";allow-query     { any; };	//修改为any表示任何主机都可以查询recursion yes;dnssec-validation no;	// 将值改为 no,关闭外网校验managed-keys-directory "/var/named/dynamic";geoip-directory "/usr/share/GeoIP";pid-file "/run/named/named.pid";session-keyfile "/run/named/session.key";include "/etc/crypto-policies/back-ends/bind.config";
};logging {channel default_debug {file "data/named.run";severity dynamic;};
};zone "." IN {type hint;file "named.ca";
};include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

4)修改区域配置文件

[root@server ~]# vim /etc/named.rfc1912.zones
// 正向解析
zone "example.com" IN {	// 正解解析的域名type master;	// 表示主服务file "example.com.zone";	// 正向解析区域数据文件的路径allow-update { none; };	// 不允许动态更新
};
// 反向解析
zone "72.168.192.in-addr.arpa" IN {	// 反向解析的IPtype master;file "example.com.arpa.zone";	// 反向解析区域数据文件allow-update { none; };
};

5)创建正向解析区域数据文件

[root@server ~]# cd /var/named/[root@server named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves# 复制正向解析的模板
[root@server named]# cp -a named.localhost example.com.zone
[root@server named]# vim example.com.zone
[root@server named]# vim example.com.zone
[root@server named]# cat example.com.zone 
$TTL 1D
@	IN SOA	ns.example.com. admin.example.com. (2025110501	; serial1D	; refresh1H	; retry1W	; expire3H )	; minimumNS	nsMX  1	mail.example.com.
ns	IN	A	192.168.72.18
mail	IN	A	192.168.72.19
www	IN	A	192.168.72.8
ftp	IN	A	192.168.72.20
web	IN	CNAME	www

6)创建反向解析区域数据文件

[root@server named]# cp -a named.loopback example.com.arpa.zone
[root@server named]# vim example.com.arpa.zone
[root@server named]# cat example.com.arpa.zone 
$TTL 1D
@	IN SOA	ns.example.com. amdin.example.com. (2025110501	; serial1D	; refresh1H	; retry1W	; expire3H )	; minimumNS	ns
ns	IN	A	192.168.72.18
8	IN	PTR	www.example.com.
20	IN	PTR	ftp

7)校验配置文件的语法(可选)

# 1. 校验主配置文件
[root@server named]# named-checkconf 
[root@server named]# # 2. 校验区域数据文件
[root@server named]# named-checkzone example.com. /var/named/example.com.zone 
zone example.com/IN: loaded serial 2025110501
OK

8)启动DNS服务

[root@server named]# systemctl start named
[root@server named]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; preset: disabled)Active: active (running) since Wed 2025-11-05 15:57:47 CST; 5s agoProcess: 1778 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else>Process: 1782 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)Main PID: 1783 (named)Tasks: 8 (limit: 12067)Memory: 20.6MCPU: 72msCGroup: /system.slice/named.service└─1783 /usr/sbin/named -u named -c /etc/named.confNov 05 15:57:47 server named[1783]: network unreachable resolving './NS/IN': 2001:500:2f::f#53
Nov 05 15:57:47 server named[1783]: network unreachable resolving './DNSKEY/IN': 2001:503:ba3e::2:30#53
Nov 05 15:57:47 server named[1783]: network unreachable resolving './NS/IN': 2001:503:ba3e::2:30#53
Nov 05 15:57:47 server named[1783]: network unreachable resolving './DNSKEY/IN': 2001:7fd::1#53
Nov 05 15:57:47 server named[1783]: network unreachable resolving './NS/IN': 2001:7fd::1#53
Nov 05 15:57:47 server named[1783]: network unreachable resolving './DNSKEY/IN': 2001:dc3::35#53
Nov 05 15:57:47 server named[1783]: network unreachable resolving './NS/IN': 2001:dc3::35#53
Nov 05 15:57:48 server named[1783]: resolver priming query complete
Nov 05 15:57:49 server named[1783]: managed-keys-zone: Initializing automatic trust anchor management for zone '.'; DNSKEY ID 20326 is now t>
Nov 05 15:57:49 server named[1783]: managed-keys-zone: Initializing automatic trust anchor management for zone '.'; DNSKEY ID 38696 is now t>

9)防火墙放行服务

[root@server named]# firewall-cmd --permanent --add-service=dns
success
[root@server named]# firewall-cmd --reload 
success

1.2 配置客户端

1)修改主机名和IP地址

[root@localhost ~]# hostnamectl hostname client[root@client ~]# nmcli c m ens160 ipv4.addresses 192.168.72.7/24 ipv4.dns 192.168.72.18
[root@client ~]# nmcli c up ens160 

2)安装验证工具

[root@client ~]# dnf install bind-utils -y

3)验证DNS解析

# 1. 验证NS记录解析
[root@client ~]# dig -t ns example.com @192.168.72.18; <<>> DiG 9.16.23-RH <<>> -t ns example.com @192.168.72.18
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21274
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: ad3da14d3544cd0401000000690b049569812617735987d9 (good)
;; QUESTION SECTION:
;example.com.			IN	NS;; ANSWER SECTION:
example.com.		86400	IN	NS	ns.example.com.;; ADDITIONAL SECTION:
ns.example.com.		86400	IN	A	192.168.72.18;; Query time: 0 msec
;; SERVER: 192.168.72.18#53(192.168.72.18)
;; WHEN: Wed Nov 05 16:02:29 CST 2025
;; MSG SIZE  rcvd: 101# 2. 验证A记录解析
[root@client ~]# host -t A www.example.com 192.168.72.18
Using domain server:
Name: 192.168.72.18
Address: 192.168.72.18#53
Aliases: www.example.com has address 192.179.82.8
# 或者
[root@client ~]# dig -t a www.example.com @192.168.72.18; <<>> DiG 9.16.23-RH <<>> -t a www.example.com @192.168.72.18
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63270
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 35f6c7807e26999601000000690b0522acd6fb06cb2839f8 (good)
;; QUESTION SECTION:
;www.example.com.		IN	A;; ANSWER SECTION:
www.example.com.	86400	IN	A	192.168.72.8;; Query time: 0 msec
;; SERVER: 192.168.72.18#53(192.168.72.18)
;; WHEN: Wed Nov 05 16:04:50 CST 2025
;; MSG SIZE  rcvd: 88# 3. 使用nslookup 来验证
[root@client ~]# nslookup www.example.com
Server:		192.168.72.18
Address:	192.168.72.18#53Name:	www.example.com
Address: 192.179.82.8# 交互式
[root@client ~]# nslookup 
> server 192.168.72.18 
Default server: 192.168.72.18
Address: 192.168.72.18#53
> set q=A
> www.example.com
Server:		192.168.72.18
Address:	192.168.72.18#53Name:	www.example.com
Address: 192.168.72.8
> 

2. 转发服务器

2.1 DNS服务配置

使用前面案例的配置

2.2 配置转发服务器

1、首先新克隆一台机然后修改主机名和IP地址

[root@localhost ~]# hostnamectl set-hostname forward
[root@localhost ~]# nmcli c m ens160 ipv4.method manual ipv4.addresses 192.168.72.28/24 ipv4.gateway 192.168.72.2 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160

2、安装bind软件

[root@forward ~]# dnf install -y bind

3、修改主配置文件

[root@forward ~]# vim /etc/named.conf 
[root@forward ~]# cat /etc/named.conf 
options {listen-on port 53 { 192.168.72.28; };directory 	"/var/named";forward only;forwarders { 192.168.72.18; };recursion yes;dnssec-validation no;
};

4、防火墙放行服务

[root@forward ~]# firewall-cmd --permanent --add-port=53/tcp --add-port=53/udp
success
[root@forward ~]# firewall-cmd --reload 
success

5、启动服务

[root@forward ~]# systemctl start named

2.3 配置客户端

1)修改客户端的DNS地址为转发服务器IP地址

[root@client ~]# nmcli d show ens160 
GENERAL.DEVICE:                         ens160
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:16:A2:65
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ens160
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/3
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.72.7/24
IP4.GATEWAY:                            192.168.72.2
IP4.ROUTE[1]:                           dst = 192.168.72.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.72.2, mt = 100
IP4.DNS[1]:                             192.168.72.18
IP6.ADDRESS[1]:                         fe80::20c:29ff:fe16:a265/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 1024# 将客户端的dns地址修改为转发服务器的IP地址
[root@client ~]# nmcli c m ens160 ipv4.dns 192.168.72.28
[root@client ~]# nmcli c up ens160 # 修改好后查看
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
[root@client ~]# nmcli d show ens160
GENERAL.DEVICE:                         ens160
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:16:A2:65
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ens160
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/4
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.72.7/24
IP4.GATEWAY:                            192.168.72.2
IP4.ROUTE[1]:                           dst = 192.168.72.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.72.2, mt = 100
IP4.DNS[1]:                             192.168.72.28
IP6.ADDRESS[1]:                         fe80::20c:29ff:fe16:a265/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 1024

2)验证解析

[root@client ~]# dig -t A www.example.com @192.168.72.28; <<>> DiG 9.16.23-RH <<>> -t A www.example.com @192.168.72.28
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63583
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: b08f8d6c649b078a01000000690b1039ea5171b567ef8342 (good)
;; QUESTION SECTION:
;www.example.com.		IN	A;; ANSWER SECTION:
www.example.com.	86400	IN	A	192.168.72.8;; Query time: 13 msec
;; SERVER: 192.168.72.28#53(192.168.72.28)
;; WHEN: Wed Nov 05 16:52:10 CST 2025
;; MSG SIZE  rcvd: 88

3. 整合Web服务

3.1 增加Web服务器

1)克隆一台新的服务器, 然后修改主机名和IP

[root@localhost ~]# hostnamectl hostname web
[root@localhost ~]# nmcli c m ens160 ipv4.method manual ipv4.addresses 192.168.72.8/24 ipv4.gateway 192.168.72.2 ipv4.dns 192.168.72.28 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160

2)安装nginx服务

[root@web ~]# dnf install -y nginx

3)防火墙放行服务

[root@web ~]# firewall-cmd --permanent --add-port=80/tcp
success
[root@web ~]# firewall-cmd --reload
success

4)修改欢迎页

[root@web ~]# echo "welcome to nginx $(hostname -I)" > /usr/share/nginx/html/index.html

5)启动服务

[root@web ~]# systemctl start nginx
[root@web ~]# systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy serverLoaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; preset: disabled)Active: active (running) since Wed 2025-11-05 17:03:57 CST; 6s agoProcess: 1878 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)Process: 1879 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)Process: 1880 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)Main PID: 1881 (nginx)Tasks: 3 (limit: 12067)Memory: 3.0MCPU: 31msCGroup: /system.slice/nginx.service├─1881 "nginx: master process /usr/sbin/nginx"├─1882 "nginx: worker process"└─1883 "nginx: worker process"Nov 05 17:03:57 web systemd[1]: Starting The nginx HTTP and reverse proxy server...
Nov 05 17:03:57 web nginx[1879]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Nov 05 17:03:57 web nginx[1879]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Nov 05 17:03:57 web systemd[1]: Started The nginx HTTP and reverse proxy server.

6)访问验证

[root@web ~]# curl localhost
welcome to nginx 192.168.72.8 [root@web ~]# curl 192.168.72.8
welcome to nginx 192.168.72.8[root@web ~]# curl www.example.com
welcome to nginx 192.168.72.8[root@client ~]# curl www.example.com
welcome to nginx 192.168.72.8 

4. 主从服务

4.1 修改主服务器

1)修改区域配置文件

[root@server named]# vim /etc/named.rfc1912.zones 
[root@server named]# cat /etc/named.rfc1912.zones 
zone "example.com" IN {type master;file "example.com.zone";allow-update { 192.168.72.38; };
};zone "72.168.192.in-addr.arpa" IN {type master;file "example.com.arpa.zone";allow-update { any; };
};

2)修改正向解析区域数据文件

[root@server named]# vim /var/named/example.com.zone 
[root@server named]# cat /var/named/example.com.zone 
$TTL 1D
@	IN SOA	example.com. admin.example.com. (2025110501	; serial1D	; refresh1H	; retry1W	; expire3H )	; minimumNS	ns1NS	ns2MX  1	mail.example.com.
ns1	IN	A	192.168.72.18
ns2	IN	A	192.168.72.38
mail	IN	A	192.168.72.19
www	IN	A	192.168.72.8
ftp	IN	A	192.168.72.20
web	IN	CNAME	www

3)修改反向解析区域数据文件

[root@server named]# vim /var/named/example.com.arpa.zone 
[root@server named]# cat /var/named/example.com.arpa.zone 
$TTL 1D
@	IN SOA	example.com. amdin.example.com. (2025110501	; serial1D	; refresh1H	; retry1W	; expire3H )	; minimumNS	ns1NS	ns2
ns1	IN	A	192.168.72.18
ns2	IN	A	192.168.72.38
8	IN	PTR	www
20	IN	PTR	ftp

3)重启服务

[root@server named]# systemctl stop named
[root@server named]# systemctl start named
[root@server named]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; preset: disabled)Active: active (running) since Wed 2025-11-05 17:37:24 CST; 4s agoProcess: 2169 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else>Process: 2172 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)Main PID: 2173 (named)Tasks: 8 (limit: 12067)Memory: 20.6MCPU: 66msCGroup: /system.slice/named.service└─2173 /usr/sbin/named -u named -c /etc/named.confNov 05 17:37:24 server named[2173]: network unreachable resolving './DNSKEY/IN': 2001:500:1::53#53
Nov 05 17:37:24 server named[2173]: network unreachable resolving './NS/IN': 2001:500:1::53#53
Nov 05 17:37:24 server systemd[1]: Started Berkeley Internet Name Domain (DNS).
Nov 05 17:37:24 server named[2173]: network unreachable resolving './DNSKEY/IN': 2001:500:9f::42#53
Nov 05 17:37:24 server named[2173]: network unreachable resolving './NS/IN': 2001:500:9f::42#53
Nov 05 17:37:24 server named[2173]: network unreachable resolving './DNSKEY/IN': 2001:7fd::1#53
Nov 05 17:37:24 server named[2173]: network unreachable resolving './NS/IN': 2001:7fd::1#53
Nov 05 17:37:25 server named[2173]: managed-keys-zone: Key 20326 for zone . is now trusted (acceptance timer complete)
Nov 05 17:37:25 server named[2173]: managed-keys-zone: Key 38696 for zone . is now trusted (acceptance timer complete)
Nov 05 17:37:25 server named[2173]: resolver priming query complete

4.2 配置从服务器

1)克隆一台从服务器,修改主机名和IP

[root@localhost ~]# hostnamectl hostname slave[root@localhost ~]# nmcli connection modify 
[root@localhost ~]# nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.72.38/24 ipv4.gateway 192.168.72.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160

2)安装软件

[root@slave ~]# dnf install bind -y

3)修改主配置文件

[root@slave ~]# vim /etc/named.conf
[root@slave ~]# cat /etc/named.conf 
options {listen-on port 53 { 192.168.72.38; };	//指定监听的IP地址为本机IPdirectory 	"/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";secroots-file	"/var/named/data/named.secroots";recursing-file	"/var/named/data/named.recursing";allow-query     { any; };	//设置为anyrecursion yes;dnssec-validation no;	//修改为nomanaged-keys-directory "/var/named/dynamic";geoip-directory "/usr/share/GeoIP";pid-file "/run/named/named.pid";session-keyfile "/run/named/session.key";include "/etc/crypto-policies/back-ends/bind.config";
};logging {channel default_debug {file "data/named.run";severity dynamic;};
};zone "." IN {type hint;file "named.ca";
};include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

4)修改区域配置文件

[root@slave ~]# vim /etc/named.rfc1912.zones 
[root@slave ~]# cat /etc/named.rfc1912.zones 
zone "example.com" IN {type slave;		//从服务的配置类型为slavemasters { 192.168.72.18; };		// 指定主服务的IP列表file "slaves/example.com.zone";	// 从服务的区域数据文件存放路径
};zone "72.168.192.in-addr.arpa" IN {type slave;masters { 192.168.72.18; };file "slaves/example.com.arpa.zone";
};

5)防火墙放行服务

[root@slave ~]# firewall-cmd --permanent --add-service=dns
success
[root@slave ~]# firewall-cmd --reload 
success

6)启动服务

[root@slave ~]# systemctl start named
Job for named.service failed because the control process exited with error code.
See "systemctl status named.service" and "journalctl -xeu named.service" for details.

启动服务时报错,我们查看错误信息:

[root@slave ~]# journalctl -xeu named.service
░░ 
░░ A start job for unit named.service has begun execution.
░░ 
░░ The job identifier is 1915.
Nov 05 17:25:04 slave bash[2086]: /etc/named.rfc1912.zones:5: option 'allow-update' is not allowed in 'slave' zone 'example.com'
Nov 05 17:25:04 slave bash[2086]: /etc/named.rfc1912.zones:12: option 'allow-update' is not allowed in 'slave' zone '72.168.192.in-addr.arpa'
Nov 05 17:25:04 slave systemd[1]: named.service: Control process exited, code=exited, status=1/FAILURE
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: https://access.redhat.com/support
░░ 
░░ An ExecStartPre= process belonging to unit named.service has exited.
░░ 
░░ The process' exit code is 'exited' and its exit status is 1.
Nov 05 17:25:04 slave systemd[1]: named.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://access.redhat.com/support
░░ 
░░ The unit named.service has entered the 'failed' state with result 'exit-code'.
Nov 05 17:25:04 slave systemd[1]: Failed to start Berkeley Internet Name Domain (DNS).
░░ Subject: A start job for unit named.service has failed
░░ Defined-By: systemd
░░ Support: https://access.redhat.com/support
░░ 
░░ A start job for unit named.service has finished with a failure.
░░ 
░░ The job identifier is 1915 and the job result is failed.

删除从服务器区域数据配置文件中的 allow-update { none; };

7)再启动从服务

[root@slave ~]# systemctl start named
[root@slave ~]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; preset: disabled)Active: active (running) since Wed 2025-11-05 17:45:35 CST; 1min 20s agoProcess: 2191 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else>Process: 2194 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)Main PID: 2195 (named)Tasks: 10 (limit: 12067)Memory: 29.0MCPU: 74msCGroup: /system.slice/named.service└─2195 /usr/sbin/named -u named -c /etc/named.confNov 05 17:45:35 slave named[2195]: zone 72.168.192.in-addr.arpa/IN: sending notifies (serial 2025110501)
Nov 05 17:45:35 slave named[2195]: resolver priming query complete
Nov 05 17:45:35 slave named[2195]: zone example.com/IN: Transfer started.
Nov 05 17:45:35 slave named[2195]: transfer of 'example.com/IN' from 192.168.72.18#53: connected using 192.168.72.38#42815
Nov 05 17:45:35 slave named[2195]: zone example.com/IN: transferred serial 2025110501
Nov 05 17:45:35 slave named[2195]: transfer of 'example.com/IN' from 192.168.72.18#53: Transfer status: success
Nov 05 17:45:35 slave named[2195]: transfer of 'example.com/IN' from 192.168.72.18#53: Transfer completed: 1 messages, 11 records, 270 bytes>
Nov 05 17:45:35 slave named[2195]: zone example.com/IN: sending notifies (serial 2025110501)
Nov 05 17:45:35 slave named[2195]: managed-keys-zone: Initializing automatic trust anchor management for zone '.'; DNSKEY ID 20326 is now tr>
Nov 05 17:45:35 slave named[2195]: managed-keys-zone: Initializing automatic trust anchor management for zone '.'; DNSKEY ID 38696 is now tr>

8)查看从服务器的区域数据文件是否已经同步

[root@slave ~]# cd /var/named/slaves/
[root@slave slaves]# ls
example.com.arpa.zone  example.com.zone

可以发现已经同步。

9)验证域名解析

[root@slave ~]# dig -t A www.example.com @192.168.72.38; <<>> DiG 9.16.23-RH <<>> -t A www.example.com @192.168.72.38
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22453
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: cc217a4fc217ee6f01000000690b1d81bf5afbd038daefbf (good)
;; QUESTION SECTION:
;www.example.com.		IN	A;; ANSWER SECTION:
www.example.com.	86400	IN	A	192.168.72.8;; Query time: 0 msec
;; SERVER: 192.168.72.38#53(192.168.72.38)
;; WHEN: Wed Nov 05 17:48:49 CST 2025
;; MSG SIZE  rcvd: 88[root@slave ~]# dig -t A www.example.com @192.168.72.18; <<>> DiG 9.16.23-RH <<>> -t A www.example.com @192.168.72.18
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16437
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 9ed63089a1921cee01000000690b1d98289ae5b3978b1364 (good)
;; QUESTION SECTION:
;www.example.com.		IN	A;; ANSWER SECTION:
www.example.com.	86400	IN	A	192.168.72.8;; Query time: 0 msec
;; SERVER: 192.168.72.18#53(192.168.72.18)
;; WHEN: Wed Nov 05 17:49:12 CST 2025
;; MSG SIZE  rcvd: 88

4.3 修改web服务

将web服务的dns修改如下:

[root@web ~]# nmcli d show ens160 
GENERAL.DEVICE:                         ens160
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:AB:A3:7A
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ens160
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/3
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.72.8/24
IP4.GATEWAY:                            192.168.72.2
IP4.ROUTE[1]:                           dst = 192.168.72.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.72.2, mt = 100
IP4.DNS[1]:                             192.168.72.28
IP6.ADDRESS[1]:                         fe80::20c:29ff:feab:a37a/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 1024
[root@web ~]# nmcli c m ens160 ipv4.dns "192.168.72.28 192.168.72.38"
[root@web ~]# nmcli c up ens160 
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
[root@web ~]# nmcli d show ens160 
GENERAL.DEVICE:                         ens160
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:AB:A3:7A
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ens160
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/4
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.72.8/24
IP4.GATEWAY:                            192.168.72.2
IP4.ROUTE[1]:                           dst = 192.168.72.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.72.2, mt = 100
IP4.DNS[1]:                             192.168.72.28
IP4.DNS[2]:                             192.168.72.38
IP6.ADDRESS[1]:                         fe80::20c:29ff:feab:a37a/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 1024

4.4 配置验证

1)主从服务都存在

[root@web ~]# curl www.example.com
welcome to nginx 192.168.72.8

2)将主服务器关闭,然后再测试

[root@server named]# systemctl stop named[root@web ~]# curl www.example.com
welcome to nginx 192.168.72.8

3)将从服务器关闭,主服务打开,然后再测试

[root@server named]# systemctl start named[root@slave ~]# systemctl stop named[root@web ~]# curl www.example.com
welcome to nginx 192.168.72.8

4)将主从服务器都关闭,然后再测试

[root@slave ~]# dig -t A www.example.com @192.168.72.38
^C[root@slave ~]# dig -t A www.example.com @192.168.72.18
^X
; <<>> DiG 9.16.23-RH <<>> -t A www.example.com @192.168.72.18
;; global options: +cmd
;; connection timed out; no servers could be reached
http://www.dtcms.com/a/585500.html

相关文章:

  • 免费咨询问题的网站腾讯建设网站视频视频下载
  • GME 和MGRE综合实验
  • Linux下,获取子进程退出值和异常终止信号
  • 计算机网络自顶向下方法38——网络层 泛化转发与SDN
  • 243-基于Django与VUE的笔记本电脑数据可视化分析系统
  • 婚礼策划网站设计wordpress 图像大小
  • 哈尔滨网站建设1元钱wordpress rpc利用 扫描
  • Redis 缓存怎么更新?—— 四种模型与一次“迟到的删除”
  • 网站制作二维码亮点云建站
  • VS及QT开发环境搭建(保姆级)
  • 【申论】概括归纳类题解题思路
  • 前端正则表达式实战合集:表单验证与字符串处理高频场景
  • 嵌入式Linux驱动开发全流程:工具协作+核心概念拆解(从入门到理解)
  • 建设通是正规网站吗洛阳市霞光游乐设备有限公司
  • 鸿蒙(HarmonyOS)开发常见错误分析与解决方案
  • 入门git:部署到公网
  • Vue 4.0实战指南:从数据驱动到状态管理的核心突破
  • 人工智能:什么是AIGC?什么是AI4S?人工智能四大核心领域全景解析
  • Git 开发全流程规范:分支创建+关联远程+rebase同步+分支清理实战
  • 【小程序】详细比较微信小程序的 onLoad 和 onShow
  • Linux文件系统简介
  • 人工智能:卫星网络的“智慧中枢“
  • 网站底部导航菜单自己搞网站建设
  • 百度测开面经(分类版)
  • 回归、分类、聚类
  • 【Linux网络】Socket编程TCP-实现Echo Server(上)
  • 关系型数据库-PostgreSQL
  • 英文网站定制哪家好wordpress上传主题提示要ftp
  • Vue 项目实战《尚医通》,已有医院数据的 TS 类型定义,笔记12
  • UE5 C++ 进阶学习 —— 02 - 小案例