一.DNS的背景
(1)DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
(2)高速缓存DNS:当第一次访问www.baidu.com时,需要一段时间去解析,之后再次访问www.baidu.com,几乎没有延迟,因为在解析端已经把www.baidu.com的信息缓存了,直接调用即可。
(3)DNS的四种状态:
NOERROR ##查询成功
NXDOMAIN ##服务器提示不存在这样的名称
SERVFAIL ##服务器停机或者DNSSEC相应验证失败
REFUSED ##服务器拒绝回答
(4)基本信息
端口号:53
配置文件:/etc/named.conf
子配置文件:/etc/named.rfc1912.zones
解析文件目录:/var/named/
二.DNS的安装与启用
解析端:把DNS加入防火墙策略
(1)yum install bind -y ##下载DNS服务
(2)vim /etc/named.conf
listen-on port 53 { any; }; ##53端口对所有用户开放
allow-query { any; }; ##允许询问对所有用户开放
forwarders {172.25.254.6;}; ##当查不到IP,去询问172.25.254.250
(3)客户端:
vim /etc/resolv.conf
dig www.baidu.com
三.正向解析(给个域名返回IP)
解析端(是高级的解析端,所以不再询问任何服务器)
解析的流程:dig www.westos.com-->/etc/resolv.conf-->/etc/name.conf--->/etc/named.rfc1912.zones-->/var/name/westos.com.zone
(1)vim /etc/name.conf
(2)vim /etc/named.rfc1912.zones
(3)cp -p /var/name/named.localhost /var/name/westos.com.zone ## -p :权限也复制过来;named.localhost :是解析文件的模版
(4)vim /var/name/westos.com.zone
A : IPV4 | AAA:IPV6
dns A 172.25.254.104 ##dns的名称,也就是提供解析的服务器
表示vim /etc/named.rfc1912.zones里维护的域名,不以点结束,就会在后面自动加上维护的域名
(5)systemctl restart named
客户端
(1)vim /etc/resolv.conf
(2)dig www.westos.com
QUESTION SECTION: 提出实际的DNS查询
AUTHORITY SECTION:负责区域的名称服务器
ADDITIONAL SECTION:提供的其他信息,通常时关于名称服务器
四.解析轮询(交替的的解析bbs.westos.com)
解析端:
vim /var/named/westos.com.zone
CNAME ###把外部域名转换为内部域名
客户端:
vim /etc/resolv.conf ###客户端解析让客户端知道去那台主机去询问
dig www.westos.com 交替的解析www.westos.com
五.反向解析(给IP返回域名)
反向解析流程:dig -x 172.25.254.222(客户端提出询问)-->/etc/resolv.conf(客户端的本地解析)-->/etc/name.conf--->/etc/named.rfc1912.zones-->/var/name/westos.com.ptr
解析端:
vim /etc/named.conf
vim /etc/named.rfc1912.zones (反向解析,要把IP倒过来写)
cp -p /var/named/named.loopback /var/named/westos.com.ptr ###复制模板
vim /named/westos.com.ptr
vim /etc/resolv.conf
(1)询问172.25.254.222的域名为www.westos.com
(2)询问172.25.254.111的域名为bbs.westos.com
六.双向解析(指定本地网络和外部网)
server IP: 172.25.254.104
client IP:172.25.254.204
双向解析流程:
(1)本地网:dig www.westos.com-->/etc/resolv.conf-->/etc/name.conf--->/etc/named.rfc1912.zones-->/var/name/westos.com.zone
(2)外网:dig www.westos.com-->/etc/resolv.conf-->/etc/name.conf--->/etc/named.rfc1912.zones.inter-->/var/name/westos.com.inter
解析端:
(1)设置主配置文件
vim /etc/named.conf
指定172.25.254.104仅能访问内网
(2)设置内外网络的子配置文件
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.inter ##把子配置文件复制, /etc/named.rfc1912.zones设置本地网络, /etc/named.rfc1912.zones.inter设置外部网络
vim /etc/named.rfc1912.zones
vim /etc/named.rfc1912.zones.inter
(3)设置内外网的配置信息
cp -p /var/named/westos.com.zone /var/named/westos.com.inter
vim /var/named/westos.com.zone
vim /var/named/westos.com.inter
客户端:
(1)内网询问www.westos.com是172.25.254.222
(2)外网询问www.westos.com是192.168.0.111
七.辅助解析(当大量的用户都去询问一台解析主机,势必会导致解析速度的减缓,用户都在排队等待解析,用户体验也不好,这时就需要辅助解析主机去帮助解析,把用户访问量分流,增加了解析速度)
辅助解析流程:dig www.westos.com(请求解析端)-->/etc/resolv.conf(请求解析端的本地解析nameserver 172.25.254.204)-->/etc/name.conf(辅助解析端主配置文件)--->/etc/named.rfc1912.zones-->/var/name/slaves/westos.com.zone(从主解析端同步目录slaves/westos.com.zone)
1.配置辅助解析端 IP : 172.25.254.204
同样的安装解析服务:yum install bind -y ##下载安装解析服务
把服务加入防火墙策略:
vim /etc/named.conf
内外网的访问实验做完后,恢复主配置文件,避免对下面实验的影响
2.配置辅助解析端的子配置文件
vim /etc/named.rfc1912.zones
:
zone "westos.com"IN {
type slave; ##类型是辅助解析
masters {172.25.254.104;}; ##指定主解析端IP
file "slaves/westos.com.zone"; ##更新的文件
allow-update { none;}; ##仅允许辅助解析端更新
};
3.配置主解析端的主配置文件
also-notify {172.25.254.204;}; ##配置文件信息更新后通知辅助解析端
systemctl restart named ##辅助解析端重启服务把主服务器/var/named/westos.com.zone更新到/var/named/slaves目录下,是同步更新,所以辅助端不用再建立子配置信息,重启服务就同步更新,客户端也可以访问到
客户端 IP:172.25.254.78
vim /etc/resolv.conf
:
nameserver 172.25.254.204 ###辅助解析端IP
dig www.westos.com ###成功解析
八.远程解析
1.辅助解析端的配置保持不变
2.主解析端:
vim /etc/named.rfc1912.zones
:
type master; ###类型是主解析
file "westos.com.zone";
allow-update { 172.25.254.204; }; ##允许辅助解析端更新
also-notify {172.25.254.204;}; ##IP更新后通知辅助解析端
3.辅助解析端远程更新
查看主解析端的日志
(1)第一次更新失败(用户组没有写的权利)
给用户组添加写的权利
(2)第二次更新失败(selinux权限限制)
打开写的权限
远程更新成功
九.远程加密更新(每个主机IP都可以改成主解析端允许更新的IP,这样就不安全了)
1.主解析端生成密码并且把密码发送到更新端
cp /etc/rndc.key /etc/westos.key -p ##和权限一起复制过来
cat /etc/westos.key ##查看密码类型HAMC-MD5(HAMC-MD5是对称加密,所以公钥和私钥都发给更新端)
dnssec-keygen -a HAMC-MD5 -b 128 -n HOST westos ##建立钥匙的名称
cat 生成的文件.key ##把生成的密码复制到/etc/westos.key
下图有个错误/etc/westos.key的密钥名称是开始指定的westos,当时没有远程更新成功,之后及时改正了,但是图没有改正过来
vim /etc/named.conf
include "/etc/westos.key" ##钥匙的路径
vim /etc/named.rfc1912.zones
allow-update { key westos; }; ###以钥匙的名称开启更新
systemctl restart named ##重启服务
2.辅助解析端远程更新
同样的也可以删除解析
update add hello.westos.com 86400 A 172.25.254.123
测试:
远程加密更新成功
删除hao123.westos.com
再次解析,报错服务器没有这样的名称
十.动态域名解析
1.主解析端
yum install dhcp -y ##下载安装dhcp,提供动态IP
vim dhcp/dhcpd.conf
ddns-update-style interim; ###记得开启dhcp中的dns解析更新告知
2.修改client的网卡eth0类型为DHCP并且重启网络服务
client获得的IP在主解析端DHCP的网池里
3.查询client的主机名,并解析主机名,成功解析172.25.254.10