一.DNS高速缓存(该实验必须连上网)
作用:如果一个地址已经访问过就可以缓存在本地,
再次访问就可以直接从缓存里拿到解析。
不仅提升了域名解析成ip的速度还减少了DNS服务器的压力。
搭建虚拟机联网环境(服务端设网关,真机做路由)
搭建虚拟机联网环境(服务端设网关,真机做路由,):
1.cd /etc/sysconfig/network-scripts/
vim ifcfg-eth0
编辑内容如下:
DEVICE=eth0
NAME=westos
ONBOOT=yes
BOOTPROTO=none
IPARRD=172.25.254.110
NETMASK=255.255.255.0
GATEWAY=172.25.254.57
DNS1=114.114.114.114
2.systemctl restart network
测试:
在110中ping 172.25.254.57 (成功后说明IP配置没错,
网络是好的,与防火墙无关)
ping www.baidu.com (成功后说明虚拟机可以联网)
环境搭建
服务端
1.在desktop上搭建yum源(服务端)
在desktop设置好网络的前提下
在真机的shell中
用scp 镜像绝对路径 root@172.25.254.110:/root/Desktop/
##节省时间(直接将真机桌面上的镜面托进去)scp的上传
mount 镜像 /mnt
rm -f /etc/yum.repos.d/*
vim /etc/yum.repos.d/huige.repo
编辑:[server]
name=huige
baseurl=file:///mnt
gpgcheck=0
yum clean all
2.yum install bind -y
systemctl stop firewalld (防止dns被防火墙挡住)
systemctl start named
(第一次执行这一步或者restart时,必须在shell中敲一些字母,才会生效)
systemctl enable named
环境搭建好后
操作:
服务端:
1..vim /etc/named.conf
更改:listen-on port 53 { any; }; 设置named监听的端口号,ip地址
allow-query { any; }; 允许那些客户端可以访问dns服务
forwarders { 114.114.114.114; }; 可以没有这一步 (加了这一行后让缓存的速度变快),
没有这一步时也可以dig,
但很慢(因为用域名根目录解析很慢,中国有三台,美国最多)
设置dns服务不知道域名时询问此ip主机
dnssec-validation no; 不需要验证(因为我们自己做的dns没有身份)
2.systemctl restart named
客户端:(此操作让客户端可以使用服务端的DNS)
1.vim /etc/resolv.conf
编辑:nameserver 172.25.254.110 (当遇到不认识的域名时,询问的dns)测试2 ping www.baidu.com
2.测试2 dig www.baidu.com
如果ANSWER SECTION ;
www.baidu.com 49 IN CNAME www.a.shifen.com.
www.a.shifen.com. 142 IN A 61.135.169.125
……
Query time: 164 msec
server: 172.25.254.110#53(172.25.254.110)
WHEN: Sat Aug 11 ……
3.netstat -antlupe | grep named 查看name服务的所有端口
二、权威dns的正向解析(将网址(域名)解析成IP)
先清空环境
vim /etc/named.conf
删除forwarders { 114.114.114.114; };这一行
vim /etc/named.rfc1912.zones
25 zone "westos.com" IN { 要维护的域名是westos.com
26 type master;
27 file "westos.com.zone"; A记录存放文件是westos.com.zone
28 allow-update { none; };
29 };
cd /var/named/
cp -p named.localhost westos.com.zone
vim westos.com.zone 编辑A记录文件(指定dns主机,com后面记得要加.
在这个文件里没有点就会默认被加上一个@变量,@就是westos.com)
$TTL 1D
记录可以保存一天
@ IN SOA dns.westos.com. huige.westos.com. (
@代表westos.com dns.westos.com是服务端的主机名 root管理huige.com这个域名
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com. 指定dns主机,com后面记得要加.
在这个文件里没有点就会默认被加上一个@变量,@就是westos.com
dns A 172.25.254.110 指定这台dns服务器的A记录
www A 172.25.254.57 添加一条A记录,表示将www.westos.com解析成172.25.254.57
systemctl restart named
在客户端
1.vim /etc/resolv.conf
加 nameserver 172.25.254.110
2.dig www.westos.com
dig域名可以看到被解析成了172.25.254.110了,
这时候如果ping这个域名实际就是在ping 172.25.254.110这个ip:
三、权威DNS反向解析(将ip解析成网址(域名))
vim /etc/named.rfc1912.zones
49 zone "254.25.172.in-addr.arpa" IN { ip要反着写,表示172.25.254整个网段
50 type master;
51 file "westos.com.ptr"; 指定A记录文件名称
52 allow-update { none; };
53 };
cd /var/named/
cp -p named.loopback westos.com.ptr
vim westos.com.ptr
$TTL 1D
@ IN SOA dns.westos.com. huige.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.254.110
222 PTR www.westos.com.
systemctl restart named
客户端:
vim /etc/resolv.conf
nameserver 172.25.254.110
dig -x可以看到将172.25.254.110反向解析成了www.westos.com这个网址
六、双向解析(让不同(内网客户和外网客户)客户得到的解析不同)
作用:针对不同用户解析成不同的ip
Tip:这个实验仅针对正向解析,前面做的反向解析不影响实验。
服务端:
cp -p westos.com.zone westos.com.neiwang
[root@dns named]# vim westos.com.neiwang
$TTL 1D
@ IN SOA dns.westos.com. huige.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 192.168.0.110
www A 192.168.0.57
systemctl restart named
客户端1(172.25.254.210):
vim /etc/resolv.conf
nameserver 172.25.254.110
客户端2(172.25.254.123):
vim /etc/resolv.conf
nameserver 172.25.254.110
后dig www.westos.com(看不到解析答案,说明被屏蔽)
可以看到不同的用户访问同一个网址解析到的ip是不同的。
七、辅助dns
dns服务器(172.25.254.110)
删除双向解析实验的配置,只保留到55行的内容,删除掉上次实验写入的,清空环境
与下面图片不同的部分删除或修改(必须删掉,注释掉也不行):
vim /etc/named.conf
systemctl restart named
编辑 vim /etc/resolv.conf
写入nameserver 172.25.254.110
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { none; };
allow-transfer { 172.25.254.210; };
also-notify { 172.25.254.210; };
};
systemctl restart named
cd /var/named/
ls
vim westos.com.zone ,将A记录改变
$TTL 1D
@ IN SOA dns.westos.com. huige.westos.com. (
2018111801 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.254.110
www A 172.25.254.114
systemctl restart named
辅助dns服务器(172.25.254.210):
yum install bind -y
vim /etc/named.conf
vim /etc/named.rfc1912.zones
25 zone "westos.com" IN { #域名名称,与主服务器相同
26 type slave; #这台是备用服务器
27 masters { 172.25.254.110; }; #从110这台主服务器同步A记录
28 file "slaves/westos.com.zone"; #A记录文件文件位置,写slaves不要忘了s
29 allow-update { none; };
30 also-notify { 172.25.254.210; }; #允许254.210主机更新A文件
31 };
systemctl stop firewalld
systemctl start named
ls /var/named/slaves/ #查看slaves目录,可以看到自动从252.110主机同步过来一个A记录文件
westos.com.zone
客户端(172.25.254.123):
vim /etc/resolv.conf
nameserver 172.25.254.210 #将备用dns服务器作为本机的dns
在辅助DNS测试看是否同步
DNS的远程更新
在主DNS中(desktop)进行配置
cd /var/named/
ls
cp -p westos.com.zone /mnt/
cd
ls /mnt/
vim /etc/named.rfc1912.zones
systemctl restart named
chmod o+w /var/named/
在执行
getenforce
Disabled
不用处理
当执行 getenforce
显示Enforcing
需要编辑 getsebool -a | grep named
编辑 setsebool - P named_write_master_zones on
在server中进行远程更新
[root@server ~]# nsupdate
> server 172.25.254.110
> update add test.westos.com 86400 A 172.25.254.114
> send
> quit
更新成功并退出
在desktop中执行
systemctl restart named
vim westos.com.zone
在desktop测试
dig test.westos.com
key进行DNS的远程更新
#####(服务端的selinux为disabled或为Enforcing时,需要编辑 getsebool -a | grep named
编辑 setsebool - P named_write_master_zones on)
#####而且
首先在主DNS(desktop)中进行配置
首先实验环境得配置好
[root@localhost named]# cd /var/named/
[root@localhost named]# ls
[root@localhost named]# rm -fr westos.com.zone.jnl
[root@localhost named]# cp -p /westos/westos.com.zone .
[root@localhost named]# ls
[root@localhost named]# cd /mnt/
[root@localhost westos]# ls
生成key
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos
ls
Kwestoskey.+157+44453.key Kwestoskey.+157+08750.private westos.com.zone
cat Kwestoskey.+157+08750.key
cp -p /etc/rndc.key /etc/westos.key
vim /etc/westos.key
###将westoskey. IN KEY 512 3 157 0Z6XnQD/oIDUBbgWzEPRbg==
中的0Z6XnQD/oIDUBbgWzEPRbg==,复制到secret中
vim /etc/named.conf
include "/etc/westos.key";
vim /etc/named.rfc1912.zones
systemctl restart named
scp Kwestoskey.+157+08750.* root@172.25.254.210:/mnt/
在server主机中
cd /westos/
ls
nsupdate -k Kwestoskey.+157+08750.key
> server 172.25.254.110
> update add ppp.westos.com 86400 A 172.25.254.155
> send
> quit
进入主DNS (desktop)中
cd
cd /var/named/
ls
systemctl restart named
vim westos.com.zone
远程更新成功