DNS服务

 www.baidu.com的全称域名FQDN实际上是www.baidu.com.即后面实际上省略了点,其中,www往往是某主机的别名,.baidu.com.是域名的全路径,路径中列出了各级域。

    域名的分层结构如图:

wKiom1nHu-7RftN4AABxjph0lYo105.jpg       DNS服务器能够将域名解析为ip,以实现主机间通信。下面将介绍各级服务器的搭建,并模拟客户端查询某域名的完整解析过程:

wKiom1nHt3qwHEjtAACUHiGrVZo593.png


根域的DNS服务器:172.18.0.107 centos7.3   绿色提示符

com域的DNS服务器:172.18.0.109 centos7.3   紫色提示符

magedu.com域的主DNS服务器:172.18.250.110   centos7.4   白色提示符root@localhost

magedu.com域的从DNS服务器:172.18.22.200   centos7.3      蓝色提示符

运营商的DNS服务器:172.18.0.106 centos6   黄色提示符 ,用作转发服务器

客户端:172.18.18.5 rhel5   白色提示符root@rhel5

一 搭建magedu.com域的主DNS服务器(172.18.250.110

1 检查SELINUX

wKioL1nHlhzTCPD9AAAQOHVZVUQ136.jpg

    当前SELINUX的状态为Enforcing

wKioL1nHlhyyI6kjAAARJLjsZ5A636.jpg

    打开SELINUX配置文件

wKioL1nHlhzhO2fFAAFllXoaN8M565.jpg

    将其修改为disabled或permissive,即禁用SELINUX,保存退出

wKiom1nHllegCekbAABadMmALAE047.png

    但是上面对配置文件的修改需重启后才能生效,可以用setenforce 0临时禁用SELINUX

2 检查防火墙

wKiom1nHlleidWNtAAANlq-zT6w437.jpg

    查看防火墙状态

wKioL1nHlh2zJAxWAAFbmPrwZOw854.jpg

    当前防火墙的状态为开启

wKiom1nHllfDo8BsAABiAfd_CnI599.jpg

    systemctl  disable firewalld.service开机时禁用防火墙   

    systemctl  stop firewalld.service临时禁用防火墙

3 开启DNS服务

wKioL1nHlh3hlpFUAAARBIpbxQI756.jpg

    临时启用DNS服务

wKiom1nHmVjjKrUXAABKTiB7AoM401.jpg

    将DNS服务设为开机启用

4 配置DNS

wKiom1nHmVjzti73AAA2fCNpOYE850.png

   打开DNS总配置文件

wKioL1nHmR7Sc4edAABjYFt6GMg530.jpg

    假设本机ip为127.0.0.1 192.168.25.107  172.18.0.107

  •   listen-on定义当前DNS服务器监听的端口,选项有

     本机某个ip:只监听本机某个ip的3306端口

     localhost:本机所有ip,即监听本机所有ip的3306端口

     any:监听所有网段的ip的3306端口,实际上这个选项对listen-on来说,相当于localhost,注释listen-on时相当于any

  •   allow-query定义当前DNS服务器为哪些主机提供查询服务,选项有

     本机某个ip:本机某个ip,即只允许本机的某个ip查询,只为本机某个ip提供查询服务。此时本机既是客户端又是服务器。

     某个网段ip:某个网段ip,即只允许某个网段ip查询,只为某个网段ip提供查询服务,例如172.18.0.0/16

     localhost:本机所有ip,即只允许本机的所有ip查询,只为本机所有ip提供查询服务,此时本机既是客户端又是服务器。

     any:所有网段的ip,即允许所有网段的ip查询,为所有网段的ip提供查询服务,注释allow-query时相当于any

     图中表示监听本机所有ip,为所有网段的ip提供查询服务

wKioL1nHmR7SGZWbAAARX0oFynU356.jpg

    之所以所有的DNS服务器都知道根,是因为在每个DNS服务器上都默认定义了一个根域,根域的数据库文件/var/named/named.ca中指定了根域的DNS服务器,即互联网上的13组DNS服务器。DNS服务器上对根域的定义与其他域的定义不同,其他域在其数据库文件中将DNS服务器指向当前DNS服务器。

wKiom1nHmVmxLV1MAABSUsmLeoo702.png

    打开根域的数据库文件/var/named/named.ca

wKiom1nHmVry-kiaAAUHOmuVYaM953.png


wKioL1nHmSHBjf4VAAGDN85uArc473.jpg

    NS记录表示出了为本域及本域的子域提供名字解析服务的所有DNS服务器,NS记录定义了DNS服务器的名称,A记录定义了与某个DNS服务器相对应的ip

wKiom1nHp_6y2oFGAAAtuiF4yoA008.png

wKioL1nHp8Pwp-BIAABQYcUzNmM333.png

    如图表示互联网上的根域有一一台DNS服务器的ip为199.7.91.3

wKioL1nHmSHgLS-hAAARRK9mYmU745.jpg


wKiom1nHmVviGZrpAAAfebagIaY148.jpg

     所以,将/var/named/named.ca的内容改成上图所示后,172.18.250.110就会认为根是172.18.0.107

wKioL1nHmz-xQmpCAAC6GYRomlE591.jpg

    实验中除了客户端和72.18.0.107之外的所有主机都需要将根指向172.18.0.107,可以用scp命令将改好的/var/named/named.ca文件拷贝到各主机,也可直接修改相应主机上的/var/named/named.ca,

172.18.22.200将根指向172.18.0.107

wKiom1nHm3rS8c2RAAC2E_dtlb4596.jpg

    172.18.0.106将根指向172.18.0.107

wKioL1nHm0DS2LvJAAA83OrZ9Ag923.png

    打开172.18.0.108上根域的数据库文件,将根指向172.18.0.107

wKiom1nHm3uidVfbAALZwmIwqZE358.png


wKioL1nHm0KCxQ45AABTGH_muFs108.png

    打开区域数据库配置文件

wKiom1nHm3zhZMSUAAAL4Wx7lBc355.png

    建立magedu.com域:

    双引号内为域名;

    类型为master,表示主DNS服务器;

    file指定区域解析数据库文件的相对路径(相对于/var/named)和名称,即为/var/named/magedu.com.zone

wKiom1nHm33QBwNMAAEoQYxYaiM708.png

     打开并建立区域解析数据库文件/var/named/magedu.com.zone

wKioL1nHm0OBAhuJAAHrh0idx8w440.png

    区域解析库:由众多资源记录组成,记录类型包括A、 SOA、NS、CNAME等

    资源记录定义的格式:

    语法:name        [TTL]        IN                   rr_type          value

          名字       生命期     关键字             记录类型          值

    下面以上图为例介绍区域解析库的使用:

    (1)

wKioL1nHnP_RXVIOAAAgNxmjsBc609.png

    TTL是记录缓存的有效期, 默认以s为单位

    图中$TTKL为全局TTL,对下面的每条记录都有效,每条记录也可以单独定义局部TTL,只对当前记录有效。

   (2)SOA记录:

wKioL1nHnP-xAiZbAABR4Fi7Umk647.png

  •   @即名字,表示本域的域名,也可以写成magedu.com.

  •   TTL为空,表示继承全局TTL,即生命期为86400s

  •   关键字IN

  •   记录类型为SOA  

  •   SOA记录的第一个值是主DNS服务器(有且仅有一个)的名称,不一定与DNS服务器的主机名保持一致,只要与下面的A记录匹配,即能够将该名称解析成ip地址即可

wKiom1nHnTqiF9apAAAdgM2216U615.png

  •    SOA记录的第二个值是DNS服务器管理员的邮箱地址,邮箱地址本来应该写成admin@magedu.com.但@有特殊含义,所以将@换成点

wKiom1nHnTqisBeJAAAJPpAqPlk023.jpg

  •   SOA记录的第三个值由一系列定义组成

wKioL1nHnQDCtXQZAAC_Raa5aTM559.png

      其中,

wKiom1nHnTuQQLbaAAAer5_PKqE535.png

    区域数据库的版本号,一旦数据库发生更改,就需要手动增大该序列号。

    主从复制时,系统判断区域数据库文件的内容是否发生变化时并不是真正去检查区域数据库文件的内容,而是看序列号是否增大,也就是说即使区域数据库文件的内容未发生变化,只要序列号增大,系统就认为区域数据库文件的内容发生了变化。

    每个域可能有多台DNS服务器,其中有且仅有一台主DNS服务器,主DNS服务器的数据库可读可写,从DNS服务器的数据库只能读,即只能供用户查询。从DNS服务器数据库的内容来自于主DNS服务器数据库, 主从DNS服务器数据库的同步(即主从复制)机制有pull和push两种:

    push:主DNS数据库重启服务时,会检查序列号。当序列号变化,即区域数据库文件的内容发生变化,主DNS数据库就会将新版数据库push至从DNS数据库,否则不执行push动作。

    pull:从DNS数据库会周期性的到主DNS数据库检查序列号。当序列号变化,即区域数据库文件的内容发生变化,从DNS数据库就会将新版数据库pull至自己的数据库,否则不执行pull动作。

wKioL1nHnQDi01hxAAAIBtg6tVI564.jpg

     refresh定义了主从复制时每个周期的长度,默认以秒为单位

wKiom1nHnTvymtXhAAAF1k7QMUg383.jpg

     若因为网络原因,导致pull动作失败,则从DNS服务器过一段时间后会再去尝试。retry定义了这段时间的长度,默认以秒为单位

wKioL1nHnQHjovPQAAAG6gIDwic777.jpg

     若主从DNS服务器的数据库超过expire时间仍未同步,则从DNS服务器数据库中的内容将过期

wKioL1nHnQGRKtwhAAAHXDSxAXo979.jpg

    若用户查询DNS服务器时输入错误,如写成wwwwww.magedu.com,DNS服务器查不到该条记录,用户的机器上就会缓存该错误查询结果,下次再输成该错误结果时,就不用到DNS服务器上再去查询。miminum定义错误查询结果的缓存时间

   (3)NS记录

    NS记录表示出了为本域及本域的子域提供名字解析服务的所有DNS服务器

wKiom1nHnTvQG-7GAAAetl8DgrA428.png

  •   NS记录的名字为空时,会默认其名字为本域的域名,即magedu.com

也可以写成magedu.com.或@

  •   TTL为空,表示继承全局TTL,即生命期为86400s

  •   关键字IN

  •   记录类型为NS  

  •   在本例中,NS记录的值是当前域DNS服务器的名称,不一定与DNS服务器的主机名保持一致,只要与下面的A记录匹配,即能够将该名称解析成ip地址即可

  (4)A记录

   DNS服务器的A记录

wKiom1nHnTuTDCVEAAAnT_s0ciM428.png

  •   在本例中,A记录的名字为dns1,系统会默认将其补全为dns1.magedu.com.

  •   TTL为空,表示继承全局TTL,即生命期为86400s

  •    关键字IN

  •   记录类型为A

  •   值为192.168.25.107,与上面的NS记录匹配,将DNS服务器名称解析成ip地址,即当前域DNS服务器的ip为192.168.25.107

    主机的A记录

wKioL1nHnQHiVQ9pAAAo3AyHdhw646.png

  •   在本例中,A记录的名字为websrv,系统会默认将其补全为websrv.magedu.com.

  •   TTL为空,表示继承全局TTL,即生命期为86400s

  •   关键字IN

  •   记录类型为A

  •   值为192.168.25.66,即主机websrv.magedu.com.的ip为192.168.25.66

   (5)别名记录

wKiom1nHnTyzQEW8AAAc1JpHvcw354.png

  •   在本例中,别名记录的名字为www,系统会默认将其补全为www.magedu.com.

  •   TTL为空,表示继承全局TTL,即生命期为86400s

  •    关键字IN

  •   记录类型为A

  •   值为websrv,系统会默认将其补全为websrv.magedu.com.  即www.magedu.com.是主机websrv.magedu.com.的别名,然后配合上面的A记录,可知ip为192.168.25.66。当客户端请求解析www.magedu.com这个别名对应的ip时,首先由别名记录得到websrv.magedu.com. 然后由A记录得到ip

wKioL1nHnQLDzgUdAAEG-Oy6aVU753.jpg

    172.18.18.5客户端直接请求172.18.250.110解析www.magedu.com,因为172.18.250.110有magedu.com域,在该域的数据库文件中有www.magedu.com的主机记录,即可解析为ip

二 搭建magedu.com域的从DNS服务器(172.18.22.200)

1 检查SELINUX

wKiom1nHn36ySFNXAAALjwgXV6w031.png

    当前SELINUX的状态为Permissive,即已禁用

2 检查防火墙

wKiom1nHn03gm0nUAABtuNmfIFE066.png

    当前防火墙的状态为已禁用

3 配置DNS

wKioL1nHnrrhTh9pAACNIktoQRE777.png

    打开总配置文件

wKiom1nHnvSBOEUPAAG4my2mt38652.png

    图中表示监听本机所有ip,为所有网段的ip提供查询服务

wKiom1nHnvTT3mZvAAASw3piabM479.png

   建立magedu.com域:

   双引号内为域名,注意从服务器的域名仍为magedu.com;

   类型为slave,表示从DNS服务器;

    file指定区域解析数据库文件的相对路径(相对于/var/named)和名称,即为/var/named/slaves/magedu.com.zone,从DNS服务器的区域解析数据库文件放在/var/named/slaves下

wKioL1nHnr6gRoDmAAArthr-szk009.jpg

   重启服务后主从DNS服务器的数据库文件自动同步

wKiom1nHnvjAJLOXAAEJUICkuSI969.jpg

     172.18.18.5客户端直接请求172.18.22.200解析www.magedu.com,因为172.18.22.200是172.18.250.110的从DNS服务器,所以其数据库文件与主DNS服务器上数据库文件的内容相同,虽然没有magedu.com域,但有该域的数据库文件,即有www.magedu.com的主机记录,就可解析为ip


三 搭建com域的DNS服务器(172.18.0.109 )

1 检查SELINUX和防火墙

    检查设置方式可以参考上面,此处不再赘述

2 DNS设置

wKioL1nHoNDx9SYpAABOakAC9B8246.png

    打开区域数据库配置文件

wKiom1nHoQuggqomAAAUHRvOWPs050.jpg

    建立com域:

    双引号内为域名;

    类型为master,表示主DNS服务器;

    file指定区域解析数据库文件的相对路径(相对于/var/named)和名称,即为/var/named/com.zone

wKioL1nHoNCAsudOAAAtm_aQavY020.jpg

    进入/var/named目录

wKiom1nHoQvxaSlEAAANoOZneSo578.jpg

    打开并建立区域解析数据库文件com.zone

wKioL1nHoNGR76eGAAIFNx3aY9s518.png

     NS记录表示出了为本域及本域的子域提供名字解析服务的所有DNS服务器

wKioL1nHoNGhNx_OAAAYFLeAmpE831.png

  •   NS记录的名字为magedu,系统会默认补上本域的域名,即magedu.com.表示为本域的子域magedu.com提供名字解析服务的DNS服务器

      不可以写成@,因为@表示本域域名

  •   TTL为空,表示继承全局TTL,即生命期为86400s

  •   关键字IN

  •   记录类型为NS  

  •   在本例中,NS记录的值是本域的子域的DNS服务器的名称,不一定与DNS服务器的主机名保持一致,只要与下面的A记录匹配,即能够将该名称解析成ip地址即可

   

    DNS服务器的A记录

wKiom1nHoQyBgzS5AAAnT_s0ciM069.png

  •   在本例中,A记录的名字为dns1,系统会默认将其补全为dns1.magedu.com.

  •    TTL为空,表示继承全局TTL,即生命期为86400s

  •   关键字IN

  •   记录类型为A

  •   值为172.18.250.46,与上面的NS记录匹配,将DNS服务器名称解析成ip地址,即本域的子域的DNS服务器的ip为192.168.25.107

    本例中,com域将其子域magedu.com的DNS服务器委派给172.18.250.46

wKioL1nHoNHQElCCAAAWmjPZ2_0984.jpg

    重启服务

wKiom1nHoQzgdfQ0AAD6oSLsvsQ988.jpg

    客户端请求172.18.0.109将www.magedu.com解析成ip地址,172.18.0.109只有com域,而com域的子域是magedu.com域,根据区域数据库文件得到magedu.com域的DNS服务器为172.18.250.46,172.18.250.46就有www.magedu.com的主机记录,即可解析为ip

四 搭建根域的DNS服务器(172.18.0.107)

1 检查SELINUX和防火墙

    检查设置方式可以参考上面,此处不再赘

2 DNS设置

wKiom1nHoz2Skt1UAABXnWGfl_k502.png

     打开区域数据库配置文件

wKiom1nHoz7xljr_AAATXlBaJzI124.jpg

    建立根域:

    双引号内为域名;

    类型为master,表示主DNS服务器;

    file指定区域解析数据库文件的相对路径(相对于/var/named)和名称,即为/var/named/root.zone

wKioL1nHowPQdti_AAA7nIVV0SY850.png

    打开总配置文件

wKiom1nHoz6gTKtHAAISrvLxA6E049.png

    图中表示监听本机所有ip,为所有网段的ip提供查询服务

wKioL1nHowSAizw5AAAXtqKOR_g912.jpg

    因为172.18.0.107要当根,删掉真正的根的定义

wKiom1nHoz7RG5qtAABjJoZ3GNM885.jpg

    打开并建立区域解析数据库文件/var/named/root.zone

wKioL1nHowXQPqQFAAG3llEgBLo548.png

    根域将其子域com的DNS服务器委派给172.18.0.109

wKiom1nHoz-w2-bEAAAaBbUeyGo413.jpg

    重启服务

wKioL1nHowWTOEK5AAB_3x0aAhQ204.png

    客户端请求172.18.0.107将www.magedu.com解析成ip地址,172.18.0.107只有根域,根域的子域是com域,根据区域数据库文件得到com域的DNS服务器为172.18.0.109,172.18.0.109只有com域,com域的子域是magedu.com域,根据区域数据库文件得到magedu.com域的DNS服务器为172.18.250.110,172.18.250.110就有www.magedu.com的主机记录,即可解析为ip

五 搭建运营商的DNS服务器(172.18.0.106 )

     172.18.0.106用作转发服务器

     当DNS服务器上没有某域,且未专门设置转发时,默认将请求转发至根域DNS服务器;当DNS服务器上没有某域,且专门设置了转发时,转发方式有全局转发和特定区域转发两种类型:

     全局转发:

     将转发语句写在option中,表示全局转发,即客户端向DNS服务器A提出解析请求后,

  •   若DNS服务器A上有相应的域,则由DNS服务器A进行解析,并将解析后的结果返回给客户端;

  •   若DNS服务器A上没有相应的域,则全部转发到option中指定的DNS服务器B上:

      (1)若设置转发规则为first,则将请求转发给DNS服务器B后,B未找到,则DNS服务器A会采用默认的转发路径,即将请求转发至根域DNS服务器

      (2)若设置转发规则为only,则将请求转发给DNS服务器B后,B未找到),则DNS服务器A直接将解析失败的结果返回给客户端

示例:

wKioL1nHpGLDJJQvAACNyTA4Gmo171.jpg

     图中表示若当前DNS服务器上没有相应的域,则全部转发到option中指定的DNS服务器:192.168.25.108

     特定区域转发:

     将转发语句写在zone中,表示特定区域转发,即客户端向DNS服务器A提出解析请求后,

  •  若DNS服务器A上有相应的域,则由DNS服务器A进行解析,并将解析后的结果返回给客户端;

  •  若DNS服务器A上没有相应的域,且该域未设置转发,则DNS服务器A会采用默认的转发路径,即将请求转发至根域DNS服务器

  •   若DNS服务器A上没有相应的域,且该域设置了转发(即存在一个类型为forward、域名与要解析的域相同的域)则转发到zone中指定的DNS服务器B上:

    (1)若设置转发规则为first,则将请求转发给DNS服务器B后,B未找到,则DNS服务器A会采用默认的转发路径,即将请求转发至根域DNS服务器

    (2)若设置转发规则为only,则将请求转发给DNS服务器B后,B未找到,则DNS服务器A直接将解析失败的结果返回给客户端

     示例:

     vim /etc/named/rfc1912.zones

wKioL1nHpGKBVF9DAAAdfpIt_80615.jpg

     图中表示若当前DNS服务器上没有wang.com域,且为wang.com设置了转发,即将请求转发到192.168.25.108

    在本实验中,172.18.0.106用作转发服务器,并未专门设置转发,直接采用的是默认的转发路径,即将请求转发至根域DNS服务器:

    vim /etc/named.conf

wKiom1nHpJ2DUxNwAAARX0oFynU206.jpg

    实际上定义了一种特殊的特定区域转发,即当前DNS服务器要查询根域时,会读该语句块,将请求转发至该语句块中定义的DNS服务器:在/var/named/named.ca中定义了该DNS服务器的ip

wKioL1nHpGOR8jhvAAMVdcEFkrk178.png

     172.18.0.106已将根指向172.18.0.107

wKiom1nHpJ6BtZS9AAAg5qn5Ono806.jpg

     重启服务

wKioL1nHpGTz5AcmAACar66ylTQ584.jpg

    客户端请求172.18.0.106将www.magedu.com解析成ip地址失败

wKiom1nHpJ6iB_VNAAASHHw0q6c378.jpg

    打开总配置文件wKiom1nHpZjhrvLKAADUKb8rI68383.jpg

    将这两项改为no即可wKioL1nHpGWQfZnhAAEC-h4vzM4989.jpg

    客户端请求172.18.0.106将www.magedu.com解析成ip地址,172.18.0.106上没有与该主机相关的任何信息,则会将请求转发到根,即172.18.0.107。172.18.0.107只有根域,根域的子域是com域,根据区域数据库文件得到com域的DNS服务器为172.18.0.109,172.18.0.109只有com域,com域的子域是magedu.com域,根据区域数据库文件得到magedu.com域的DNS服务器为172.18.250.110,172.18.250.110就有www.magedu.com的主机记录,即可解析为ip

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值