DNS域名解析服务:
扩展:godaddy域名注册的网址
服务安装:yum install bind-chroot chroot -----chroot插件,保证dns服务受到攻击,影响只限定再dns服务
正向解析:域名------>ip地址
反向解析:ip地址------>域名
主服务器:在特定区域内具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系。
从服务器:从主服务器中获得域名与IP地址的对应关系并进行维护,以防主服务器宕机等情况。
缓存服务器:通过向其他域名解析服务器查询获得域名与IP地址的对应关系,并将经常查询的域名信息保存到服务器本地,以此来提高重复查询时的效率。
简单来说:
主服务器是用于管理域名和IP地址对应关系的真正服务器
从服务器帮助主服务器“打下手”,分散部署在各个国家、省市或地区,以便让用户就近查询域名,从而减轻主服务器的负载压力
缓存服务器不太常用,一般部署在企业内网的网关位置,用于加速用户的域名查询请求。
当用户向就近的一台DNS服务器发起对某个域名的查询请求之后(这里以www.linuxprobe.com为例),其查询流程大致如图:
在bind服务程序中有下面这三个比较关键的文件:
主配置文件(/etc/named.conf):只有59行,而且在去除注释信息和空行之后,实际有效的参数仅有30行左右,这些参数用来定义bind服务程序的运行。
区域配置文件(/etc/named.rfc1912.zones):用来保存域名和IP地址对应关系的所在位置。类似于图书的目录,对应着每个域和相应IP地址所在的具体位置,当需要查看或修改时,可根据这个位置找到相关文件。
数据配置文件目录(/var/named):该目录用来保存域名和IP地址真实对应关系的数据配置文件。
主配置文件:
[root@linuxprobe ~]# vim /etc/named.conf
11 listen-on port 53 { any; }; 服务器上的所有IP地址均可提供DNS域名解析服务
19 allow-query { any; }; 允许所有人对本服务器发送DNS查询请求
bind服务程序的区域配置文件(/etc/named.rfc1912.zones):
正向解析参数
反向解析参数
如果在实验中遇到了bind服务程序启动失败的情况,而您认为这是由于参数写错而导致的,
则可以执行named-checkconf命令和named-checkzone命令,分别检查主配置文件与数据配置
文件中语法或参数的错误。
主服务器 | RHEL 8 | 192.168.10.10 |
从服务器 | RHEL 8 | 192.168.10.20 |
部署主服务器:
正向解析实验
第1步:编辑区域配置文件,vim /etc/named.rfc1912.zones
[root@linuxprobe ~]# vim /etc/named.rfc1912.zones
zone "linuxprobe.com" IN {
type master;
file "linuxprobe.com.zone";
allow-update {none;}; 不允许别人获取
};
第2步:编辑数据配置文件
[root@linuxprobe named]# cp -a /var/name/named.localhost linuxprobe.com.zone
[root@linuxprobe named]# vim linuxprobe.com.zone
[root@linuxprobe named]# systemctl restart named
[root@linuxprobe named]# systemctl enable named
反向解析实验
第1步:编辑区域配置文件,vim /etc/named.rfc1912.zones
zone "10.168.192.in-addr.arpa" IN {
type master;
file "192.168.10.arpa";
allow-update {none;};
};
第2步:编辑数据配置文件,首先从/var/named目录中复制一份反向解析的模板文件(named.loopback),IP地址仅需要写主机位
[root@linuxprobe named]# cp -a /var/name/named.loopback 192.168.10.arpa
属性,都要复制
[root@linuxprobe named]# vim 192.168.10.arpa
[root@linuxprobe named]# systemctl restart named
[root@linuxprobe named]# systemctl enable named
测试效果:nslookup
部署从服务器(192.168.10.20)
安装: yum install bind-chroot
第1步:在主服务器(192.168.10.10)的区域配置文件中允许该从服务器的更新请求,即修改allow-update {允许更新区域信息的主机地址;};
[root@linuxprobe ~]# vim /etc/named.rfc1912.zones
zone "linuxprobe.com" IN {
type master;
file "linuxprobe.com.zone";
allow-update { 192.168.10.20;}; 允许20服务器来获取
};
zone "10.168.192.in-addr.arpa" IN {
type master;
file "192.168.10.arpa";
allow-update { 192.168.10.20;};
};
[root@linuxprobe ~]# systemctl restart named
第2步:在主服务器上配置防火墙放行规则,让DNS协议流量可以被顺利传递。测试主从服务器的联通性(ping)
[root@linuxprobe ~]# iptables -F
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-service=dns [root@linuxprobe ~]# firewall-cmd --reload
第3步:编辑从服务器主配置文件/etc/named.conf
[root@linuxprobe ~]# vim /etc/named.conf
11 listen-on port 53 { any; }; 服务器上的所有IP地址均可提供DNS域名解析服务
19 allow-query { any; }; 允许所有人对本服务器发送DNS查询请求
第4步:在从服务器中填写主服务器的IP地址与要抓取的区域信息,然后重启服务。注意此时的服务类型应该是slave(从),masters参数后面应该为主服务器的IP地址,而且file参数后面定义的是同步数据配置文件后要保存到的位置,稍后可以在该目录内看到同步的文件
[root@linuxprobe ~]# vim /etc/named.rfc1912.zones
zone "linuxprobe.com" IN {
type slave;
masters { 192.168.10.10; };
file "slaves/linuxprobe.com.zone"; 自己定义的
};
zone "10.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.10.10; };
file "slaves/192.168.10.arpa";
};
[root@linuxprobe ~]# systemctl restart named
第5步:检验解析结果(nslookup)。当从服务器的DNS服务程序在重启后,一般就已经自动从主服务器上同步了数据配置文件,而且该文件默认会放置在区域配置文件中所定义的目录位置中。修改从服务器的网络参数,把DNS地址参数修改成192.168.10.20(从服务器自己的地址)
安全的加密传输
部署缓存服务器
主/从服务器---》缓存服务器--》本地服务器
1.缓存服务器配置双网卡:
2.在缓存服务器bind服务程序主配置文件中添加缓存转发参数。在大约第20行处添加一行参数“forwarders { 上级DNS服务器地址; };”,
3.在客端,设置dns地址为缓存服务器地址
4.客户端上测试,nslookup