实现Internet的DNS架构
实验导图如下:
准备工作
所有机器要求
- 关闭防火墙
- 关闭selinux
- 时间同步
实验步骤
1.web服务器配置172.20.54.8
yum -y install httpd
systemctl start httpd
echo "www.studylinux.xyz" > /var/www/html/index.html
2.配置关于域 ‘www.studylinux.xyz’ MASTER服务器
yum -y install bind bind-utlis
vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
allow-transfer {172.20.54.7;}; # 从服务器的IP
vim /etc/named.rfc1912.zone
zone "studylinux.xyz" {
type master;
file "studylinux.xyz.zone";
};
vim /var/named/studylinux.xyz.zone
$TTL 1D
@ IN SOA master admin (
1 ; serial #是一个序列号,当主DNS配置文件变更后对编号加1,总长度不能超过10位数
2D ; refresh #告诉slave间隔多久进行同步,即同步间隔时间
2H ; retry #如果slave同步失败后间隔多久再重新同步
2D ; expire #预期时间,多久没有与master联系,就放弃retry
1D ;minimum #最小TTL值,如果前面没有使用¥TTL来定义,就以此为准
)
NS master
NS slave
master A 172.20.54.6
slave A 172.20.54.7
www A 172.20.54.8
chmod 640 /var/named/studylinux.xyz.zone
chgrp named /var/named/studylinux.xyz.zone
named-checkconf //可以检查配置文件的语法。如果没提示说明语法正确
systemctl start named
rndc reload
// 测试
[root@Centos7 named]# dig www.studylinux.xyz @172.20.54.6
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> www.studylinux.xyz @172.20.54.6
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62421
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.studylinux.xyz. IN A
;; ANSWER SECTION:
www.studylinux.xyz. 86400 IN A 172.20.54.8
;; AUTHORITY SECTION:
studylinux.xyz. 86400 IN NS slave.studylinux.xyz.
studylinux.xyz. 86400 IN NS master.studylinux.xyz.
;; ADDITIONAL SECTION:
master.studylinux.xyz. 86400 IN A 172.20.54.6
slave.studylinux.xyz. 86400 IN A 172.20.54.7
;; Query time: 0 msec
;; SERVER: 172.20.54.6#53(172.20.54.6)
;; WHEN: Fri Nov 15 21:25:00 CST 2019
;; MSG SIZE rcvd: 136
3.配置关于域 ‘www.studylinux.xyz’ SLAVE服务器
yum -y install bind bind-utils
vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
allow-transfer { none; }; #不允许其他主机进行区域传输
vim /etv/named.rfc1912.zone
zone "studylinux.xyz" {
type slave;
masters {172.20.54.6;};
file "slaves/studylinux.xyz.slave";
};
named-checkconf # 检查配置文件语法
systemctl start named
[root@SLAVE ~]# ll /var/named/slaves/
total 4
-rw-r--r-- 1 named named 355 Nov 15 21:37 studylinux.xyz.slave
# 测试
[root@SLAVE ~]# dig www.studylinux.xyz @172.20.54.7
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> www.studylinux.xyz @172.20.54.7
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56607
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.studylinux.xyz. IN A
;; ANSWER SECTION:
www.studylinux.xyz. 86400 IN A 172.20.54.8
;; AUTHORITY SECTION:
studylinux.xyz. 86400 IN NS master.studylinux.xyz.
studylinux.xyz. 86400 IN NS slave.studylinux.xyz.
;; ADDITIONAL SECTION:
master.studylinux.xyz. 86400 IN A 172.20.54.6
slave.studylinux.xyz. 86400 IN A 172.20.54.7
;; Query time: 0 msec
;; SERVER: 172.20.54.7#53(172.20.54.7)
;; WHEN: Fri Nov 15 21:42:34 CST 2019
;; MSG SIZE rcvd: 136
4.搭建xyzDNS 子域名服务器172.20.54.5
yum -y install bind bind-utils
vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
vim /etc/named.rfc1912.conf
zone "xyz" {
type master
file "xyz.zone";
};
vim /var/named/xyz.zone
$TTL 1D
@ IN SOA master admin (1 2D 2H 2D 1D)
studylinux NS masterns1
studylinux NS masterns2
master A 172.20.54.5
masterns1 A 172.20.54.6
masterns2 A 172.20.54.7
named-checkconf
systemctl start named
chmod 640 /var/named/xyz.zone
chgrp named /var/named/xyz.zone
rndc reload
# 测试
[root@XYZDNS ~]# dig www.studylinux.xyz @172.20.54.5
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> www.studylinux.xyz @172.20.54.5
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17323
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.studylinux.xyz. IN A
;; ANSWER SECTION:
www.studylinux.xyz. 86400 IN A 172.20.54.8
;; AUTHORITY SECTION:
studylinux.xyz. 86400 IN NS masterns2.xyz.
studylinux.xyz. 86400 IN NS masterns1.xyz.
;; ADDITIONAL SECTION:
masterns1.xyz. 86400 IN A 172.20.54.6
masterns2.xyz. 86400 IN A 172.20.54.7
;; Query time: 2 msec
;; SERVER: 172.20.54.5#53(172.20.54.5)
;; WHEN: Sat Nov 16 08:27:28 CST 2019
;; MSG SIZE rcvd: 143
5.搭建根域名的DNS服务器172.20.54.4
yum -y install bind bind-utils
vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
zone "." in {
type master;
file "root.zone";
};
vim /var/named/root.zone
$TTL 1D
@ IN SOA master admin (1 2D 2H 2D 1D)
IN NS master
xyz IN NS xyzns
master A 172.20.54.4
xyzns A 172.20.54.5
chmod 640 /var/named/root.zone
chgrp named /var/named/root.zone
named-checkconf
systemctl start named
# 测试
[root@Centos7 ~]# dig www.studylinux.xyz @172.20.54.4
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> www.studylinux.xyz @172.20.54.4
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58075
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.studylinux.xyz. IN A
;; ANSWER SECTION:
www.studylinux.xyz. 86400 IN A 172.20.54.8
;; AUTHORITY SECTION:
studylinux.xyz. 86400 IN NS masterns2.xyz.
studylinux.xyz. 86400 IN NS masterns1.xyz.
;; ADDITIONAL SECTION:
masterns2.xyz. 86400 IN A 172.20.54.7
masterns1.xyz. 86400 IN A 172.20.54.6
;; Query time: 5 msec
;; SERVER: 172.20.54.4#53(172.20.54.4)
;; WHEN: Sat Nov 16 08:31:17 CST 2019
;; MSG SIZE rcvd: 143
6.搭建forwardDNS服务器 172.20.54.3
yum -y install bind bind-utils
vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
dnssec-enable no; #关闭安全验证
dnssec-validation no;
vim /var/named/named.ca
. 518400 IN NS a.root-servers.net.
a.root-servers.net. 518400 IN A 172.20.54.4
named-checkconf
systemctl start named
# 测试
[root@Centos7 ~]# dig www.studylinux.xyz @172.20.54.3
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> www.studylinux.xyz @172.20.54.3
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31011
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.studylinux.xyz. IN A
;; ANSWER SECTION:
www.studylinux.xyz. 86380 IN A 172.20.54.8
;; AUTHORITY SECTION:
studylinux.xyz. 86380 IN NS masterns1.xyz.
studylinux.xyz. 86380 IN NS masterns2.xyz.
;; ADDITIONAL SECTION:
masterns1.xyz. 86380 IN A 172.20.54.6
masterns2.xyz. 86380 IN A 172.20.54.7
;; Query time: 1 msec
;; SERVER: 172.20.54.3#53(172.20.54.3)
;; WHEN: Sat Nov 16 09:58:41 CST 2019
;; MSG SIZE rcvd: 143
7.搭建localDNS服务器 172.20.54.2
yum -y install bind bind-utils
vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
forward first;
forwarders {172.20.54.3;};
dnssec-enable no;
dnssec-validation no;
systemctl start reload
# 测试
[root@Centos7 ~]# dig www.studylinux.xyz @172.20.54.2
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> www.studylinux.xyz @172.20.54.2
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12810
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.studylinux.xyz. IN A
;; ANSWER SECTION:
www.studylinux.xyz. 86061 IN A 172.20.54.8
;; AUTHORITY SECTION:
studylinux.xyz. 86061 IN NS masterns2.xyz.
studylinux.xyz. 86061 IN NS masterns1.xyz.
;; ADDITIONAL SECTION:
masterns1.xyz. 86061 IN A 172.20.54.6
masterns2.xyz. 86061 IN A 172.20.54.7
;; Query time: 1 msec
;; SERVER: 172.20.54.2#53(172.20.54.2)
;; WHEN: Sat Nov 16 10:03:59 CST 2019
;; MSG SIZE rcvd: 143
8.搭建customer访问客户端172.20.54.1
yum -y install bind-utils
vim /etc/resolv.conf
search server0
nameserver 172.20.54.2
// 测试
[root@Centos7 ~]# ping www.studylinux.xyz
PING www.studylinux.xyz (172.20.54.8) 56(84) bytes of data.
64 bytes from 172.20.54.8 (172.20.54.8): icmp_seq=1 ttl=64 time=1.74 ms
64 bytes from 172.20.54.8 (172.20.54.8): icmp_seq=2 ttl=64 time=0.729 ms
[root@Centos7 ~]# dig www.studylinux.xyz
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> www.studylinux.xyz
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64919
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.studylinux.xyz. IN A
;; ANSWER SECTION:
www.studylinux.xyz. 86400 IN A 172.20.54.8
;; Query time: 7 msec
;; SERVER: 172.20.54.2#53(172.20.54.2)
;; WHEN: Sat Nov 16 10:21:50 CST 2019
;; MSG SIZE rcvd: 63
完