一、DNS基础知识(先科普一下):

   1、DNS出现的环境:

        TCP/IP协议通信是基于IP地址的,但是网络管理员无法记住那一串串单调的数字。因此大家基本上是通过访问计算机域名,然后通过 DNS服务器将计算机域名解析为IP地址来实现的。


    2、什么是DNS:

        DNS:域名系统(Domain  Name  System)用于命名组织到域层次结构中的计算机和网络服务。DNS命名用于TCP/IP网络中,通过用户友好的名称查找计算机。当用户在应用程序中输入DNS名称时,DNS服务可以将此名称解析为与之相关的IP地址。DNS客户端请求过程为:本地hosts文件-------缓存--------DNS服务器(逐一查找,那一步有,就不用找下一步了,没有就按顺序查找)。客户端查询示例图:

wKioL1aSPNTTkQ6SAABoxROlkKI998.png

    3、DNS域命名空间简介:

        DNS域命名空间具有层次性的,一般可以分为根域、顶级域、二级域、子域以及主机名、其结构如下图:

        

wKioL1aSSOyzMVuDAACH3NSXeaY201.png    (1)、根域:用“.”表示,默认情况下不需要表示出来,全世界目前有13台根域服务器,由INIC管理;


    (2)、顶级域 :位于根域下层,是由三个字母组成的名称,又可分为国家或地区名称和使用机构名称(国家或地区名如:.cn,.hk,.tw,.jp等)


    (3)、二级域:位于顶级域下面,是在Internet上使用而注册的域名,可以自定(但前提是没被别人使用);

 

   (4)、子域 :是按公司或组织的具体情况而从已注册到的个人或组织的域名中按部门或地理位置创建,位于二级域下面;


    (5)、主机名:位于DNS域命名空间的最低层,主要是的位于Internet或公司及组织内部的计算机主机名。

    

   4、DNS服务器类型:

        根据管理的DNS区域不同,DNS服务也有不同的类型。一台DNS服务器可以同时管理多个区域,因此也可以同时属于多种DNS服务器类型。目前在企业网络部署环境中主要有以下四类:


    (1)、主DNS服务器:

        当DNS服务器管理主要区域时,被称之为主DNS服务器,它是主要区域中的集中更新源;它的区域数据存放在本地文件中,只有自己才有写权限。当主DNS服务器出现故障时,从服务器(只读取主DNS服务的数据没有写主DNS服务器的权限)可以指定过期时间到达之前应答DNS客户端的请求。


    (2)、从DNS服务器:

        一般在DNS服务器针对实际使用中总建议至少使用两台,目的有两点:一是在同一个区域可以实现负载均衡,降低主DNS服务器的负载,同时提高性能。其次,当主DNS服务出现故障时,从DNS服务通过与主DNS服务器“复制操作”的实施方式(从DNS服务器对主DNS读取数据进行更新区域数据),为客户端口DNS解析请求提供答复(但要在指定过期时间之前)。


    (3)、缓存DNS服务器:

        即没有管理任区域的DNS服务器,也不会像从DNS器一样产生区域复制操作,它只是缓存名称并且使用缓存信息来应答DNS客户端的解析请求。刚安装好的DNS服务器默认就是一台缓存服务器,可以用来减少DNS客户端访问外部DNS的网流流量,降低解析时间(目前应用广泛)。


    (4)、转发DNS服务器:

        转发DNS服务器允许当本地DNS服务器无法对DNS客户端的解析请求进行本地解析时,转发DNS客户端发送的解析请求到上游DNS服务器。此时,本地DNS服务器又称为转发服务器,而上游DNS服务器又称为转发器。

在Linux系统还提供了条件转发功能,可以针对不同的域名请求转发到不同的转发器(上游DNS服务器)。


    5、DNS解析类型:

        在部署一台DNS服务器时,必须先考虑到DNS解析类型,以此来决定DNS服务器类型,DNS解析类型可以分为以下两类:

    

    (1)、正向查找解析:getipbyhostname

        用于域名到IP地址,当DNS客户端请求解析某个域名时,DNS服务器通过正向查找,返回给对应的IP给请求的DNS客户端。

  

    (2)、反向查找解析:gethostnamebyip

        用于IP地址到域名,当DNS客户端请求解析某个IP时,DNS服务器通过反向查找,返回给对应的域名给请求的DNS客户端。



二、用到的DNS服务器软件包及相关工具(Linux系统下)

    

    1、所需程序包:

bind-libs:被bind和bind-utils包的程序共同用到的库文件

bind-utils:bind客户端程序集,例如dig,host,nslookup等;

bind:提供的dns server程序,解析器库文件以及几个常用的测试程序

bind-chroot:选装,在互联网上使用时,建议安装----让named运行在jail模式下(沙箱模式)


    2、配置文件位置:

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

区域数据文件:/var/named/ZONE_FILE.ZONE(正向)

                    :/var/named/ZONE_FILE.ZONE(反向)

 

    3、所用到的工具:


语法测试工具:检查配置文件语法错误

                    :named-checkconf;测试主配置文件

     :named-checkzone;测试区域数据文件


测试工具:dig 、host、nslookup


rndc命令:named服务控制命令

              :rndc  reload;重载区域配件文件

              :rndc  status;查看服务状态

              :rndc flush;清除服务缓存

端口开放及防火墙添加:53/tcp/udp   953/tcp

                :iptabls

                :firewall-cmd

          

                  温馨提示:测试时千万要注意时间同步问题,否则会出现让你想不到的错误

            ntpdate 172.16.0.1(可用计划任务自动同步时间,可是其他时间服务器地址)


三、配置文件格式:

  

  1、全局(主)配置文件:/etc/named.conf

                        全局配置段:

options {………}

日志配置段:

logging {………}

区域配置段:

zone  {………}


    2、域数据库文件:(资源记录或解析库文件Resource Record,简称rr:

        记录类型:A,AAA,PTR,SOA,NS,CNAME,MX

               SOA:Start of Authority,起始授权记录;一个区域解析库有且只能有一个SOA记录,而且必须放在第一条。

                NS:Name Service,域名服务记录;一个区域解析库可以有多个NS记录;其中一个为主的;         A:Address,地址记录,从FQDN解析为IP地址的记录(IPv4)。

                AAAA:地址记录,从FQDN解析为IP地址的记录(IPv4)一个主机可以有多个IP(实现轮巡服务),一个IP也可以有多个IP。

                CNAME:Canonical  Name,别名记录。

                PTR:Pointer,从IP解析到FQDN。

                MX:Mail exchanger,邮件交换器(标记邮件服务器的)可有多个,但有优先级的概念

优先级:0-99,数字越小优先级越高:

                 例如(SOA):aaa.com.             86400      IN         SOA       aaa.com.       admin.aaa.com.  (                                                                             2017010801 serial   序列号

                                                                              2H                ;refresh  刷新时间

                                                                              10M             ;retry    重试时间

                                                                              10W            ;expire  过期时长

                                                                              1D             ;negative answer ttl    答案缓存时长

                          )


    3、配置解析一个正向区域:

                  以aaa.com域为例:

           (1)、定义区域

                  在主配置文件中或主配置文件辅助配置文件中实现

                        zone "ZONE_NAME"


           (2)、建立区域数据文件(主要记录为A或AAAA记录)

                  在/var/named目录下建立 区域数据文件;文件为:/var/named/aaa.com.zone    后面的文件名为自建的

                        权限及属组修改

                            chgrp  named /var/named/aaa.com.zone

                        检查语法错误:

                            named-checkzone ZONE_NAME ZONE_FILE

                            named-checkconf


           (3)、让服务器重载配置文件和区域数据文件

                   rndc  reload或者systemctl reload named.service


    4、配置解析一个反区域:

                示例:区域名称38.16.172.in-addr.arpa为例:

            (1)、定义区域

                主配置文件中或主配置文件辅助配置文件中实现

                        zone "ZONE_NAME"

                注意:反向区域的名字

                          反写的网段地址:.in-addr.arpa

                                                                      38.16.172.in-addr.arpa

            (2)、建立区域数据文件

                在/var/named目录下建立 区域数据文件;文件为:/var/named/38.16.172.zone 后面的文件名为自建的                    权限及属组修改

                            chgrp  named /var/named/38.16.172.zone

                            chmod o=   /var/named/38.16.172.zone

                        检查语法错误:

                            named-checkzone ZONE_NAME ZONE_FILE

                            named-checkconf

            (3)、让服务器重载配置文件和区域数据文件

                            rndc  reload或者systemctl reload named.service




上面啰嗦了半天,大家累了,来看点轻松愉快的。。。。。。。。。。。。。。。。。 


四、架设DNS服务器实战


   安装说明及服务器之间关系:

主DNS服务器-----CentOS 7.1

 域解析   ns :

_IP:172.16.38.100

 本地区域:aaa.com

          机:www

从DNS服务器----CentOS 6.7

域解析     ns1

_IP:172.168.38.200

本地区域:aaa.com

子域DNS服务器---CentOS 6.7

域解析     ns2

本地区域:gayj.aaa.com

          机:www

全局转发:直接在子域主配置中设置转发

 

架设安装正式开始。。。。。。

 

(一)、主DNS服务器

系统CentOS 7.1、 域解析ns :  IP:172.16.38.100   本地区域:aaa.com         机:www

1、先检测是否已经安装:

   wKiom1aSb4rAYgGRAAAJHVloP_M165.png

2、开始安装

wKioL1aSb7iDvffZAABYn8af9uo653.png

3、设置开机启动及开放端口和添加防火墙

设置开机启动

wKioL1aSb7mArEbFAAAV02_DW8Y709.png

添加防火墙端口   53/tcp/udp 同样方法添加953

wKiom1aSb4yxC110AAAHyxaXtOM544.png

wKiom1aSb4zDxuKVAAAIR8rFHGc933.png

查看防火墙配置结果

wKioL1aSb7qTYwDnAAAfP-CBJ_Y896.png

4、查看服务运行状况

wKiom1aSb43zM19jAABNMHaGVSc490.png

5、区域配置文件:/etc/named.conf

options 全局配置字段修改如下-------172.16.38.10053号端口作为主DNS监听端口

wKioL1aSb7uDBPErAAApFm2Yvfg741.png

注:下面allow-query是注释了的,不然只能本地解析

zone区域配置段新添加两段-------主DNS正向区域和反向区域

wKiom1aSb5GC6H9YAAA0cmZN6MI875.png

测试配置文件有没有语法错误------没返回值就说明正常

wKioL1aSb7-BOMksAAATUWD2Mvs539.png

 

6、创建并配置区域数据文件:

 /var/named/aaa.com.zone

正向区域数据文件------注意后面三段:ns为主服务器自身配置,ns1为从服务配置,ns2为子域授权

wKioL1aSb8DjCglVAAA-5olfQDc555.png

对文件进行语法检查

wKiom1aSb5PhMTC7AAAORbYf51s417.png

 /var/named/aaa.com.zone

反向区域数据文件------注意后面三段:ns为主服务器自身配置,ns1为从服务配置

wKioL1aSb8KScQlaAAAuxhBazZA978.png

对文件进行语法检查

wKiom1aSb5Xzn8j3AAAaAuG_6e4653.png

7、更改/var/named/172.16.38.zone和/var/named/aaa.com.zone的属组为named

wKiom1aSb5ihmqFxAACk1dOgQJo512.png

8、重载配置文件和服务

wKioL1aSb8eDgXC_AAAOVC8bVVU982.png

9、解析测试

正向测试:

wKiom1aSb73gB2w6AAC-oYSp0UQ483.png

如果测试主DNS自己主机出现下面状况,请用rndc flush清除DNS缓存

wKioL1aSb_Gy073aAABbvor4qJA006.png

清除DNS缓存

wKiom1aSb9PBl05NAAAM4RW4iR8504.png

重新解析主DNS主机

wKioL1aScAOAGyTuAABoyB-RrcI990.png

正向解析ftp.aaa.com

wKiom1aSb9jSku4CAABfupi-xnM156.png

反向解析测试

主DNS自身反向解析(主要针对内部区域使用)

wKioL1aScAbQBzhoAABtsdEBptQ377.png

 

(二)、从DNS服务器

系统CentOS 6.7  域解析ns1 :   IP:172.16.38.200   本地区域:aaa.com          机:www

1、先检测是否已经安装:

   wKioL1aScqKic09KAAARIM4TFbc152.png

2、开始安装

wKiom1aScniR98asAACVLNowJPU646.png

3、设置开机启动及防火墙

wKioL1aScqaSuysMAAAGaBqdyfg092.png

chkconfig --list  named

wKiom1aScnnB05ekAAAHWyM5Uf8903.png

添加防火墙

wKioL1aScqfzeV-lAAAInY36sGg260.png

wKiom1aScnrwqSaVAAAIgE9vGV4513.png

保存防火墙规则

wKioL1aScqiRt4oCAAARPCcXVEI437.png

查看防火墙状态

wKiom1aScnvBSjFTAAAavmf_XRU099.png

4、查看DNS服务状态

wKioL1aScqrxa3JUAAAwIp66lng659.png

5、区域配置文件:/etc/named.conf(从服务一般只配置这个文件)

options 全局配置字段修改如下-------172.16.38.20053号端口作为从DNS监听端口

wKiom1aScn-BoDKLAAAuCyQcoWo657.png

zone区域配置段新添加两段-------从DNS正向区域和反向区域

wKioL1aScq7T6M9OAABC3TMOqZc604.png

测试配置文件有没有语法错误------没返回值就说明正常

wKiom1aScoLiazVAAAAJ4ZcoEb4734.png

 

6、重载区域配置文件和服务

wKiom1aScoPzHsSoAAAZxEWnwPU568.png

7、解析测试

正向解析主DNS上的主机到IP

wKioL1aScrLihx1YAABdJOJE2qw276.png

反向解析主DNS上的IP到主DNS的主机

wKiom1aScoax_rrAAABipFNWEv0441.png

正向解析互联网上的主机到IP

wKioL1aScraT2WlgAACs90mq5mI684.png

 

(三)、子域授权

系统CentOS 6.7  域解析ns2 :   IP:172.16.38.8   本地区域:gayj.aaa.com          机:www

1、先检测是否已经安装:

   wKiom1aSdDGzCaJMAAAQ4JY0cqQ602.png

2、开始安装

wKioL1aSdGSCH1xDAAB-fBjZbug969.png

3、设置开机启动及防火墙

wKiom1aSdDfQYCvQAAAGaBqdyfg122.png

chkconfig --list  named

wKiom1aSdDni3UGHAAAHWyM5Uf8909.png

添加防火墙

wKioL1aSdGjyI1jlAAAInY36sGg538.png

wKiom1aSdDuSw7fxAAAIgE9vGV4660.png

保存防火墙规则

wKioL1aSdGvAYtOcAAARPCcXVEI255.png

查看防火墙状态

wKiom1aSdEGjUaBPAAAavmf_XRU205.png

4、查看DNS服务状态

wKioL1aSdHGTQpfAAAAwIp66lng719.png

5、区域配置文件:/etc/named.conf(从服务一般只配置这个文件)

options 全局配置字段修改如下-------172.16.38.853号端口作为从DNS监听端口

wKioL1aSdHPQj9aSAAArmyPse6U969.png

zone区域配置段新添加一段-------子域DNS正向区域

wKiom1aSdEbDe8_0AAAORaeW664253.png

测试配置文件有没有语法错误------没返回值就说明正常

wKioL1aSdHOS_PsBAAAJ4ZcoEb4233.png

6、配置子域的区域数据文件:/var/named/gayj.aaa.com.zone

wKiom1aSdEegAf6XAAAjw_vtJmA921.png

检查语法错误

wKioL1aSdHWRJCZ0AAAOXAUX9iQ012.png

7、重载区域配置文件和服务

wKiom1aSdEjziUFOAAAZxEWnwPU749.png

8、解析测试

利用自已DNS正向解析自己DNS上的主机到IP   wKioL1aSdxmBK3jKAAB1QlcT7V4950.png

利用主DNS正向解析解析到自己区域名主机

wKioL1aSdovTDl8PAABS_X5CXTU780.png

利用从DNS正向解析到自己区域名主机

wKioL1aSdHzSlqUTAABfbnXal6o212.png

正向解析互联网上的主机到IP

wKioL1aSdpHRpMVeAAC3lc07Kvc051.png

 

(四)、全局定向转发

直接在子域中实施,因为子域不能解析主DNS的主机区域到IP

计算机生成了可选文字: rootogayjnamed]#dig一tA 树目目。aaa。COm 0172.16.38.8 ;<<>》DIG global 9.8.Zrcl一RedHat一9.8.2一0.37.rcl.0167.5<<>>一tA树w树.aaa.com0172.16.38.8 options:+cmd ;;connectiontimodout;nosorvorscouldboroachod

1、在子域全局文件配置就行(注意CentOS7与CentOS配置方法区别在于{}和;)下图为CentOS6

wKiom1aSdynTrOZeAAAOAoGcF4E187.png

2、测试语法错误

wKioL1aSd1fRNoFXAAAHP26TK6U441.png

3、重载全局配置文件

wKioL1aSd1ejvloeAAAI001T9Hg192.png

4、用子域解析主DNS的主机区域

wKiom1aSdyySHeGtAAA2jtnUvaQ734.png

 

 东西太多,如有点小错请指正。