综合案例,实现 Internet 的DNS 服务架构
实验拓扑
所有机器的selinux和防火墙都提前关闭了
setenforce 0
systemctl stop firewalld
1. 10.0.0.151机器 部署web服务
root@maple-u18:~# apt install -y apache2
#ubuntu服务器下载安装之后会自动启动
root@maple-u18:~# systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Sun 2021-05-02 22:13:02 CST; 42s ago
Main PID: 24876 (apache2)
Tasks: 55 (limit: 2290)
CGroup: /system.slice/apache2.service
├─24876 /usr/sbin/apache2 -k start
├─25633 /usr/sbin/apache2 -k start
└─25634 /usr/sbin/apache2 -k start
May 02 22:12:47 maple-u18.maple.com systemd[1]: Starting The Apache HTTP Server...
May 02 22:13:02 maple-u18.maple.com systemd[1]: Started The Apache HTTP Server.
2. 10.0.0.230机器搭建主DNS服务器解析maple.com域,并为www主机提供域名解析服务
[root@maple-c8-n2 ~]# yum install -y bind bind-utils
[root@maple-c8-n2 ~]# vim /etc/named.conf
options {
listen-on port 53 { any; };
allow-query { any; };
dnssec-enable no; #先将这两个验证关闭,不然后面主从区域传送会出现问题
dnssec-validation no;
}
[root@maple-c8-n2 ~]# vim /etc/named.rfc1912.zones
zone "maple.com" IN {
type master;
file "maple.com.zone";
};
[root@maple-c8-n2 ~]# named-checkconf #检测有没有语法错误
[root@maple-c8-n2 ~]# cd /var/named/
[root@maple-c8-n2 named]# ll
total 16
drwxrwx--- 2 named named 6 Aug 25 2020 data
drwxrwx--- 2 named named 6 Aug 25 2020 dynamic
-rw-r----- 1 root named 2253 Aug 25 2020 named.ca
-rw-r----- 1 root named 152 Aug 25 2020 named.empty
-rw-r----- 1 root named 152 Aug 25 2020 named.localhost
-rw-r----- 1 root named 168 Aug 25 2020 named.loopback
drwxrwx--- 2 named named 6 Aug 25 2020 slaves
[root@maple-c8-n2 named]# cp -p named.localhost maple.com.zone
[root@maple-c8-n2 named]# vim maple.com.zone
$TTL 1D
@ IN SOA master.maple.com. root.maple.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 10.0.0.230
www A 10.0.0.151
[root@maple-c8-n2 named]# named-checkzone maple.com maple.com.zone
zone maple.com/IN: loaded serial 0
OK
[root@maple-c8-n2 named]# systemctl start named
3. 10.0.0.231机器搭建从服务器,实现主从区域复制。
[root@maple-c8-n3 ~]# yum install -y bind bind-utils
[root@maple-c8-n3 ~]# vim /etc/named.conf
options {
listen-on port 53 { any; };
allow-query { any; };
allow-transfer {none;};
dnssec-enable no;
dnssec-validation no;
}
[root@maple-c8-n3 ~]# vim /etc/named.rfc1912.zones
zone "maple.com" IN {
type slave;
masters {10.0.0.230;};
file "slaves/maple.com.zone.slave";
};
[root@maple-c8-n3 ~]# cd /var/named/slaves/
[root@maple-c8-n3 slaves]# ll
total 0
[root@maple-c8-n3 slaves]# systemctl start named
[root@maple-c8-n3 slaves]# ll
total 4
-rw-r--r-- 1 named named 247 May 2 22:36 maple.com.zone.slave
#10.0.0.230主dns服务器优化区域传输的安全项
[root@maple-c8-n2 named]# vim maple.com.zone
$TTL 1D
@ IN SOA master.maple.com. root.maple.com. (
2 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
NS slave
master A 10.0.0.230
slave A 10.0.0.231
www A 10.0.0.151
[root@maple-c8-n2 named]# vim /etc/named.conf
options{
allow-transfer {10.0.0.231;};
}
[root@maple-c8-n2 named]# rndc reload
server reload successful
#dig测试从服务器
[root@maple-c8-n2 named]# dig www.maple.com @10.0.0.231
; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8 <<>> www.maple.com @10.0.0.231
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46744
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: af01b2770b0a3deaadb804d7608ebc2d50168380c95567ed (good)
;; QUESTION SECTION:
;www.maple.com. IN A
;; ANSWER SECTION:
www.maple.com. 86400 IN A 10.0.0.151
;; AUTHORITY SECTION:
maple.com. 86400 IN NS slave.maple.com.
maple.com. 86400 IN NS master.maple.com.
;; ADDITIONAL SECTION:
master.maple.com. 86400 IN A 10.0.0.230
slave.maple.com. 86400 IN A 10.0.0.231
;; Query time: 0 msec
;; SERVER: 10.0.0.231#53(10.0.0.231)
;; WHEN: Sun May 02 22:50:21 CST 2021
;; MSG SIZE rcvd: 159
4. 10.0.0.200机器部署 com.域的区域解析服务器.并将maple.com子域委派给10.0.0.230,10.0.0.231
[root@maple-c7-node2 ~]# yum install -y bind bind-utils
[root@maple-c7-node2 ~]# vim /etc/named.conf
options {
listen-on port 53 { any; };
allow-query { any; };
dnssec-enable no;
dnssec-validation no;
}
[root@maple-c7-node2 ~]# vim /etc/named.rfc1912.zones
zone "com" IN {
type master;
file "com.zone";
};
[root@maple-c7-node2 ~]# named-checkconf
[root@maple-c7-node2 ~]# cd /var/named/
[root@maple-c7-node2 named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@maple-c7-node2 named]# cp -p named.localhost com.zone
[root@maple-c7-node2 named]# vim com.zone
$TTL 1D
@ IN SOA ns.com. root.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns
maple NS masterdns1
maple NS slavedns1
ns A 10.0.0.200
masterdns1 A 10.0.0.230
slavedns1 A 10.0.0.231
[root@maple-c7-node2 named]# named-checkzone com com.zone
zone com/IN: loaded serial 0
OK
[root@maple-c7-node2 named]# dig www.maple.com @10.0.0.200
; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> www.maple.com @10.0.0.200
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23412
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.maple.com. IN A
;; ANSWER SECTION:
www.maple.com. 86400 IN A 10.0.0.151
;; AUTHORITY SECTION:
maple.com. 86400 IN NS master.maple.com.
maple.com. 86400 IN NS slave.maple.com.
;; ADDITIONAL SECTION:
slave.maple.com. 86400 IN A 10.0.0.231
master.maple.com. 86400 IN A 10.0.0.230
;; Query time: 2 msec
;; SERVER: 10.0.0.200#53(10.0.0.200)
;; WHEN: Sun May 02 23:11:37 CST 2021
;; MSG SIZE rcvd: 131
5、10.0.0.150 实现根域解析的根服务器
[root@maple-c8-n1 ~]# yum install -y bind bind-utils
[root@maple-c8-n1 ~]# vim /etc/named.conf
options {
listen-on port 53 { any; };
allow-query { any; };
dnssec-enable no;
dnssec-validation no;
}
zone "." IN {
type master;
file "root.zone";
};
}
[root@maple-c8-n1 ~]# cd /var/named/
[root@maple-c8-n1 named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@maple-c8-n1 named]# cp -p named.localhost root.zone
[root@maple-c8-n1 named]# vim root.zone
$TTL 1D
@ IN SOA master. root. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
com NS comns
master A 10.0.0.150
comns A 10.0.0.200
[root@maple-c8-n1 named]# named-checkzone . root.zone
zone ./IN: loaded serial 0
OK
[root@maple-c8-n1 named]# named-checkconf
[root@maple-c8-n1 named]# systemctl start named
[root@maple-c8-n1 named]# dig www.maple.com @10.0.0.150
; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8 <<>> www.maple.com @10.0.0.150
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22593
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: ca1197770fe2b35b30efcff7608ec355365c33cd2de6fca6 (good)
;; QUESTION SECTION:
;www.maple.com. IN A
;; ANSWER SECTION:
www.maple.com. 86400 IN A 10.0.0.151
;; AUTHORITY SECTION:
maple.com. 86400 IN NS slavedns1.com.
maple.com. 86400 IN NS masterdns1.com.
;; ADDITIONAL SECTION:
slavedns1.com. 86400 IN A 10.0.0.231
masterdns1.com. 86400 IN A 10.0.0.230
;; Query time: 2 msec
;; SERVER: 10.0.0.150#53(10.0.0.150)
;; WHEN: Sun May 02 23:20:53 CST 2021
;; MSG SIZE rcvd: 167
6、10.0.0.152机器上实现 递归查询的dns服务器,当本地没有对应域名记录是,找根查询。
[root@maple-c7-n1 ~]# yum install -y bind bind-utils
[root@maple-c7-n1 ~]# vim /etc/named.conf
options {
listen-on port 53 { any; };
allow-query { any; };
dnssec-enable no;
dnssec-validation no;
}
[root@maple-c7-n1 ~]# vim /var/named/named.ca
. 518400 IN NS a.root-servers.net.
a.root-servers.net. 3600000 IN A 10.0.0.150
[root@maple-c7-n1 ~]# systemctl start named
[root@maple-c7-n1 ~]# dig www.maple.com @10.0.0.152
; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> www.maple.com @10.0.0.152
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59145
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.maple.com. IN A
;; ANSWER SECTION:
www.maple.com. 86400 IN A 10.0.0.151
;; AUTHORITY SECTION:
maple.com. 86400 IN NS slave.maple.com.
maple.com. 86400 IN NS master.maple.com.
;; ADDITIONAL SECTION:
master.maple.com. 86400 IN A 10.0.0.230
slave.maple.com. 86400 IN A 10.0.0.231
;; Query time: 4 msec
;; SERVER: 10.0.0.152#53(10.0.0.152)
;; WHEN: Sun May 02 23:26:40 CST 2021
;; MSG SIZE rcvd: 131
7、10.0.0.153机器部署本地转发dns,将请求转发到10.0.0.152服务器。
[root@maple-c6 ~]# yum install -y bind bind-utils
options {
listen-on port 53 { any; };
allow-query { any; };
forward first;
forwarders {10.0.0.152};
recursion yes;
dnssec-enable no;
dnssec-validation no;
...
};
[root@maple-c6 ~]# service named start
Starting named: [ OK ]
[root@maple-c6 ~]#
[root@maple-c6 ~]# dig www.maple.com @10.0.0.153
; <<>> DiG 9.7.0-P2-RedHat-9.7.0-5.P2.el6 <<>> www.maple.com @10.0.0.153
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52329
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;www.maple.com. IN A
;; ANSWER SECTION:
www.maple.com. 86178 IN A 10.0.0.151
;; AUTHORITY SECTION:
maple.com. 86178 IN NS master.maple.com.
maple.com. 86178 IN NS slave.maple.com.
;; ADDITIONAL SECTION:
slave.maple.com. 86178 IN A 10.0.0.231
master.maple.com. 86178 IN A 10.0.0.230
;; Query time: 1 msec
;; SERVER: 10.0.0.153#53(10.0.0.153)
;; WHEN: Sun May 2 23:30:21 2021
;; MSG SIZE rcvd: 120
8、10.0.0.1PC端验证。