一.准备
1.安装最小化系统并进行必要配置
-
安装最小系统
-
配置网络
-
1.修改centos7,8网卡名为传统网卡名
sed -i.org '/GRUB_CMDLINE_LINUX/s@"$@ net.ifnames=0 "@' /etc/default/grub
grub2-mkconfig -o /etc/grub2.cfg
reboot
-
2.配置静态网址
vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 NAME=eth0 BOOTPROTO=static HWADDR= IPADDR=192.168.131. NETMASK=255.255.255.0 GATEWAY=192.168.131.2
-
3.
reboot
-
-
安装必要软件
- 挂载光盘
mount /dev/sr0 /mnt cat > /etc/yum.repo.d/base <<eof [base] name=base baseurl=file:///mnt/ gpgcheck=0 enabled=1
- 安装相关软件
yum install httpd|bind vim
2.关闭防火墙
- CentOS6
chkconfig iptables off
service stop iptables
- CentOS7|8
systemctl disable firewalld
systemctl stop firewalld
3.关闭SElinux
- CentOS6|7|8
sed -i 's#SELINUX=enforcing#SELINUX=disabled#' /etc/selinux/config &> /dev/null
4.时间同步
CentOS6作为客户端
- 确认ntpd服务状态和配置文件
rpm -ql ntp
chkconfig ntpd on
service start ntpd
ss -unlp
- 编辑/etc/ntpd.conf,注释原来的国外的ntp服务器添加:
server ntp.aliyun.com iburst
server ntp1-7.aliyun.com iburst
CentOS6作为时间同步服务器
- 编辑修改/etc/ntpd.conf
添加:
server 172.20.3.82 iburst
更改:
restrict default nomodify notrap nopeer noquery --> restrict default nomodify
service ntpd start 启动服务
chkconfig ntpd on 开机启动
ss -unl 确认监听udp/123
CentOS7|8作为客户端
- 确认chronyd服务的状态
rpm -ql chrony
yum install chrony
systemctl status chronyd.seervice
systemctl start chronyd.seervice
- 编辑/etc/chrony.conf,注释原来的国外的ntp服务器,并添加阿里的公共ntp服务器
添加:
server ntp.aliyun.com iburst
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst
server ntp4.aliyun.com iburst
server ntp5.aliyun.com iburst
server ntp6.aliyun.com iburst
server ntp7.aliyun.com iburst
CentOS7|8作为服务器
- 编辑修改/etc/chronyd.conf
注释server开头的行
添加阿里的公共ntp服务器域名
ntp.aliyun.com iburst添加本地可连接本机同步的主机
allow 192.168.0.0/16即使本机时间未和阿里的ntp服务器时间同步,也向本地的其它主机提供时间同步服务
local stratum 10
- 此处实验可以使用某台主机同步互联网的时间,其他主机同步该主机时间
5.主机需求及解析区域分配
主机 | 地址 |
---|---|
DNS客户端 | 192.168.131.6/24 |
本地DNS服务器(cache DNS) | 192.168.131.8/24 |
转发目标DNS服务器 | 192.168.131.18/24 |
根DNS服务器 | 192.168.131.28/24 |
cn域DNS服务器 | 192.168.131.38/24 |
suosuoli.cn域主DNS服务器 | 192.168.131.48/24 |
suosuoli.cn域从DNS服务器 | 192.168.131.58/24 |
www.suosuoli.cn的WEB服务器 | 192.168.131.68/24 |
二.实现
1.实现思路
- 由于该实验涉及到多台DNS服务器的配置,不可随意配置,需要以方便测试和排错为原则来
进行部署实现;此次部署实验大致顺序如下:
1.配置客户端地址并将其DNS服务器指向本地DNS服务器(192.168.131.8)
2.接着配置WEB服务器,并保证客户端可以访问WEB服务器
3.接下来配置suosuoli.cn域的主DNS服务器,并保证客服端通过指定该主服务器能够顺利解析
suosuoli.cn(192.168.131.6:$dig www.suosuoli.cn @192.168.131.48 )
4.接着配置suosuoli.cn域的从DNS服务器,并保证将主DNS服务停止后客服端通过指定该从服
务器能够顺利解析suosuoli.cn(192.168.131.6:$dig www.suosuoli.cn @192.168.131.58 )
5.在主从DNS服务器配置OK后,就可以配置cn域DNS服务器了,配置完成后保证客户端通过指定
从cn域DNS服务器能够解析www.suosuoli.cn(192.168.131.6:$dig www.suosuoli.cn @192.168.131.28 )
6.配置转发目标DNS服务器,同样确保可以通过该转发服务器解析
7.配置本地DNS服务器,此时直接访问www.suosuoli.cn即可(curl www.suosuoli.cn)
2.实现步骤
2.1 客户端网络配置192.168.131.6/24
vim /etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.131.6
NETMASK=255.255.255.0
DNS1=192.168.8.8
ONBOOT=yes
service network restart | systemctl restart NetworkManager
2.2 WEB服务器配置192.168.131.68/24
rpm -q httpd || yum install httpd
echo www.magedu.org > /var/www/html/index.html
service httpd restart | systemctl start httpd
在客户端访问测试
192.168.131.6:$curl 192.168.131.68
2.3 suosuoli.cn域的主DNS服务器配置192.168.131.48/24
1.安装DNS实现BIND软件
rpm -q bind || yum install bind -yvim /etc/named.conf
2.注释掉相应配置项,以允许其它主机通过本服务器查询
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };3.在主配置文件添加选项只允许从服务器进行区域传输
allow-transfer { 192.168.131.58 ; };3.定义区域数据库类型和文件名
vim /etc/named.rfc1912.zones
zone "suosuoli.cn" {type master;file "suosuoli.cn.zone";
};4.定义区域数据库文件suosuoli.cn.zone
vim /var/named/suosuoli.cn.zone
$TTL 1D
@ IN SOA master admin.suosuoli.cn. (2019111709 ; serial2D ; refresh2H ; retry5D ; expire2H ) ; minimumNS masterNS slave
master A 192.168.131.48
slave A 192.168.131.585.更改所属组和权限
chgrp named /var/named/suosuoli.cn.zone
chmod 640 /var/named/suosuoli.cn.zone
service named start | systemctl start named # 第一次启动服务
rndc reload # 第一次启动服务后更改配置后使用rndc重新载入配置文件6.在客户端测试
192.168.131.6:$dig www.suosuoli.cn @192.168.131.48
2.4 suosuoli.cn域的从DNS服务器配置192.168.131.58/24
1.安装DNS实现BIND软件
rpm -q bind || yum install bind -y
2.vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
3.添加配置项,不允许其它主机进行区域传输
allow-transfer { none; };
4.定义区域数据库类型和文件名
vim /etc/named.rfc1912.zones
zone "suosuoli.cn" {type slave;masters { 192.168.131.48; };file "slaves/suosuoli.cn.slave";
};
service named start | systemctl start named
5.检查区域数据库是否生成
ls -l /var/named/slaves/suosuoli.cn.slave6.在客户端测试(先停止主服务器named)
192.168.131.48:service named stop | systemctl stop named
192.168.131.6:$dig www.suosuoli.cn @192.168.131.58
2.5 cn域的主DNS服务器配置192.168.131.38/24
yum install bind -y
1.注释两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };2.定义区域数据库类型和文件名
vim /etc/named.rfc1912.zones
zone "cn" {type master;file "cn.zone";
};3.编写区域数据库
vim /var/named/org.zone
$TTL 1D
@ IN SOA master admin.suosuoli.cn. (2019111709 ; serial2D ; refresh2H ; retry5D ; expire2H ) ; minimumNS master
suosuoli NS suousolins1
suosuoli NS suousolins2
master A 192.168.131.38
suousolins1 A 192.168.131.48
suousolins2 A 192.168.131.584.权限和所属组配置
chgrp named /var/named/cn.zone
chmod 640 /var/named/cn.zoneservice named start | systemctl start named5.在客户端测试
192.168.131.6:$dig www.suosuoli.cn @192.168.131.38
2.6 根域服务器主DNS服务器配置192.168.131.28/24
yum install bind -y
1.注释两行,并直接在主配置文件中定义根域文件名
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
zone "." IN {type master;file "root.zone"
};2.编写区域数据库
vim /var/named/root.zone
@TTL 1D
@ IN SOA master admin.suosuoli.cn. (2019111709 ; serial2D ; refresh2H ; retry5D ; expire2H ) ; minimumNS master
cn NS cnns
master A 192.168.131.28
cnns A 192.168.131.383.组和权限设置
chgrp named /var/named/root.zone
chmod 640 /var/named/root.zoneservice named start | systemctl start named4.在客户端测试
192.168.131.6:$dig www.suosuoli.cn @192.168.131.28
2.7 转发目标DNS服务器配置192.168.131.18/24
yum install bind -y1.注释两行
vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; }2.编写区域数据库文件(在根区域数据库文件的基础上更改)
vim /var/named/named.ca
使用‘;;’两个分号注释掉其它行,添加下面两行
. 518400 IN NS a.root-servers.net.
a.root-servers.net. 3600000 IN NS 192.168.131.28service named start | systemctl start named3.在客户端测试
192.168.131.6:$dig www.suosuoli.cn @192.168.131.18
2.8 本地DNS服务器配置192.168.131.8/24
yum install bind -y1.注释两行,并添加转发配置项,接着失能两项DNS安全检查配置项
vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; }
forward only;
forwarders { 192.168.131.18; };dnssec-enable no;
dnssec-validation no;service named start | systemctl start named3.在客户端测试
192.168.131.6:$dig www.suosuoli.cn @192.168.131.8
2.9 客服端测试
cat /etc/resolv.conf
nameserver 192.168.131.8
dig www.suosuoli.cn
root@localhost ~]# dig www.suosuoli.cn; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> www.suosuoli.cn
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 432453
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.suosuoli.cn. IN A
;; ANSWER SECTION:
www.suosuoli.cn. 86181 IN A 192.168.131.68
;; AUTHORITY SECTION:
suosuoli.cn. 86181 IN NS ns2.suosuoli.cn.
suosuoli.cn. 86181 IN NS ns1.suosuoli.cn.
;; ADDITIONAL SECTION:
suosuoli.cn. 86181 IN A 192.168.131.48
suosuoli.cn. 86181 IN A 192.168.131.58
;; Query time: 1 msec
;; SERVER: 192.168.8.8#53(192.168.8.8)
;; WHEN: Sun Nov 10 10:53:39 CST 2019
;; MSG SIZE rcvd: 127curl www.suosuooli.cn
<h1>Welcome!<h1>
关于DNS的介绍
3.Trouble shooting
- 1.解析出错状态分析
SERVFAIL:The nameserver encountered a problem while processing the query. 可使用dig +trace排错,可能是网络和防火墙导致
NXDOMAIN:The queried name does not exist in the zone. 可能是CNAME对应的A记录不存在导致
REFUSED:The nameserver refused the client's DNS request due to policy restrictions. 可能是DNS策略导致