一、辅助dns
辅助dns就像是一个帮手,在用户流量较大的时候,只有一个dns服务器,很容易造成服务器的拥堵和超负荷运行,这时候为了缓解服务器的压力,我们需要增加辅助dns的个数。
(1)辅助dns端设置
hostnamectl set-hostname dns-slave.westos.com
yum install bind -y
systemctl start named ##开启named服务
vim /etc/named.conf 和之前的设置一样(两个any和一个no)
systemctl restart named ##重启named服务,使设定生效
vim /etc/resolv.conf
nameserver 172.25.254.131 ##解析服务主机
vim /etc/named.rfc1912.zones
zone "westos.com" IN { ##维护域
type slave; ##辅助dns
masters { 172.25.254.131; }; ##为dns服务器服务
file "slaves/westos.com.zone"; ##查询文件
allow-update { none; };
};
systemctl restart named
(2)主dns设置
将双向解析中的设置注释掉,使原来注释的代码可用。同时在辅助配置文件中设置允许辅助dns主动更新。如果不允许辅助dns更新,那么用户在访问时会出现查询信息错误。
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-transfer { 172.25.254.231; };
allow-update { none; };
};
systemctl restart named
(3)测试
更改westos.com.zone中的ip地址,观察辅助dns是否会自动更新
二、远程更新dns
(一)基于ip的直接更新
1.关闭selinux
selinux在强制状态下,会阻止服务器的更新,可以直接关闭selinux,也可以在强制状态下,将相应的功能开关打开。
注意:加强型防火墙强制状态改为关闭状态需要reboot重启。
2.在辅助配置文件中设定服务器允许远程更新
cd /etc/named
cp -p westos.com.zone /opt ##备份文件,注意文件权限
chmod 770 /var/named
vim /etc/named.rfc1912.zones ##辅助配置文件
allow-updata { 172.25.254.131; }; ##允许该主机更新
systemctl restart named ##重启
3.测试
(1)通过远程更新解析规则,观察dig命令查询某一域名,是否更新
nsupdate ##更新
server 172.25.254.131 ##更新对象
update add test.westos.com 86400 A 172.25.254.111 ##更新内容
send ##发送
quit ##退出
(2)查看是否更新
dig test.westos.com
(3)删除更新内容
nsupdate ##更新
server 172.25.254.131 ##更新对象
update delete test.westos.com ##删除
send
quit
(二)远程加密更新
1.对dns进行加密,生成加密文件
cp -p /etc/rndc.key /etc/westos.key ##复制模板
ll /etc/rndc.key /etc/westos.key ##查看文件权限是否一致
cd /mnt
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos ##生成dns密钥,通过ls可以查看到公钥和私钥两个钥匙
2.设定加密信息
cat /mnt/xxx.private ##查看私钥获取密码,将该密码复制到westos.key文件中
vim /etc/westos.key
key "westos" {
algorithm hmac-md5;
secret "密码";
};
3.删除之前远程更新产生的文件
在/var/named目录下,删除以【.jnl】为后缀的文件,避免与密钥更新冲突。为保证实验环境的纯净,我们需要将之前备份的westos.com.zone文件复制到当前目录下。
cd /var/named
rm -fr westos.com.zone.jnl
rm -fr westos.com.zone
cp -p /opt/westos.com.zone . ##复制文件
4.将密钥文件与dns服务建立联系
vim /etc/named.conf
include "/etc/westos.key"; ##将加密与dns服务相互关联
远程更新时,通过查询该文件获取密码,进行更新。
5.设置更新方式为密钥更新
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file "westos.com.zone";
also-notify { 172.25.254.231; }
allow-update { key westos; }; ##密钥更新
};
systemctl restart named
6.测试
注意在更新时,需要写上密钥名称,不然会报错
nsupdate -k 私钥
server 172.25.254.131
update add test.westos.com 86400 A 172.25.254.111
send
quit
nsupdate -k 私钥
server 172.25.254.131
update delete test.westos.com
send
quit
三、动态运行解析ddns(花生壳)
DDNS是将用户的动态ip地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态ip地址传送给位于服务商主机上的服务器程序,服务器程序负责提供DNS服务并实现动态域名解析。
服务端:
1.搭建dhcp服务
yum install dhcp -y ##安装软件
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
删掉27和28和37之后的所有内容
7 option domain-name "westos.com"; ##域名
8 option domain-name-servers 172.25.254.131; ##提供dhcp服务的ip
14 ddns-update-style interim;
29 subnet 172.25.254.0 netmask 255.255.255.0 { ##子网掩码,ip地址前三位
range 172.25.254.60 172.25.254.90; ##地址池
option routers 172.25.254.65; ##网关
}
systemctl restart dhcpd
2. dns与fhcp建立连接
vim /etc/dhcp/dhcpd.conf
key westos {
algorithm hamc-md5;
secret 密码;
};
zone westos.com. {
primary 127.0.0.1;
key westos;
}
systemctl restart dhcpd
客户端:
3.修改网络类型为动态,重启网络,会自动获取动态ip地址
hostnamectl set-hostname news.westos.com
vim /etc/sysconfig/network-scripts/ifcfg-eth0
4.测试
观察动态获取的ip地址与解析域名是否对应
dig news.westos.com
四、dns系统排错
它显示来自DNS查找的详细信息,其中包括为什么查询失败:
(1)NOERROR:查询成功
(2)NXDOMAIN:DNS服务器提示不存在这样的名称,我们需要检查我们的维护域是否正确
(3)SERVFAIL:DNS服务器停机或DNSSEC响应验证失败,出现服务停机错误,我们可以检查以下/var/named目录下文件的权限是否正确。
(4)REFUSED:DNS服务器拒绝回答(也许是处于访问控制原因)