Linux中怎么搭建主DNS、辅助DNS、缓存DNS服务器

版权声明:创作者:LIHAO,未经本人允许,不可转载。 https://blog.csdn.net/a1766855068/article/details/87890933

Linux中怎么搭建主DNS、辅助DNS、缓存DNS服务器

一、认识DNS:

首先我们要了解一下什么是域名,当我们在没有DNS域名解析服务器去访问某台服务器的时候,我们只能基于IP去访问,但由于IP难记且不方便。我们需要一种来取代它,就是域名,好比www.baidu.com(对应的IP地址是119.75.217.109)这就是一个域名。当我们访问这个网站时就不需要输入它的IP地址那么麻烦了。那问题来了,是什么在域名与IP地址之间搭建了一个桥梁,使得访问域名的时候,就可以访问IP地址了。这就是接下来要说的DNS域名解析服务器。
题外话:注册域名时需要购买域名、空间、数据库。可以注册.中国这样的域名,域名付费会随着时间的推移所要交的钱更多。

1、DNS概述:

DNS是域名系统(Domain Name System)的缩写,它是由解析器和域名服务器组成的。
(1) 域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。
(2)其中一个域名一般对应一个IP地址(特殊情况下一个域名会对应多个IP,相当于负载均衡,应答时可以做到随机应答起到分流作用),而一个IP地址不一定只对应一个域名。
(3)域名系统采用类似目录树的等级结构,如下图。域名服务器为 客户机/服务器模式 中的服务器方,它主要有两种形式: 主服务器和转发服务器
在这里插入图片描述
我们假如在访问百度的时候,输入的域名是:www.baidu.com. 注意com后还有一个 . 这个.就是根,这个根在搜索的时候被会被自动补充上。在访问万维网的时候这个根必须要有,访问在中国的时候不需要。世界上有13台根域名解析服务器,专门用作于全世界网络的解析。

域名 对应的字符
.
顶级域名 .com
二级域名 baidu.com
三级域名 www.baidu.com

其中www代表的是主机名,比如说实现的是新闻、邮件或者是门户网站的访问。

2、DNS查询过程:

这里图片以一台主机访问www.google.com为例,阐述整个DNS查询过程是怎样的。
这里需要补充的是:
(1)本地主机在上网时先查询一下本地:本地磁盘(C)\Windows\System32\drivers\etc\hosts文件中有没有域名对应的IP。如果没有,会向本地域名服务器发出请求。
(2)本地域名服务器首先会在自己的DNS高速缓存区中记录IP和对应的域名,以便于第2次收到相同的请求时,能在第一时间对主机做出应答。
(3)这里用到的两种查询方式:
迭代查询:主机向服务器发出请求,服务器给主机做出提示。主机根据提示再去向其他服务器发出请求,再重复之前的步骤。
递归查询:主机向服务器要结果,服务器在自己不知道的情况下,查询多个服务器后,最终回复主机。
在这里插入图片描述
总结一下DNS查询过程:本地hosts文件 ——> 本地DNS缓存 ——> DNS服务器

3、DNS常见名词:

(1) :区是DNS名称空间的一个连续部分,其包含了一组存储在DNS服务器上的资源记录。一个域名对应一个区。
(2)全域名 :是指主机名加上全路径,全路径列出了序列中所有域成员。
(3)区文件 :包含区资源记录的文件,选择DNS服务器为授权服务器,管理该区域。
(4)DNS缓存 :DNS服务器在解析客户机请求时,如果本地没有该DNS信息,则会询问其他DNS服务器,当其他域名服务器返回查询结果时,该DNS服务器会将结果记录在本地的缓存中,成为DNS缓存。
(5)正向解析 :通过域名解析IP
(6)反向解析 :通过IP解析域名
(7)资源记录 :DNS服务器的信息数据,按照 分类 进行存储,能够解析客户端的DNS请求。下面是类别:
①SOA资源:
起始授权记录,定义 全局参数 ,对整个域的管理进行设置。一个区域文件只允许在唯一的SOA记录。
记录的信息包含:区域名(当前)、记录类型SOA主域名服务器(FQDN)、管理员邮件地址(序列号、刷新间隔、重试间隔、过期间隔、TTL)
Ⅰ刷新间隔:相对于辅助域名服务器来说,多长时间辅助域名服务器向主域名服务器之间来同步一次。
Ⅱ重试间隔:刷新之后要同步过来,如果失败了,就需要重试,隔多长时间重试一次。
Ⅲ过期间隔:反复重试均失败了,超过过期间隔,那么就放弃。
②NS资源记录:
名称服务器(NS)资源记录表示 该区域授权服务器 ,它们表示SOA资源记录中制定的该区的主和辅助服务器,也表示了任何授权区的服务器。每个区在曲根处至少包含一个NS记录。
格式:区域名 IN NS 完整主机名(FQDN)
③A资源记录:
地址(A)资源记录把 FQDN映射到IP地址 ,因而解析器能查询FQDN对应的IP地址。是一个A表示的是IPv4,四个A表示的是IPv6
格式:完整主机名(FQDN)IN A IP地址
④PTR资源记录:
相对于A资源记录,指针(PTR)记录把 IP地址映射到FQDN ,实际上就是反向解析。
格式:IP地址 IN PTR 主机名(FQDN)
⑤CNAME资源记录:
规范名字(CNAME)资源记录创建特定FQDN的别名。
格式:别名 IN CNAME 主机名
⑥MX资源记录:
邮件(MX)资源记录为DNS域名指定邮件交换服务器。有了MX资源记录,就可以实现不同域之间的邮件转发。要注意的是写这条记录之前,前面一定要有对应的A记录,不然无法解析出来。
格式:区域名 IN MX 优先级(数字) 邮件服务器名称(FQDN)

二、DNS配置:

1、DNS服务介绍:

有关DNS服务信息 注解
后台进程 named
脚本 /usr/lib/systemd/system/named.service
DNS使用端口 53(tcp,udp)
所需RPM包为 bind-9.9.4-29.el7.x86_64
默认主配置文件为 /etc/named.conf
默认区域配置文件为 /var/named/named.ca
相关文件存放路径 /var/named/

2、主配置/etc/named.conf主要参数解释:
在这里插入图片描述
关于类型再补充一下:

类型 注释
master 表示定义的是主域名服务器。拥有区域数据文件,并对此区域提供管理数据
slave 表示定义的是辅助域名服务器。拥有主DNS服务器的区域数据文件的副本,辅助DNS服务器会从主DNS服务器同步所有区域数据
hint 表示是互联网中根域名服务器。当服务器启动时,它使用根线索来查找根域名服务器,并找到最近的根域名服务器列表
forward 一个forward zone 是每个域的配置转发的主要部分
stub 和slave类似,但其只复制主DNS服务器上的NS记录而不像辅助DNS服务器会复制所有区域数据
delegation-only 用于强制区域的delegatio.ly状态

3、区域配置文件主要参数解释:这里选用的后面的一张图:
在这里插入图片描述

三、搭建DNS服务器:

本实验环境为Vmware14.0所使用的镜像文件为:rhel-server-7.2-x86_64-dvd.iso
此外总共有3台虚拟机:
第一台为DNS服务器:IP地址为192.168.217.130名称是:Server
第二台为Web服务器:IP地址为192.168.217.131名称是:WebServer
第三台为Client客户机:IP地址为192.168.217.132名称是:Client

搭建web测试服务器:

(1)关闭防火墙: systemctl stop firewalld
(2)关闭SELinux: setenforce 0
(3)挂载镜像文件:mount /dev/sr0 /mnt
(4)配置yum:vim /etc/yum.repo/base.repo
(5)安装httpd包:yum install httpd -y
(6)写入静态网页文件:
在这里插入图片描述
(7)开启服务:systemctl start httpd
(8)使用物理机验证web服务器:
在这里插入图片描述

客户机准备工作:

(1)关闭防火墙: systemctl stop firewalld
(2)关闭SELinux: setenforce 0
(3)/etc/resolv.conf 它是DNS 客户机 配置文件,用于设置DNS服务器的IP和域名。
在客户机这个文件中写入关于DNS服务器的IP地址的定义,可以让客户机找到DNS服务器。
在这里插入图片描述

1、搭建正向DNS:

(1)关闭防火墙: systemctl stop firewalld
(2)关闭SELinux:使用命令 setenforce 0 。如果不关闭,可能会导致服务重启很慢,甚至会失败。
(3)挂载镜像:
在这里插入图片描述
(4)配置yum:
在这里插入图片描述
(5)安装bind服务包: yum install bind -y
(6)修改主配置文件:区域配置文件的名字为 example.com.zone
在这里插入图片描述
(6)写入区域配置文件:
在这里插入图片描述
(7)重启服务:systemctl restart named
(8)客户机测试:
①我们使用虚拟机中自带的浏览器检测,也可以使用curl命令进行检测:
在这里插入图片描述
在这里插入图片描述
②除此之外,我们还可以使用dig命令进行查询,用来测试域名系统工作是否正常。
在这里插入图片描述
在这里插入图片描述
我们可以看到当输入域名为dns.example.com.时,解析的IP地址为web服务器的地址。进一步解析,可以解析出来DNS服务器的主机名,再解析DNS主机名的IP,可以解析出来DNS服务器的IP地址

2、DNS的正向批量解析:

(1)在DNS服务器上修改主配置文件,之后重启服务
在这里插入图片描述
(2)在客户端进行测试:成功解析出IP,其余不再演示。同理:将35换成其他范围以内的数值都可以。
在这里插入图片描述

3、域的别名访问:

(1)修改区域配置文件并重启服务:
在这里插入图片描述
(2)在客户端进行测试:
在这里插入图片描述

4、DNS的反向解析:

(1)修改主配置文件 /etc/named.conf 增加反向解析语句:
在这里插入图片描述
(2)编辑区域配置文件,之后重启named服务。
在这里插入图片描述
(3)在客户机上进行测试:
使用命令 dig -x 192.168.217.1 测试反向解析。或者是dig -x 192.168.217.2/3/4进行测试。
在这里插入图片描述

5、批量反向解析:

(1)编辑配置文件:增加批量解析语句,之后重启named服务。
在这里插入图片描述
(2)在客户机上进行测试:
在这里插入图片描述

6、实现负载均衡:

DNS负载均衡的优点是经济简单易行,它在DNS服务器中为同一个域名配置多个IP地址(即一个主机名设置多条A资源记录),在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的计算机上去,使得不同的客户端访问不同的服务器,从而达到负载均衡。
我们只要在DNS服务器的区域文件中加入3条A资源记录,就可以实现3台FTP服务器网路负载均衡功能。
在这里插入图片描述

四、搭建辅助DNS服务器:

同样的,该实验的虚拟机还是VMware14.0,镜像文件还是Redhat7.2版本,总共3台虚拟机。
主DNS服务器:IP地址:192.168.217.130 主机名称:DNS
辅助DNS服务器:IP地址:192.168.217.131 主机名称:Slave
测试用客户机:IP地址:192.168.217.132 主机名称:Client
三台虚拟机均关闭防火墙、SELinux、且主辅DNS均配置yum、安装bind包。
最后让辅助DNS从主DNS同步配置之后,再将客户机查找本地DNS指向辅助DNS,如果能解析成功,则成功搭建。

概述:

辅助DNS可以向客户机提供域名解析功能,但它与主DNS不同的是,它的数据不是直接输入的,而是从其他主DNS或辅助DNS复制过来的,只是一份副本,所以辅助DNS中的数据无法被修改。
在一个区域中设置多台辅助DNS具有以下优点:
(1)提供容错能力,当主DNS发生故障时,由辅助DNS提供服务。
(2)分担主DNS的负担,在DNS客户端较多的情况下,通过架设辅助DNS完成对客户端的查询服务,可以有效地减轻主DNS的负担。
(3)加快查询得速度:例如,一个公司在远地有一个与总公司网络相连的分公司网络,这时可以在该处设置一台辅助名称服务器,让该分公司的DNS客户端直接向辅助DNS进行查询,而不需要通过速度较慢的广域网向总公司的DNS服务器进行查询,减少用于DNS查询得外网的通信量。

1、主DNS服务器:

(1)主配置文件还是原样:
在这里插入图片描述
(2)两个辅助配置文件也保持不变:
在这里插入图片描述
在这里插入图片描述

2、搭建辅助DNS服务器:

将上述主DNS服务器中的主配置复制到辅助服务器中,然后进行编辑。而辅助配置文件则由我们搭建好的辅助DNS服务器自动向主DNS服务器去学习。我们只需要创建让它存放配置的空文件就好,由于它要将配置写入文件中,因此我们还需要个slaves文件夹赋予写的权限。
(1)编辑主配置文件并重启named服务。
在这里插入图片描述
(2)编辑两个空文件,然后保存并退出。
在这里插入图片描述
(3)修改slaves权限,使用命令 chmod 777 slaves -R 递归修改
在这里插入图片描述
(4)修改客户机:/etc/resolv.conf配置文件,使客户机能够找到辅助DNS服务器。
在这里插入图片描述
(5)使用客户机进行测试:
①正向解析:
在这里插入图片描述
②反向解析:
在这里插入图片描述
关于辅助DNS需要简答补充的是:
区域传送:将一个区域文件复制到多个服务器上的过程叫做区域传送,将主DNS上的信息复制到辅助DNS来实现。
完全区域传送:全部区域文件复制,复制所有区域文件。只需要在服务端的option{}中加入allow-transfer{192.168.1.1;};即可。IP指的是要传送给的DNS的地址。
增量区域传送:仅复制区域里变化的文件。
多种都可以实现搭建辅助DNS,辅助DNS中的区域配置文件是加密的,查看会显示乱码。

五、搭建缓存DNS服务器:

说明:该实验的虚拟机还是VMware14.0,镜像文件还是Redhat7.2版本,总共3台虚拟机。
主DNS服务器:IP地址:192.168.217.130 主机名称:DNS
缓存DNS服务器:IP地址:192.168.217.131 主机名称:Cache
测试用客户机:IP地址:192.168.217.132 主机名称:Client
三台虚拟机均关闭防火墙、SELinux、且主DNS、缓存DNS、均挂载镜像、配置yum、安装bind包。
最后让客户机指向缓存DNS,缓存DNS转发给主DNS之后,主DNS返回结果给缓存DNS,最后实现客户机的访问。

概述:

Cache-only服务器(缓存服务器)是很特殊的DNS服务器,它本身并不管理任何区域,但是DNS客户端仍然可以向它查询。缓存服务器类似于代理服务器,它没有自己的域名数据库,而是将所有查询转发到其他DNS处理。当缓存服务器收到查询结果后,除了返回给客户机外,还会将结果保存在缓存中。当下一个DNS客户端再查询相同的域名数据是,就可以从告诉缓存里查出答案,加快DNS客户端的查询速度。可以理解为它就是转发的DNS服务器,最后把结果保存下来就行了。

1、主DNS服务器配置:

该配置同之前一样,我们不需要修改,这里只展示一下。
(1)主配置文件还是原样:
在这里插入图片描述
(2)两个辅助配置文件也保持不变:
在这里插入图片描述
在这里插入图片描述

2、搭建缓存DNS服务器:

修改主配置文件,并重启服务。
在这里插入图片描述

3、客户机进行检测:

(1)修改客户机:/etc/resolv.conf 配置文件,使客户机能够找到缓存DNS服务器。
在这里插入图片描述
(2)正向解析:
在这里插入图片描述
(3)反向解析:
在这里插入图片描述
以上就是三种服务器的搭建,欢迎评论。

猜你喜欢

转载自blog.csdn.net/a1766855068/article/details/87890933