1、环境要求
需要8台主机
DNS客户端:192.168.100.120/24
本地DNS服务器(只缓存):192.168.100.100/24
转发目标DNS服务器:192.168.100.101/24
根DNS服务器:192.168.100.102/24
org域DNS服务器:192.168.100.103/24
test.org域主DNS服务器:192.168.100.104/24
test.org域从DNS服务器:192.168.100.105/24
www.test.org的WEB服务器:192.168.100.106/24
2、前提准备
关闭SElinux
关闭防火墙
时间同步
3、实现步骤
3.1、网络配置
#在客户端(192.168.100.120/24)配置DNS服务器地址
vim /etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.100.120
NETMASK=255.255.255.0
DNS1=192.168.100.100
ONBOOT=yes
3.2、实现WEB服务
#在web服务器192.168.100.106/24上实现
yum install httpd
echo www.test.org > /var/www/html/index.html
systemctl start httpd
3.3、 实现test.org域的主DNS服务器
#在test.org域主DNS服务器192.168.100.104/24上实现
yum install bind -y
vim /etc/named.conf
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
#只允许从服务器进行区域传输
allow-transfer { 192.168.100.105;};
vim /etc/named.rfc1912.zones
#加上这段
zone "test.org" {
type master;
file "test.org.zone";
};
创建test.org.zone 文件
cp -pv /var/named/named.localhost /var/named/test.org.zone
vim /var/named/test.org.zone
$TTL 1D
@ IN SOA master admin.test.org. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
NS slave
master A 192.168.100.104
slave A 192.168.100.105
www A 192.168.100.106
3.4、 实现magedu.org域的从DNS服务器配置
#在test.org域从DNS服务器192.168.100.105/24上实现
yum install bind -y
修改配置文件
vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
#不允许其它主机进行区域传输
allow-transfer { none;};
vim /etc/named.rfc1912.zones
zone “test.org” {
type slave;
masters { 192.168.100.104;};
file “slaves/test.org.slave”;
};
systemctl start named #第一次启动服务
rndc reload #不是第一次启动服务
ls /var/named/slaves/test.org.slave #查看区域数据库文件是否生成
3.5、 实现org域的主DNS服务器
#在org域的主DNS服务器192.168.100.103/24上实现
yum install bind -y
修改配置文件
vim /etc/named.conf
#注释掉两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
vim /etc/named.rfc1912.zones
#加上这段
zone "org" {
type master;
file "org.zone";
};
cp -pv /var/named/named.localhost /var/named/org.zone
vim /var/named/org.zone
$TTL 1D
@ IN SOA master admin.test.org. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
test NS testns1
test NS testns2
master A 192.168.100.103
testns1 A 192.168.100.104
testns2 A 192.168.100.105
systemctl start named #第一次启动服务
rndc reload #不是第一次启动服务
3.6、 实现根域的主DNS服务器
#在根域的主DNS服务器192.168.100.102/24上实现
yum install bind -y
修改配置文件
vim /etc/named.conf
#注释掉两行,第13行和第21行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
#将下面行改为:
zone "." IN {
type master;
file "root.zone";
};
cp -pv /var/named/named.localhost /var/named/root.zone
vim /var/named/root.zone
$TTL 1D
@ IN SOA master admin.test.org. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
org NS orgns
master A 192.168.100.102
orgns A 192.168.100.103
systemctl start named #第一次启动
rndc reload #不是第一次启动
3.7、 实现本地只缓存DNS服务器
#在转发目标的DNS服务器192.168.100.100/24上实现
yum install bind -y
修改配置文件
vim /etc/named.conf
#注释掉两行,第13行和第21行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
forward only;
forwarders { 192.168.100.100;};
dnssec-enable no;
dnssec-validation no
systemctl start named #第一次启动
rndc reload #不是第一次启动
4.8、客户端测试
cat /etc/resolv.conf
nameserver 192.168.100.100
dig www.test.org
; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7 <<>> www.test.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40755
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.test.org. IN A
;; ANSWER SECTION:
www.test.org. 86181 IN A 192.168.100.106
;; AUTHORITY SECTION:
test.org. 86181 IN NS ns2.test.org.
test.org. 86181 IN NS ns1.test.org.
;; ADDITIONAL SECTION:
ns2.test.org. 86181 IN A 192.168.100.104
ns1.test.org. 86181 IN A 192.168.100.105
;; Query time: 284 msec
;; SERVER: 192.168.100.100#53(192.168.100.100)
;; WHEN: Fri Oct 28 10:16:53 CST 2022
;; MSG SIZE rcvd: 98
curl www.test.org
www.test.org