本片博客接上篇博客 DNS服务器的部署接着写:
五.DNS的反向解析
问:什么是反向解析?
答:当客户给DNS服务器一个IP地址时,DNS服务器会告诉客户该IP对应的域名,这就是dns的反向解析
实验过程
修改配置文件的过程类似于正向解析的修改过程
1、
vim /etc/named.rfc1912.zones
文件内容:
zone "0.168.192.in-addr.arpa" IN { #注意此处的IP地址要反着写
type master;
file "192.168.0.ptr";
allow-update { none; };
};
2、
cd /var/named/
cp -p named.loopback 192.168.0.ptr
3、
vim 192.168.0.ptr
文件内容:
$TTL 1D
@ IN SOA dns.weiwei.com. root.weiwei.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.weiwei.com.
dns A 192.168.0.110
109 PTR www.weiwei.com.
108 PTR bbs.weiwei.com.
107 PTR news.weiwei..com.
重启服务:
systemctl restart named
1、当DNS服务器还没有反向解析功能时,客户端需要进行反向解析时,显示如下图:
2、给DNS服务器增加反向解析功能
<1> 编辑/etc/named.rfc1912.zones文件
3、
编辑192.168.0.ptr文件
4、反向解析成功 有PTR记录
六.dns的双向解析
问:什么是双向解析
答:不同的客户端分别通过内网和外网访问同一个域名时,显示的是不同的A记录
实现方式:让不同的客户主机在访问时看不同的文件
实验环境:
2台客户端主机:
主机一IP:192.168.0网段(内网)
主机二IP:172.25.254网段(外网)
1台服务端主机2个网段IP地址:
IP1:192.168.0.110
IP2:172.25.254.110
实验过程:
1、
在192.168.0网段的客户主机中
vim /etc/resolv.conf
nameserver 192.168.0.110
在172.25.254网段的客户主机中
vim /etc/resolv.conf
nameserver 172.25.254.110
2、配置方式:
cd /var/named/
cp -p weiwei.com.zone weiwei.com.inter
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inters
3、编辑/var/named/weiwei.com.inter文件:
vim weiwei.com.inter
文件内容:
$TTL 1D
@ IN SOA dns.weiwei.com. root.weiwei.com (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.weiwei.com.
dns A 172.25.254.110
www CNAME weiwei.a.weiwei.com.
weiwei.a A 172.25.254.112
weiwei.a A 172.25.254.113
weiwei.com. MX 1 172.25.254.110.
4、编辑 /etc/named.rfc1912.inters文件
vim /etc/named.rfc1912.inters
文件内容:
zone "weiwei.com" IN {
type master;
file "weiwei.com.inter";
allow-update { none; };
};
5、编辑/etc/named.conf文件:
vim /etc/named.conf
#zone "." IN {
## type hint;
## file "named.ca";
##};
#
##include "/etc/named.rfc1912.zones";
##include "/etc/named.root.key";
view localnet {
match-clients { 192.168.0.0/24; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
};
view internet { match-clients { any; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.inters";
include "/etc/named.root.key";
};
systemctl restart named
6、测试:
分别在2个网段的主机中作同样域名的地址解析
得到的A记录不同
实验过程演示:
1、两个客户主机分别设置不同的dns解析地址:vim /etc/resolv.conf
2、将文件复制一份,然后加以修改
3、编辑外网读取的的weiwei.com.inter文件:
4、编辑外网读取的的文件/etc/named.rfc1912.inters文件
5、编辑/etc/named.conf文件,使得外网和内网的客户主机访问不同的文件:
6、测试:
七.dns集群
设想这样一种情况,现在只有一台DNS服务器,成千上万台客户主机都来访问该服务器,该服务器迟早有一天会崩溃。那我们应该怎么办??? 我们可以使用多台主机对该服务器进行辅助,因此,由一台主DNS服务器和多台辅助DNS服务器构成了DNS集群,当主DNS服务器的A记录更改以后,会同步到所有的服务器中。
实验过程:
1、配置一台辅助DNS服务器
dnf install bind -y #安装dns服务器
firewall-cmd --add-service=dns #设置防火墙允许dns服务
2、修改主dns服务器的文件:
vim /etc/named/rfc1912.zones
文件内容:
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { none; };
also-notify { 192.168.0.30; }; #主动通知的辅助dns主机
};
1、配置一台辅助DNS服务器
<1> 修改主配置文件:vim /etc/named.conf
<2> 修改子配置文件:vim /etc/named.rfc1912.zones
<3> 查看文件是否同步成功
<4> 可以看到辅助DNS服务器192.168.0.109配置成功
但是此时如果主DNS服务器的A记录更新以后,辅助DNS服务器并不能主动同步更新,所以我们需要配置主DNS服务器的/etc/named.rfc1912.zones文件,让它的A记录在更新的同时通知辅助DNS服务器也要做实时更新
测试:修改/etc/named/weiwei.com.zone文件
2、更改生效,同步成功
八.dns的更新
编辑文件使得别的主机可以通过远程来更新DNS服务器的A记录信息
基于ip地址的更新:
做该实验时最好先备份一下,下个实验需要还原环境,否则下个实验可能会出错
(备份:cp -p /var/named/weiwei.com.zone /mnt/)
在DNS服务器中设定:
vim /etc/named.rfc1912.zones
zone "weiwei.com" IN {
type master;
file "weiwei.com.zone";
allow-update { 192.168.0.109; }; #允许指定客户端更新westos域
also-notify { 192.168.0.109; };
};
测试:
在被允许的主机192.168.0.109中:
[root@rhel7_node1 ~]# nsupdate
> server 192.168.0.20
> update add hello.weiwei.com 86400 A 192.168.0.99 ##新增A记录
> send
> update delete hello.westos.com ##删除A记录
> send
DNS服务器主机:
被允许的主机:
dns基于key更新的方式:
由于基于IP的DNS更新存在一个弊端,比如有一台主机本来不允许更新dns服务器的A记录,但是它可以将自己主机的IP换成可以更新A记录的IP,那它又可以更新了,好像不太合理的样子,所以我们可以使用基于key的更新方式,谁有密钥谁就可以更新
1、dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST weiwei #生成名字叫weiwei的key文件
注意:此时可用命令dnssec-keygen --help查看该命令的用法
-a:加密类型,后的具体类型可用命令cat /etc/rndc.key查看,不同主机加密方式不一定相同
2、cp -p /etc/rndc.key /etc/weiwei.key #/etc/rndc.key为dns的key文件
vim /etc/weiwei.key #修改key文件
key "weiwei" {
algorithm hmac-sha256;
secret "siqSBdNUkKFNFiKSs/VgmQ=="; #将此处修改为生成的key文件里的字符串
};
3、修改主配置文件,将key文件添加到dns的配置里
vim /etc/named.conf
43行 include "/etc/weiwei.key";
vim /etc/named.rfc1912.zones
zone "weiwei.com" IN {
type master;
file "weiwei.com.zone";
allow-update { key weiwei; };
also-notify { 192.168.0.109; };
};
systemctl restart named
测试:
[root@rhel7_node1 ~]# nsupdate -k /mnt/Kwestos.+163+26695.private
> server 192.168.0.110
> update add hello.weiwei.com 86400 A 192.168.0.111
> send
> quit
还原实验环境:
1、生成key
2、编辑 /etc/weiwei.key文件
3、vim /etc/named.conf
vim /etc/named.rfc1912.zones
4、没有key时更新失败
将key发送给别的主机:
再次更新:
此时的更改并没有保存在A记录文件中,而是保存在临时文件/var/named/tmp-xxxx中
九.ddns(dhcp+dns)
问:有一台主机配置的是dhcp的网络,所以它的ip是自动分配的,此时我们怎么才能正常使用域名解析呢
答:做一个动态的域名解析
实验环境:
rhel8主机:配置DNS服务、搭建DHCP服务(给rhel7分配IP)
rhel7主机:一台处于weiwei.com域的主机(通过命令设置:hostnamectl set-hostname rhel8.weiwei.com),ip设置为rhel8主机的dhcp服务自动分配的,因此ip会变化
1、rhel8中:
<1>
dnf instsall dhcp-server -y #安装dhcp服务
<2>修改dhcp的配置文件
vim /etc/dhcpd/dhcpd.conf
文件内容:
ddhs-update-style interim; #开启更新dns的功能
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.51 192.168.0.80;
option routers 192.168.0.1; }
key weiwei { #key名称
algorithm hmac-sha256; #更改加密方式
secret siqSBdNUkKFNFiKSs/VgmQ==; #更改key
};
注意:此处相当于将更新dns的key给dhcp服务,这样dhcp服务就有权利去更新dns服务器的A记录
zone weiwei.com. { #域的名字
primary 127.0.0.1; #域所在的主机,但是由于此时dns和dhcp服务在一台主机上,所以直接用回环接口连接即可
key weiwei; #key的名字
}
注意:此处说明更新的域是哪个域
systemctl restart named
dns的key更新
测试: 设定测试主机网络工作方式为dhcp
设定主机名称test.westos.com
rhe7:
重启网络,此时要保证分配到的ip是rhel8主机的dhcp服务给分配的
dig rhel7.weiwei.com
可以得到正确解析
1、未配置dhcp之前
2、在rhel8主机中配置dhcp服务:vim /etc/dhcpd/dhcpd.conf
3、测试成功(注意测试的主机名不要有下划线,否则会测试失败)
结束!!!