文章目录
8. 双向解析
实验环境:
- 一台DNS服务端主机:双网卡
- 两台客户端主机
双向解析:在两台客户端做同样的地址解析得到的A记录不同
8.1 服务器端
设置为双网卡主机:
ens160:192.168.43.101
ens192:1.1.1.101
cp -p /var/named/westos.org.zone /var/named/westos.org.zone.inter
:快速复制一个模板文件vim /var/named/westos.org.zone.inter
:编辑自定义双向解析文件
:%s/192.168.43/1.1.1/g #快速修改
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter.zones
:复制双向解析定义区文件vim /etc/named.rfc1912.inter.zones
:编辑定义区文件
zone "westos.org" IN {
type master; #当前服务器位
file "westos.org.zone.inter"; #双向解析文件名
allow-update {
none; }; #允许更新主机列表
};
vim /etc/named.conf
:编辑主配置文件
注释52-58行
view localhost {
match-clients {
192.168.43.0/24; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
};
view inetrnet {
match-clients {
any; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.inter.zones";
};
include "/etc/named.root.key";
systemctl restart named
:重启服务
8.2 客户端测试
测试1:IP:192.168.43.121
vim /etc/resolv.conf
:修改DNS指向
nameserver 192.168.43.101 #dns主机192.168.43网段IP
dig www.westos.org
:查询解析信息为192.168.43.222
测试2:IP:1.1.1.111
vim /etc/resolv.conf
:修改DNS指向
nameserver 1.1.1.101 #dns主机1.1.1网段IP
dig www.westos.org
:查询解析信息为1.1.1.222
9. DNS集群(辅助DNS)
现实中,一台DNS域名服务器在很大可能下是不能抵抗大流量访问的压力的,这个时候,我们就希望构建一个DNS集群来分担这些访问量。
9.1 服务器端(主DNS端)
IP:192.168.43.101
vim /etc/named.conf
:还原上一个实验更改vim /etc/named.rfc1912.zones
:定义区文件(添加辅助DNS)
zone "westos.org" IN {
type master;
file "westos.org.zone";
allow-update {
none; };
also-notify {
192.168.43.111; }; #主动通知的辅助DNS主机IP
};
systemctl restart named
:重启服务
9.2 辅助DNS端配置
IP:192.168.43.111
#修改DNS指向为服务端主机IP并检测,能否正常连接
vim /etc/resolv.conf
修改为===>nameserver 192.168.43.101
#检测能否dig成功,成功则继续以下实验
dig www.westos.org
- 安装并启动服务
dnf install bind -y #安装DNS安装包
systemctl start named.service #启动服务
firewall-cmd --permanent --add-service=dns #在火墙中添加dns设定
firewall-cmd --reload #更新火墙规则
vim /etc/named.rfc1912.zones
:定义区文件
29 zone "westos.org" IN {
30 type slave; #dns状态位 辅助dns
31 masters {
192.168.43.101; }; #主dns
32 file "slaves/westos.org.zone"; #同步数据文件名
33 };
vim /etc/named.conf
:编辑主配置文件
listen-on port 53 {
any; }; #在本地所有网络接口上开启53端口
allow-query {
any; }; #允许查询A记录的客户列表
dnssec-validation no; #禁用DNS检测,使dns能够缓存外部信息到本机
ls /var/named/slaves/
:查看目录,发现无文件systemctl restart named
:重启服务ls /var/named/slaves/
:出现同步数据文件 westos.org.zone
(每次删除辅助DNS的同步数据文件后重启服务,也可以同步主DNS的解析更改,但在企业中比较麻烦)
9.3 客户端测试
IP:192.168.43.121
- 修改主DNS服务端:实现主DNS与辅助DNS数据同步,自动更新
vim /var/named/westos.org.zone
:主DNS修改A记录同时必须修改 serial 值,才能实现主DNS与辅助DNS数据同步同步( serial 只能增加 不能减少)systemctl restart named
:重启服务
- 客户端
vim /etc/resolv.conf
:修改DNS指向为辅助DNSIP
nameserver 192.168.43.111 #辅助DNS主机IP
2.dig www.westos.org
:查询解析信息,成功!
10. DNS更新
10.1 基于IP地址更新
1 基于IP更新服务器端:192.168.43.101
vim /etc/named.rfc1912.zones
:定义区文件
zone "westos.org" IN {
type master;
file "westos.org.zone";
allow-update {
192.168.43.20; }; #允许指定客户端更新westos域
also-notify {
192.168.43.111; };
};
systemctl restart named
:重启服务
2 基于IP更新 分配dhcp的主机:192.168.43.20
vim /etc/dhcp/dhcpd.conf
nsupdate是一个动态DNS更新工具,可以向DNS服务器提交更新记录的请求,它可以从区文件中添加或删除资源记录,而不需要手动进行编辑区文件。
#更新
nsupdate
> server 192.168.43.101
> update add linux.westos.org 86400 A 192.168.43.222 #新增A记录
> send
#删除A记录
nsupdate
> update delete linux.westos.org
> send
3 基于IP更新 测试客户端:
打开dhcp,允许分配IP,查看得到的IP为:192.168.43.70
- 在DHCP主机没有更新A记录之前,客户端测试
dig linux.westos.org
- 在DHCP主机更新 linux.westos.org后,客户端测试
dig linux.westos.org
- 在DHCP主机删除 linux.westos.org 后,客户端测试
dig linux.westos.org
10.2 基于key更新
|
|
---|---|
-a algorithm | 选择生成密钥文件的算法 |
-b keysize | 指定密钥中字节的数量 |
-n nametype | 指定密钥文件的所有者类型 (ZONE、HOST、ENTITY、USER、OTHER) |
1 基于key更新 服务器端:
cd /mnt/
:进入该目录下dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST sdsnzy
:生成秘钥ls
:查看生成的两个秘钥文件
Ksdsnzy.+163+13502.key #公钥
Ksdsnzy.+163+13502.private #私钥
#K秘钥名称.算法的数字表示.密钥标识符
cat /mnt/Ksdsnzy.+163+13502.key
:查看公钥
cp -p /etc/rndc.key /etc/sdsnzy.key
:复制key文件模板,重命名vim /etc/sdsnzy.key
:编辑key文件
key "sdsnzy" {
algorithm hmac-sha256; #密钥文件的算法
secret "ILYkvMmYDFhyPpWAKE/jqQ=="; #来自公钥文件中密码
};
vim /etc/named.conf
:添加秘钥信息到主配置文件
include "/etc/sdsnzy.key"; #添加key文件
vim /etc/named.rfc1912.zones
:定义区文件
zone "westos.org" IN {
type master;
file "westos.org.zone";
allow-update {
key sdsnzy; }; #采用“key sdsnzy”作为密钥的用户可以动态更新“westos.org”区域
};
systemctl restart named
:重启服务scp /mnt/Ksdsnzy.+163+13502.* [email protected]:/mnt
:将秘钥文件发送到DHCP主机
2 基于key更新 分配dhcp的主机:
nsupdate -k /mnt/Ksdsnzy.+163+13502.private
:从该文件中读取私钥信息
> server 192.168.43.101 #DNS主机
> update add linux.westos.org 86400 A 172.25.254.33 #修改此域名解析
> send #执行后修改
> quit
3 基于key更新 客户端测试:
分配到的IP为:192.168.43.70
- 在DHCP主机未更新之前,客户端测试
dig linux.westos.org
- 在DHCP主机不加秘钥更新,发现更新被拒绝
- 在DHCP主机秘钥更新后,客户端测试
dig linux.westos.org
- 在DHCP主机秘钥删除 linux.westos.org 后,客户端测试
dig linux.westos.org
11. DDNS(花生壳)(dhcp+dns)
DDNS(Dynamic Domain Name Server,动态域名服务)。DDNS是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务器程序负责提供DNS服务并实现动态域名解析。
就是说DDNS捕获用户每次变化的IP地址,然后将其与域名相对应,这样域名就可以始终解析到非固定IP的服务器上,互联网用户通过本地的域名服务器获得网站域名的IP地址,从而可以访问网站的服务。
11.1 DNS主机配置
rm -fr /var/named/westos.org.zone.jnl
:这是在上一个DNS更新实验中,每次更新后自动生成的 .jnl 文件vim /var/named/westos.org.zone
:删除指向客户端主机的A记录(如果之前添加过的话)
systemctl restart named
:重启服务cat /etc/sdsnzy.key
:秘钥文件(上一个实验做好的)
11.2 dhcp主机配置
- 下载dhcp
dnf install dhcp-server.x86_64 -y
cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
:编辑配置文件,分配IP
option domain-name "westos.org"; #域名
option domain-name-servers 192.168.43.101; #DNS
ddns-update-style interim; #设置动态DNS更新模式为interim
##27/28行删除
subnet 192.168.43.0 netmask 255.255.255.0 {
range 192.168.43.70 192.168.43.80;
}
##35行之后全部删除,添加以下内容
key sdsnzy {
#密码名
algorithm hmac-sha256; #加密方式
secret ILYkvMmYDFhyPpWAKE/jqQ==; #秘钥文件中的密码
}
zone westos.org. {
primary 192.168.43.101; #dns主机IP,若dhcp和dns主机是同一主机,也可以写127.0.0.1
key sdsnzy; #密码名
}
systemctl restart dhcpd
:重启dhcpd服务
11.3 客户端配置
- 客户端分配到IP,测试:
dig node2.westos.org
:成功解析自己!