一、从属dns
在网络越来越发达的时代,若dns出现问题,则整个网络均会处于瘫痪的状态,为了缓解dns的巨大压力,所以出现了主从dns服务器。
dns利用类似于树形目录的架构,将主机名的管理分配在不同的层级的dns服务器中,并进行分层管理,所以每一台dns服务器记忆的信息就不会很多,而且若有ip的变动时也相对来说更容易修改。
##开启第二台虚拟机,作出以下策略。
1、配置yum源。
2、yum install bind -y
3、systemctl stop firewalld
4、systemctl disable firewalld
5、systemctl start named
6、systemctl enable named
##配置好从属dns后.
vim /etc/named.conf
10 options {
11 listen-on port 53 { any; };
12 listen-on-v6 port 53 { ::1; };
13 directory "/var/named";
14 dump-file "/var/named/data/cache_dump.db";
15 statistics-file "/var/named/data/named_stats.txt";
16 memstatistics-file "/var/named/data/named_mem_stats.txt";
17 allow-query { any; };
vim /etc/named.rfc1912.zones
24 zone "westos.com" IN {
25 type slave; ##类型为从属dns
26 masters {172.25.254.173;}; ##主dns为172.25.254.173
27 file "slavec/westos.com.inter"; ##文件为172.25.254.173的westos.com.inter
28 allow-update { none; }; ##没有人可以进行更新
29 };
主dns服务器:
因为在主dns服务器上设置过双向解析的实验,所以以下实验均在外网的配置文件中实现。
vim /etc/named.rfc1912.zones.inter
24 zone "westos.com" IN {
25 type master;
26 file "westos.com.inter";
27 allow-update { none; };
28 also-notify {172.25.254.71;}; ##更新知会71从属dns服务器。
29 };
在主dns与从属dns上,如果将主dns中文件进行了改变,在从属dns服务器上若必须进行重启服务的行为,则是一种非常麻烦的行为,所以可以在双方的配置文件中进行配置,在主dns上改变了相应的文件,从属dns是在不用重启服务的情况下,直接进行文件的更新。在此在配置文件中有一个非常重要的参数,(serial)。每次在将主dns上的配置文件改变是,必须将serial参数进行相应的改变,从属dns才会有对配置文件的更新,此参数的最大数值为10位数,所以可将此数改为2017112701,表示为2017年11月27号文件的第一次改动,会更加方便管理。
改变主dns服务器上westos.com.inter文件的内容。
对主dns进行重启服务,systemctl restart named
测试:
###理论上讲,在从属dns上的/var/named/slaves/目录中应该有主dns的westos.com.inter文件,但若没有出现,则或许是selinux,权限的问题。
####在进行以下实验时,注意将主dns上的文件westos.com.inter进行复制一份,因为在进行以下实验时,若在主dns上将服务重启后,改文件会进行相应的改变,为了方便下次实验的进行,最好将该文件复制一份,在复制时,注意加上-p,
二、dns的远程更新
在dns服务器上修改配置文件
vim /etc/named.rfc1912.zones.inter
24 zone "westos.com" IN {
25 type master;
26 file "westos.com.inter";
27 allow-update { 172.25.254.71; }; ##允许172.25.254.71主机进行远程更新
28 also-notify {172.25.254.71;};
29 };
重启服务systemctl restart named
测试:##此时测试时会出现问题,注意日志的报错。
[root@slave slaves]# nsupdate
> server 172.25.254.173
> update add bbs.westos.com 86400 A 1.1.1.116
> send
update failed: REFUSED
日志报错为:文件权限不够,被拒绝
解决方法:chmod g+w /var/named
重新测试:
[root@slave slaves]# nsupdate
> server 172.25.254.173
> update add bbs.westos.com 86400 A 1.1.1.116
> send
在主dns上重启服务后,westos.com.intet被改变为:
三、key的制作
远程更新的ip是可以被别的主机进行冒充,会造成不安全的行为所以在此制作一个key,将公钥与私钥传给需要远程更新的主机。
1、制作key
cp -p /etc/rndc.key /etc/zhaoyan.key
2、[root@server named]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST zhaoyan
Kzhaoyan.+157+38425
3、改变/etc/zhaoyan/key 中的内容
1 key "zhaoyan" {
2 algorithm hmac-md5;
3 secret "7DZwUW8TwNC4GYeblR0vPQ==";
4 };
4、改变/etc/named.conf文件中的内容
将所建成的公钥私钥传给远程更新的主机
scp Kzhaoyan.+157+38425.* root@172.25.254.71:/mnt/
5、重启服务
测试:
[root@desktop mnt]# nsupdate -k Kzhaoyan.+157+38425.key
> server 172.25.254.173
> update delete bbs.westos.com
> send
>
四、动态ip的远程更新
(要进行远程更新主机与域名必须一致,本次实验为www.westos.com)
上述的远程的更新的ip是静态的,但也是一种不安全的行为,若其他主机将ip改为配置文件中允许远程更新的ip,是一种非常不安全的行为,若可进行远程更新的主机是一个动态获取ip,在每次重启网络服务时就会改变ip,更加不利于管理。此时,将dhcp与dns进行一种结合,会是一种非常明智的行为.
1、下载dhcp服务
2、修改配置文件
3、先做好dhcpd服务
vim /etc/dhcp/dhcpd.conf
7 option domain-name "westos.com"; ##域名为westos.com
8 option domain-name-servers 172.25.254.173; ##dns为172.25.254.173
30 subnet 172.25.254.0 netmask 255.255.255.0 {
31 range 172.25.254.190 172.25.254.200; ##要使ip在此范围内
32 option routers 172.25.254.173; ##网关为172.25.254.173
33 }
重启服务:
此时应已经可以实现dhcp的动态获取
但与dns并没有关联,通过man得知interim的使用
在/etc/dhcp/dhcpd.conf文件中修改配置文件
此时要远程更新的钥匙是不用给对应的主机了,在dns服务器上是知道此ip与钥匙的。
34 key zhaoyan {
35 algorithm hmac-md5;
36 secret "Ki9lzMIPZJOLSGoxQMaJgg==";
37 };
38
39 zone westos.com. {
40 primary 127.0.0.1; ##使用dns服务器内部的传输,速度会有很大的提升
41 key zhaoyan;
42 }
此时打开另一台虚拟机,将ip的配置文件改为dhcp动态获取模式,并且关闭除了dns服务器之外其他所有的dhcp服务,以免造成干扰,然后在这台虚拟机上重启网络服务。
测试结果:
动态获取的结果:
dns服务器监控结果:
###总结:在dns的所有配置中,有报错,基本会有以下几点。
1、 NXDOMAIN 证明在dns服务器上没有此域名
2、SERFAIL :
(1)、本机没有做本地解析文件,出现失败的报错
(2)、dns服务器上没有关闭firewalld
(3)、dns服务器上没有关闭selinux
(4)、实验中经常会出现cp文件,没有加-p参数,使得权限出现了问题。
##排错思想均为连接出现失败时,清空日志,重新连接,找出错误原因,大部分原因均是打错行为,尤其是在name.localname文件复制过去后,重新编辑此文件,注意此文件中@的用法,很重要!!!