Centos7系统DNS服务全面解析

DNS服务介绍:

         DNS(domain  name  system): 域名系统 , 记录的是域名 和 IP的对应关系 , 实现将域名解析成IP , IP解析成域名 .

         正向解析 : 实现将域名解析成IP

         反向解析 : 实现将IP解析成域名


DNS服务器的身份:

         1. 主DNS服务器(master): DNS系统中用来记录域名和IP地址对应关系(资源配置文件)的权威服务。

         2. 辅助DNS服务器(slave备):辅助DNS服务器上的资源配置文件来源于主DNS服务器。会自动从主DNS服务器上下载资源配置文件,或定期跟主DNS服务器同步资源配置文件数据。辅助DNS服务器可以帮助主DNS服务器分担一定的域名解析压力。

         3. 缓存DNS服务器(cache缓存):用来缓存域名解析的数据。可以用来作为DNS解析加速器。

         4. 端口号 : 53



域名的命名规则:

         格式: 主机名 . 二级域名 .一级域名.[根域]       例如: www.baidu.com

         根域:用.点表示。根域是域名系统的最顶层。全球有13台根域服务器。大部分的根域服务器在美国。

         一级域名:用于标识组织机构的类别。例如:

                          com企业、公司       net网络机构      org非盈利组织    cn中国     hk香港     gov政府机构       edu教育机构   

         二级域名:用于标识组织机构名称。通常有公司或个人向域名系统管理机构申请一个用于标识身份的名称。常见的互联网公司二级域名代号例如:

                          阿里:ali     淘宝 taobao     58同城 58     腾讯 qq、tencent    网易163    新浪sina

         三级域名(或主机名):集团公司通常用于标识不同地区的公司。如58同城的公司有:

                          wh.58.com、hz.58.com、bj.58.com。(wh武汉 ,hz 杭州 ,bj 北京)




DNS工作原理及解析过程:

          image.png


       

1、client客户机向本地的DNS 服务器发出解析请求:“你知道www.baidu.com”的IP地址吗?服务器就在自己的DNS数据库中查询是否有www.baidu.com的区域记录和资源记录。

2 、如果本地的DNS服务器上有记录,则直接将www.baidu.com的IP地址告诉给客户机。否则,本地DNS服务器就回去问“根”DNS服务器。

3、根DNS服务器告诉本地DNS服务器.com的DNS服务器IP地址。

4、本地DNS服务器向.com服务器发出请求:“你知道www.baidu.com”的IP地址吗?

5、.com的DNS服务器告诉本地DNS服务器baidu.com的DNS服务器IP地址。

6、本地DNS服务器向baidu.com服务器发出请求:“你知道www.baidu.com”的IP地址吗?

7、baidu.com的DNS服务器告诉本地DNS服务器www.baidu.com的服务器IP地址。

8、本地DNS服务器告诉Client客户机:"www.baidu.com"的IP地址是180.97.33.107。




DNS服务器的部署流程:

      环境 : systemctl  stop  firewall    #关闭防火墙     setenforce     #关闭selinux

     1. 查看软件是否安装 : rpm  -q  bind  bind-utils

     2. 安装DNS服务器所需要的软件: yum  install  -y  bind  bind-utils(客户端软件)

     3. 启动服务并设置开机自启动: systemctl   restart  named

                                                   systemctl  enable  named

     4. 查看配置文件: rpm  -qc  bind

         image.png

         其中, /etc/named.conf 为主配置文件 , /etc/named.rfc1912.zones  为DNS的区域配置文件(正向解析、反向解析的区域设置)




主配置文件 /etc/named.conf 内容:


         

options {

        listen-on port 53 { any; };                                                              # 监听端口为 53 , any 允许为ipv4 的任意IP访问

        listen-on-v6 port 53 { ::1; };

        directory       "/var/named";                                                         # DNS服务的工作目录

        dump-file       "/var/named/data/cache_dump.db";

        statistics-file "/var/named/data/named_stats.txt";

        memstatistics-file "/var/named/data/named_mem_stats.txt";

        recursing-file  "/var/named/data/named.recursing";

        secroots-file   "/var/named/data/named.secroots";

        allow-query     { any; };                                                                  # 允许查询,localhost表示仅允许本机自己查,如果要让网络中的任何主机查询就用any。(白名单)

        recursion yes;                                                                                # 允许递归查询


        dnssec-enable  yes;                                                                       # 启用DNS安全功能

        dnssec-validation  yes;


        /* Path to ISC DLV key */

        bindkeys-file "/etc/named.iscdlv.key";


        managed-keys-directory "/var/named/dynamic";


        pid-file "/run/named/named.pid";                                               # DNS的pid文件

        session-keyfile "/run/named/session.key";

};


logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};


zone "." IN {                                                                                         # 根域设置

        type hint;                                                                                      #类型为hint

        file "named.ca";     文件路径是/var/named/named.ca                  #主机名和IP映射关系的资源记录文件名

};


include "/etc/named.rfc1912.zones";                                                   # 指定包含的配置文件 , 区域配置文件

include "/etc/named.root.key";


区域配置文件内容, 以/var/named/named.localhost 为例:

$TTL 1D                                                                                 #缓存数据的生命周期值为一天

@       IN SOA  @ rname.invalid. (                                         #soa记录 , 指权威的DNS服务器名称和管理员邮箱

                                        0       ; serial                                   #文件的版本编号 , 通常用年月日来编写 , 例20190218001

                                        1D      ; refresh                               #刷新时间为一天

                                        1H      ; retry                                  #重试时间为一小时

                                        1W      ; expire                               #过期时间为一周                               

                                        3H )    ; minimum                          #默认缓存时间为三分钟

        NS      @                                                                        #ns记录 ,即name server记录 ,记录是dns服务器的名称

        A       127.0.0.1                                                               # A 记录指定域名对应的IP

        AAAA    ::1



配置DNS服务的正向解析(域名-->ip):

       以自身IP为例(192.168.11.11) , 搭建一个名称为gj.com的正向解析服务

       第一步 : 首先将主配置文件 /etc/named.conf 中的localhost 和 127.0.0.1 改为 any

       image.png

       第二步 : 编辑区域配置文件 /etc/named.rfc1912.zones , 创建 gj.com 的正向解析配置文件 ,在文件最后一行写入如下所示:

                    zone "gj.com" IN {                                     # 配置名称区域

                         type  master;                                              # 类型为master 主

                         file  "gj.com.zone";                                 #资源记录文件名 , 完整路径为 /var/named/gj.com.zone

                         allow-update { none; };                           # 允许跟新 , none 为不允许跟新

                              };

       第三步 : 创建qf.com正向解析区域的资源记录(域名和IP地址的映射关系)文件gj.com.zone。

        cd  /var/named                                         # 进入到 /etc/named 目录下面

        cp  -av   named.localhost   gj.com.zone    #复制 named.localhost 文件里面的内容到 gj.com.zone 文件中

        vim   gj.com.zone                                       #编辑此文件 ,添加图中最后四行内容

        image.png

       第四步 : 重启服务 ,用nslookup 命令进行本地检测:

        image.png

        mail.gj.com 同上www.gj.com  , 解析出来的IP为192.168.11.22






配置DNS服务的反向解析(ip-->域名):

        第一步 : 同上正向解析

        第二步 : 编辑区域配置文件 /etc/named.rfc1912.zones , 创建 gj.com 的反向解析配置文件 ,在文件最后一行写入如下所示:

                    zone "12.168.192.in-addr.arpa" IN {              #配置ip区域 , IP反正写

                         type  master;                                              #类型为master 主

                         file  "192.168.12.zone";                                 #资源记录文件名 , 完整路径为 /var/named/192.168.12.zone

                         allow-update { none; };                               # 允许跟新 , none 为不允许跟新

                              };

                             image.png

            第三步 : 创建qf.com反向解析区域的资源记录(域名和IP地址的映射关系)文件192.168.12.zone。

                   

                   cd  /var/named                                                 # 进入到 /etc/named 目录下面

                   cp  -av   named.localhost   192.168.12.zone    #复制 named.localhost 文件里面的内容到 192.168.12.zone 文件中

                   vim   192.168.12.zone                                      #编辑此文件 ,添加内容如图所示:

                   image.png

       第四步 : 重启服务 , 用nslookup 进行本来检测 :

                   image.png

                   使用nslookup 切换服务器到192.168.11.11 上 , 输入IP:192.168.12.2 ,从图看出成功解析出www.gj.com , ip:192.168.12.3 解析出相对应的 mail.gj.com




辅助DNS服务器配置:


       功能及作用 : 辅助DNS服务器上的资源配置文件来源于主DNS服务器。会自动从主DNS服务器上下载资源配置文件,或定期跟主DNS服务器同步资源配置文件数据。辅助DNS服务器可以帮助主DNS服务器分担一定的域名解析压力 .


       部署实验环境 : 准备第二台虚拟机主机(IP:192.168.11.13) , 按上述文章内容创建好正向解析区域和反向解析区域并测试成功之后 , 在192.168.11.13开始部署辅助DNS服务: 

                第一步,安装软件:

                rpm  -q  bind  bind-utils

                yum  install  -y  bind  bind-utils

                systemctl  restart  named  &&  systemctl  enable  named

                rpm  -qc  bind

                第二步,备份指定的配置文件:

                cd  /etc

                ls   named*

                cp  -v  named.conf{,.bak}

                cp  -v  named.rfc1912.zones{,.bak}

                第三步,修改/etc/named.conf主配置文件,将文件中的127.0.0.1和localhost全部改成any。

                vim   /etc/named.conf    修改如下两行内容的{}中的内容为any

                listen-on  port  53  { any; };

                allow-query  { any; };

      ------- 以上操作不做过多解释 , 上文有详细解释-----------------------------------

                第四步 : 编辑区域配置文件 /etc/named.rfc1912.zones , 创建 gj.com 的辅助DNS解析配置文件 ,在文件最后一行写入如下所示:

                        image.png

                        type   slave                              #设置类型为从

                        file "slaves/gj.com.zone"         #声明辅助配置区域文件

                        masters  { 192.168.11.11;};      #声明主DNS服务器为192.168.11.11这台机器  

                第五步 : 重启服务 , 查看 /var/named/slaves 下面是否存在文件:

                        image.png 

                        可以看出一开始没有 , 重启服务后 , /var/namd/slaves 下面存在 gj.com.zone 区域配置文件 , 这个文件是从主DNS服务器192.168.11.11下载过来的

                        image.png 

                        从辅助DNS服务器检测也能解析出www.gj.com ,如上图



DNS服务器视图功能及部署:

        视图功能作用 : 通过视图功能可以实现内网、外网解析出不同的IP地址。即解析同一个域名时,对于不同网段的客户机查询出不同结果的IP地址

        (警告:在使用DNS视图功能的 DNS服务器上要在/etc/named.conf中删除或注释掉根域的配置信息,注释掉named.rfc1912.zones和root.key这些代码.否则会出错.)

         ---------------------------------------------------------------------------------------------------------------      

           附:   dns视图配置代码:
               acl   dianxin  {                                        #定义访问控制列表名称为dianxin电信
                  192.168.11.0/24;                    #指定网络地址和子网掩码,24是255.255.255.0这个子网掩码
               };

               view  "dianxin" {                                      # 定义视图名称为dianxin电信
                   match-clients { dianxin; };                #匹配客户端的网段为dianxin(即acl定义的名称)
                   recursion  yes;              # 启用递归查询
                   zone "test.com" IN {         # 登记test.com匹配配置
                  type master;            #类型为master主DNS服务器
                  file "dianxin.test.com.zone";             #区域的解析资源配置文件
              };
              };

        -----------------------------------------------------------------------------------------------------------------

         

        实验:给192.168.11.11[电信]这台主机的ens33网卡临时添加2个IP地址(192.168.100.7[移动]、192.168.110.7[联通])。创建一个dianxin的视图,在视图中定义test.com区域,并创建解析资源记录文件,主机名和IP地址随便定,但IP必须是192.168.11.0这个网段的。做解析测试。

         部署如下: 

         首先 ,修改主配置文件 : /etc/named.conf , 如图所示 ,注释文件并添加视图代码:

         image.png

         

         临时添加网卡并用ifconfig 查看::

         ifconfig  ens33:1   192.168.100.9  up

         ifconfig  ens33:1   192.168.110.9  up 

         image.png

         

        创建/var/named/dianxin.test.com.zone这个解析区域配置文件:

         cd  /var/named

         cp -av   named.localhost    dianxin.test.com.zone

         vim  dianxin.test.com.zone  编辑此文件输入以下内容 ,如图:

         image.png

         本地测试 : nslookup  dns1.test.com   192.168.11.11

         image.png

         而其他网段解析不了 , 同上原理可创建移动dns , 联通dns服务 ,实现不同网段解析不同网段的功能



DNS子域授权:

       子域 : 出了根域之外的服务器都称为子域 ,一般在公司内部使用 ,

       为什么使用子域? 为的是能够减轻父域的负担 , 且不受dns服务商的影响

       父域只需解析出自己的子域即可 , 子域解析的是子域中的所有主机 . 

       实验 : 搭建父域和子域

       实验拓扑 : 配置二级域名(子域)服务器 qq.com . (ip:192.168.11.13)

                       配置一级域名(子域)服务器 www. (ip:192.168.11.11)

        首先 , 在两台虚拟主机(192.168.11.11  192.168.11.12)上安装好DNS服务 , 安装详细部署见上文(记得关闭防火墙和seLinux):

        

        配置二级域名: vim /etc/named.rfc1912.zones  编辑此文件添加内容如图:

         image.png

         再创建区域配置文件 /var/named/qq.com.zone , 内容如下

         image.png

         重启服务 , 用nslookup www.qq.com 192.168.11.13 检测是否解析成功

         

        配置一级域名服务器:

        vim /etc/named.rfc1912.zones  编辑文件添加如图所示内容:

        image.png

        再创建区域配置文件 /var/named/com.zone , 内容如下

        image.png

        重启服务 , 再父域上检测 : nslookup www.qq.com 192.168.11.13

        image.png

        到此 ,子域授权结束



               

        

        

                  

         

         

         

                                           

                

猜你喜欢

转载自blog.51cto.com/14181896/2352675
今日推荐