RHEL7--第十三章-DNS
使用 Bind提供域名解析服务
- DNS域名解析服务
相较于有数字组成的IP地址,域名更加容易被理解和记忆;网络中计算机之间只能基于IP地址来互相识别身份,传输数据;
DNS的由来:为了降低用户访问网络资源的门槛而生;
DNS的解析:
正向解析:将域名解析为IP地址;最常用的一种工作模式;
反向解析:将IP地址解析为域名信息,用于对某个IP地址上绑定的所有域名进行整体屏蔽,屏蔽由某些域名发送的垃圾邮件;

为了提供不间断,稳定快速的域名查询服务,提供了三种服务器类型:
主服务器:
在特定区域内具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系;
从服务器:
从主服务器中获得域名和IP地址的对应关系并进行维护,以防主服务器宕机的情况;
缓存服务器:
通过向其他域名解析服务器查询获得域名和IP地址的对应关系,并将经常查询的域名信息保存在服务器本地,以此来提高重复查询时的效率;
DNS服务器两种查询方式;
递归查询:
DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果
迭代查询:
DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的地址,用户再向这台DNS服务器提交请求,反复直到出结果;

最权威的根DNS服务器共13台,如下:

- 安装 Bind服务程序
Bind:全球范围使用最广泛,最安全可靠高效的域名解析服务程序;
在安装 bind服务程序时加上 chroot(俗称牢笼机制)扩展包,以便更有效的限制bind服务程序仅能对自身的配置文件进行操作,确保整个服务器的安全;
安装 bind服务程序及 chroot
# yum install -y bind
# yum install bind-chroot
bind 配置过程中的三个关键文件;
主配置文件:
/etc/named.conf
除去注释符,有效的参数为30行左右,这些参数用来定义bind服务程序的运行
区域配置文件:
/etc/named.rfc1912.zones
用来保存域名和IP地址对应关系的所在位置,定义服务的类型,类似于图书的目录,需要查询或修改时,可根据这个位置找到相关文件;
数据配置文件目录:
/var/named
该目录用来保存域名和IP地址真实对应关系的数据配置文件;
主配置文件的修改:
首先需要修改 bind服务主配置文件:
# vim /etc/named.conf

解析:
把主配置文件中,11,17行{}内的值修改为 any,
11行:表示服务器上所有IP地址均可提供DNS域名解析服务;
17行:表示允许所有人对本服务器发送DNS查询请求;
区域配置文件的参数:
三种服务类型:
hint 根区域
master 主区域 指主服务器
slave 辅助区域 指从服务器
域名解析为IP地址的正向解析参数和将IP地址解析为域名的反向解析参数,如下:

检查配置文件是否有语法错误的命令:
# named-checkconf
# named-checkzone
实验1:
正向解析实验
前提:把主配置文件/etc/named.conf中 11,17行都配置成 any;
1:编辑区域配置文件,添加参数在最下面;
# vim /etc/named.rfc1912.zones

解析:
zone “test.com”:域名地址;
test.com.zone:为数据配置文件
2:编辑数据配置文件,在/var/named目录中复制一份正向解析的模板文件(named.localhost);
# cp -a /var/named/named.localhost /var/named/test.com.zone
# vi /var/named/test.com.zone

3:检验解析结果
查看 nslookup命令的依赖包组件;
# yum provides */nslookup
# yum install -y bind-utils
# systemctl restart named
# systemctl enable named
# nslookup

实验2:
反向解析
1:编辑区域配置文件,在最底下添加参数;定义 zone时,需要把IP地址反写,并且只需写网络位即可;
# vi /etc/named.rfc1912.zones

2:编辑数据配置文件,即10.168.192.arpa文件,同样复制模板;

# cp -a /var/named/named.localhost /var/named/10.168.192.arpa
# vi 10.168.192.arpa

3:检验解析结果
查看 nslookup命令的依赖包组件;
# yum provides */nslookup
# yum install -y bind-utils
# systemctl restart named
# systemctl enable named
# nslookup

- 部署从服务器
从主服务器上获取指定的区域数据文件,从而起到备份解析记录与负载均衡的作用,可以减轻主服务器的负载压力,还可以提升用户的查询效率;
实验
配置从服务器
主服务器IP:192.168.10.10
从服务器IP:192.168.10.20
1:将主服务器的区域配置文件中允许 从服务器的更新请求,即修改 allow-update参数
# vi /etc/named.rfc1912.zonds

# systemctl restart named
# systemctl stop firewalld
# systemctl disable firewalld
2:在从服务器中填写主服务器的IP地址和要抓取的区域信息,type设置为 slave,参数master后面跟主服务器的IP地址,file定义的是同步数据配置文件后要保存的位置;
# vim /etc/named.rfc1912.zones

# systemctl stop firewalld
# systemctl disable firewalld
3:检验解析结果
当 从服务器DNS服务重启后,就已经自动从主服务器上同步了数据配置文件,该文件会存在区域配置文件所定义的目录位置中;
记得关闭防火墙,否则数据无法同步;
# systemctl restart named
# systemctl enable named
# nslookup
- 安全的加密传输
BIND服务运用范围及安全机制:
互联网中超过95%的DNS服务器都是局域 BIND域名解析服务搭建的,BIND服务提供了安全的解析服务,已经对TSIG(RFC 2845)加密机制提供了支持;
TSIG加密机制:
利用密码编码的方式来保护区域信息的传输(Zone Transfer),即TSIG加密机制保证了DNS服务器之间传输域名区域信息的安全;
实验:
实验环境沿用之前的主从服务器的环境;
前提条件:
测试加密传输前,需把之前同步下来的数据配置文件删除;
# ls -l /var/named/slaves/
# rm -rf /var/named/slaves/*
相关命令:
dnssec-keygen
用于生成安全的DNS服务密钥,格式:dnssec-keygen [参数];

1:主服务器上生成密钥
# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST master-slave
Kmaster-slave.+157+27697
# ls -al kmaster-slave.+157+27697.*
# cat Kmaster-slave.+157+27697.private

2:在主服务器中创建密钥验证文件
进入bind服务用于保存配置文件的目录,把刚生成的密钥名称,加密算法等写入到 tansfer.key传输配置文件中,做一个硬链接到/etc目录中;
# cd /var/named/chroot/etc/
# vi transfer.key

# chown root:named transfer.key
# chmod 640 transfer.key
# ln transfer.key /etc/transfer.key
3:开启并加载bind服务的密钥验证功能
# vi /etc/named.conf

4:配置从服务器,使其支持密钥验证,跟配置主服务器一样;
# cd /var/named/chroot/etc/
# vi transfer.key

# chown root:named transfer.key
# chmod 640 transfer.key
# ln transfer.key /etc/transfer.key
5:开启并加载从服务的密钥验证功能,在43行配置密钥名称等参数;
# vi /etc/named.conf


6:验证
# systemctl restart named
# ls /var/named/slaves/
浙公网安备 33010602011771号