#实验环境
两台主机ab均能上网,且都配置好软件仓库,a为192.168.1.12,b为14
#dns高速缓存服务器实施步骤
服务端:nodea
数据目录/var/named 主配置文件/etc/named.conf 端口53
dnf install bind -y(安装dns服务,bind是安装包)
systemctl restart named重启服务
客户端:nodeb
A记录,IP地址叫做域名的Address记录。SOA授权起始主机。dns顶级.13,次级.com,.net,.edu,.org
测试:host 域名,地址解析命令;dig 域名,地址详细解析命令。
vim /etc/resolv.conf dns指向文件
dig www.baidu.com测试
高速缓存dns
vim /etc/named.conf
systemctl restart named
此时访问速度变快
关于报错信息:
no servers could be reached 服务无法访问,查看服务是否开启,以及火墙网络端口信息等
服务启动失败 journalctl -xe 查询错误,配置文件书写有误
dig查询状态:noerror表示查询成功。refused拒绝访问。servfail查询记录失败,dns服务器无法到达上级,拒绝缓存。nxdomain,此域名A记录在dns中不存在。
#dns正向解析(把域名解析为ip)
进入主配置文件vim /etc/named.conf ,注释掉(forwarders {114.114.114.114; };)
主配置文件中包含了(include "/etc/named.rfc1912.zones";)子配置文件
vim /var/named/westos.org.zone编辑数据文件
此文件中的艾特符@值为/etc/named.rfc1912.zones文件中维护的域名(此处即为westos.org)
且此文件中所有不以点.结尾的字符默认都加@符的值,(例如,dns其实为dns.westos.org)
systemctl restart named
#正向解析中的常用数据类型
vim /var/named/westos.org.zone
CNAME规范域名数据类型
systemctl restart named
MX邮件解析记录
vim /var/named/westos.org.zone
#dns反向解析(把ip解析为域名)
vim etc/named.rfc1912.zones
systemctl restart named
#dns的双向解析
服务器端主机a配置两个ip且属于两个网段
172.25.254.100/24 1.1.1.100/24
客户端主机b配置ip为1.1.1.200,vim /etc/resolv.conf 修改nameserver 1.1.1.100
此时不同网段的主机dig www.westos.org均解析为172网段,但应该解析到各自网段
cd /var/named/
cp westos.org.zone westos.org.inter -p
vim westos.org.inter
:%s/172.25.254/1.1.1/g 把里面的172网段改为1网段
cp /etc/named.rfc1912.zones /etc/named.rfc1912.inter -p
vim /etc/named.rfc1912.inter
修改30行左右file "westos.org.inter"
vim /etc/named.conf
从51行zone注释到include语句结束/*...*/
view localnet {
match-clients { 172.25.254.0/24; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
};
view all {
match-clients { any; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.inter";
};
systemctl restart named
此时在不同网段的主机测试dig www.westos.org解析出来的地址不同,属于各自网段。 即分别在两个网段的主机中作同样域名的地址解析,得到的A记录不同。
#dns集群(辅助dns)
还原配置文件,vim /etc/named.conf把之前注释的解开,注释掉写的双向解析部分(两个view模块)
a主机作为服务器,使用b主机作为辅助dns
在b主机上dnf install bind -y
vim /etc/named.conf
vim /etc/named.rfc1912.zones
systemctl restart named
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
vim /etc/resolv.conf
nameserver 192.168.1.14
此时在ab主机测试dig www.westos.org数据一致,但此时主dns服务器更改数据(即编辑/var/named/westos.org.zone),辅助dns服务器数据不能够同步更新
在主dns服务器中(a主机)vim /etc/named.rfc1912.zones
zone "westos.org" IN {}在花括号中添加also-notify {192.168.1.14;}主动通知辅助dns服务器主机b
systemctl restart named
此时在主dns服务器a上修改A记录文件内容后重启服务,在ab主机使用dig www.westos.org测试,解析内容均以改变,说明主dns服务器数据更新,b主机的辅助dns服务器数据已经可以同步更新。
#dns更新
基于ip的
在a主机即dns服务器上vim /etc/named.rfc1912.zones
systemctl restart named
在b主机即客户端
nsupdate
新增A记录
此时在a主机dig westos.westos.org可以看到更新的A记录
更新时会在/var/named目录下新建一个westos.org.zone.jnl文件,里面存放着更新数据
在b主机
基于key的dns更新
vim /etc/named.conf
vim /etc/named.rfc1912.zones
systemctl restart named
此时在b主机使用ip更新的方式测试时更新A记录会被拒绝,因为没有密钥
此时在a主机dig westos.westos.org可以看到更新的A记录
#ddns(dhcp+dns)动态域名解析
在a主机配置dhcp服务器,让b主机自动获取ip
a上vim /var/named/westos.org.zone
nodeb A b主机的ip
此时b主机dig nodeb.westos.org可以解析为ip,但当dhcp服务器地址池变化导致b主机ip改变时dig出来的ip解析不能同步更新
a主机上vim /etc/dhcp/dhcpd.conf打开ddns更新功能ddns-update-style interim;
添加
key westos {
algorithm hmac-sha256;
secret 加密字符串key
};让dhcp服务器持有dns服务的密钥
zone westos.org. {
primary 127.0.0.1;回环接口
key westos;
}
systemctl restart dhcpd
a上vim /var/named/westos.org.zone
将之前写的“nodeb A b主机的ip”这条解析删掉,否则会有冲突
rm -rf /var/named/westos.org.zone.jnl删掉之前做实验的文件,否则会有冲突
systemctl restart named
此时b主机dig nodeb.westos.org可以解析为ip,且ip更新解析也会同步更新,得到最新的ip