DNS基本工作原理,以及正反向解析和主从同步

 

DNSDomain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析. (C/S架构, 53端口/udp,53/tcp),应用层协议.

   

DNS查询类型:

     递归查询:只发出一次请求就能得到最终结果的查询

     迭代查询:查询时得到的是参考性答案,也可能是最终答案;

名称服务器:域内负责解析域内的名称的主机

  根服务器:全球共13组根服务器

 解析类型:

     正向解析:FQDNàIP

     反向解析:IPàFQDN

     正反向解析是两个不同的名称空间,是两个不同的解析树

   注:FQDN fullqualified domain name:完全合格域名  如:www.magedu.com

DNS服务器的类型:(DNS服务器, DNS服务器, 缓存DNS服务器, 转发器)

  DNS服务器:维护所负责解析的域内解析库服务器;解析库由管理维护;

  DNS服务器:从主DNS服务器或其它的从DNS服务器那里“复制”(区域传递)一份解析库;

          序列号:解析库的版本号;前提:主服务器解析库内容发生变化,其序列递增;

          刷新时间间隔:从服务器从主服务器请求同步解析库的时间间隔;

          重试时间间隔:从服务器从主服务器请求同步解析库失败时,再次尝试的时间间隔;

          过期时长:从服务器始终联系不到主服务器时,多久多后放弃从服务器角度,停止提供服务;

区域传送:

                  全量传送:传送整个解析库

                 增量传送:传递解析库变化的那部分内容

通知机制:主服务器发生改变后可以发生通知给从服务器;

 

缓存DNS服务器

DNS的工作原理及过程:

      1、客户机提出域名解析请求,首先查看hosts文件,如果hosts文件中没有配置并将该请求发送给本地的域名服务器。

      2、当本地的域名服务器收到请求后,先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。

      3、如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。

      4、本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。

      5、重复第四步,直到找到正确的纪录。

   6、本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。

解析库中资源记录:  resource record:RR  

资源记录的记录类型概念:

      SOA:start of authority:起始授权记录:定义一个区域解析库有且仅能有一个SOA记录,必须出现在解析库第一条,当前区域解析库由谁负责;

     A:insernet address:作用,将FQDN解析为IP地址

      AAAA:FQDN解析为IPv6地址;

       PTR:pointer:指针,实现IP解析为FQDN

       NS:name server:专用于当前区域的DNS服务器,解析的是局域网IP和电脑名称

    CNAME:  canonlical name,别名记录;

       MX:mail  exchanger:邮件交换器

 资源记录定义的格式:

       语法:name  [TTL可缓存时长]  IN rr-type资源记录类型   value结果

 

        注意:

         1TTL可从全局继承;

         2@可用于引用当前区域的名字:

         3,同一个名字可以有多个不同的值,单需要通过多条记录来实现;此时DNS服务器轮询响应;

         4,同一个值也可能有多个不同的名字,通过多个不同的名字指向同一个值定义;仅表示通过多个不同的名字可以找到同一个主机;

 

 SOA:

name: 当前区域的名字:“magedu.com.";

      value:有多部分组成

      1,当前区域的主DNS服务器的FQDN,可以使用当前区域的名字;

      2,当前区域管理员的邮箱地址,但地址中不能使用@符号,一般用点号替代,如:linedu.magedu.com而不是linedu@magedu.com

      3,使用(主从服务器协调属性的定义,以及否定答案的同一的TTL值)

               magedu.com 86400 IN SOA   ns.magedu.com.  nsadmin.magedu.com.(

                                    201504201  ;(版本序列号)

                                    2H         ;刷新时间

                                    10M        : 10分钟重试时间

                                    1W         1周,过期时间

                                    1D         :否定答案的TTL

                                

 

NS:

        name:当前区域的名字

       value:当前区域的某DNS的名字:ns.magedu.com.   :一个区域可以有多个NS记录;

                  magedu.com.   IN NS   ns1.magedu.com. 

                   magedu.com.   IN NS   ns2.magedu.com.       

         注意:

             1,相邻的两个资源记录的name相同时,后续的可省略

            2,对于NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录;

            3,一个区域可以有多个NS记录:

 MX

        name:当前区域的名字

        value:当前区域的某邮件服务器的(smtp服务器)的主机名

        一个区域内,MX记录可以有多个,但每个记录的value之前应该一个数字(0-99),表示此服务器的优先级;数字越小优先级越高

               magedu.com.   IN MX  10    mx1.magedu.com.

                             IN MX  20    mx2.magedu.com.    

 

        注意:

            1,对于MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录;

 

A:

          name: 某主机的FQDN:   www.magedu.com.

         value:此主机对应的IP地址;

                如:   www.magedu.com.   IN A   1.1.1.1

                       www.magedu.com.   IN A   1.1.1.2

            注意:

                        1,可使用泛域名解析

                             *.magedu.com.  IN  A  1.1.1.4

                               magedu.com.  IN  A  1.1.1.4

                 避免用户写错名称时给错误答案,可以通过泛域名解析进行解析到某特定地址;  

 

 AAAA:

                  name:FQDN

                  value:IPV6

 PTR:    反向解析;

           name:  IP ,有特定格式,Ip反过来写:  1.2.3.4要写为4.3.2.1;还有特定后缀:  in-addr.arpa. 完整写法:4.3.2.1.in-addra.arpa.网络段可以省略

           value:FQDN

                     4.3.2.1.in-addr.arpa.  IN PTR  www.magedu.com

            可简写为:  4   INPTR  www.magedu.com

       注意:网络地址以及后缀可省略;主机地址依然需要反着写

 

 CNAME:

                  name:别名的FQDN

                  value:正式名字的FQDN

     web.magedu.com.   IN   CNAME  www.magedu.com.   :前面是后面的别名

 

BIND应用:

BIND:定义一个服务器;定义解析库,资源记录组成;

  RR类型:资源解析类型:  A,PTR,NS,MX,CNAME,SOA,AAAA

语法格式:  name TTL   IN  rr-type value

子域授权:每个域的名称服务器,都是通过其上级名称服务器在解析库中进行授权;

BIND的安装配置:

        DNS服务,程序包叫bind,程序名叫named

           yum  list all bind*

bind:工作方式:

        服务脚本:/etc/rc.d/init.d/named

      主配置文件:/etc/named.conf,/etc/named.rfc1912.zones, /etc/rndc.key

      解析库文件:默认为空,

bind数据文件:  /var/named/zone_name.zone

    注意:

       1,一台物理服务器可同时为多个区域提供解析:/var/named/named.ca

       2,必须要有根区域文件;

       3,应该有两个甚至更多(如果包括ipv6的)实现本地localhost和本地回环地址(127.0.0.1)的解析库;/var/named/named.localhost ; named.loopback

    rndc:remote  name domain controller:远程名称域控制器,清理缓存,查看解析状态等;,默认与bind安装在同一主机,且只能127.0.0.1来链接named进程;提供辅助性的管理功能;默认953/tcp端口;

 

正向解析服务器配置:

             1,先配置为缓存名称服务器

                缓存名称服务器配置:

vim /etc/named.conf

DNS基本工作原理及正反向解析和主从同步等操作说明_DNS正反向解析和主从同步

 

DNS服务器:

        1,在缓存基础上加入zone的定义:

          在主配置文件中定义区域如下:

          type{master()|slave()|hint()|forward(转发)}

vim /etc/named.rfc1912.zones

              DNS基本工作原理及正反向解析和主从同步等操作说明_DNS基本工作原理_02

        检查语法错误:#named-checkconf

 

           2,定义区域解析库文件;

             cd /var/named

             vimmagedu.com.zone

DNS基本工作原理及正反向解析和主从同步等操作说明_DNS基本工作原理_03

named-checkzone "magedu.com"  /var/named/magedu.com.zone:检查区域以及配置文件是否有语法错误

DNS基本工作原理及正反向解析和主从同步等操作说明_DNS正反向解析和主从同步_04

            ps  aux |grep named

            ll  /etc/named.conf -l

            chmod 640magedu.com.zone

            chwon :namedmagedu.com.zone

            service namedrestart

            rndc status

service named reload :重载配置文件

   或者:rndcreload

vim /etc/resolv.conf:默认解析服务器IP配置,如果不想写@192.168.1.12,就将此文件内容中IP替换为192.168.1.12

             dig -t Awww.magedu.com @192.168.1.12

 

测试命令:digdig用于测试DNS系统,不会查询hosts文件进行解析;

           dig   -t [type]   name  [@server] [query options]

           query options:

           查询选项:

               +[no]trace:跟踪解析过程;dig -tA www.baidu.com +trace

               +[no]recurse:进行递归解析

       测试反向解析:

          dig -x  ip @server 

       模拟区域传送:

          dig -t  axfr zone_name @server

          dig -t  axfr magedu.com  @192.168.1.12      :通过服务器全量传送

          dig -t  axfr  1.168.192.in-addr.arpa  @192.168.1.12     :通过服务器全量传送

          dig -t  ixfr  :增量传送

反向区域配置:

     

      区域名称:网络地址的反写,.in-addr.arpa.

                192.168.1.-->1.168.192.in-addr.arpa.

 

          1,定义区域:

                  vim/etc/named.rfc1912.zones

             DNS基本工作原理及正反向解析和主从同步等操作说明_DNS正反向解析和主从同步_05         

 2,区域解析库文件:

             注意:不需要MX,A,AAAA记录:

             cd /var/named/

     DNS基本工作原理及正反向解析和主从同步等操作说明_DNS基本工作原理_06

named-checkzone “1.168.192.in-addr.arpa"  1.168.192.zone

                named-checkconf

                 serive namedreload

                 tail /var/log/messages

                 dig -x  192.168.1.12 @192.168.1.12

 

DNS服务器主从复制:

      配置从服务器:只需配置区域配置文件即可:

          yuminstall bind -y

       1,配置为缓存服务器:

           vim  /etc/named.conf

           listen-on port 53 {127.0.0.1 ; }; 修改为listen-on port 53 { 172.16.1.11; 127.0.0.1; };

           allow-query { any;}; local改为any

       2,配置为正向的从名称服务器:

           vim/etc/named.rfc1912..zones

              zone"zone_name"  IN {

                type slave;

                masters {172.16.100.11; };

                file"slaves/magedu.com.zone";

              }; 

主从复制:

   1,应该是一台独立的名称服务器;

   2,主服务器的区域解析库文件中必须有一条NS记录是指向从服务器的

   3,从服务器只需定义区域,而无需提供解析库文件;解析库文件应该放置于/var/named/slaves;

   4,主服务器的允许从服务器做区域传送

   5,主从服务器时间应该同步:可通过NTP进行

   6,bind程序的版本应该保持一致,即使不一致,应该从高主低

 

反向从服务器:

            在从服务器172.16.100.12上编辑:

           

            vim /etc/named.rfc1912.zones  

             zone"100.16.127..in-add.arpa"  IN{

                 type slave;

                 masters{172.16.100.11; };

                 file"slaves/172.16.100.zone";

             };

 

             named-checkconf

             rndc reload

            

rndc: remote  name domaincontroller:远程名称域控制器,清理缓存,查看解析状态等;,默认与bind安装在同一主机,且只能127.0.0.1来链接named进程;提供辅助性的管理功能;

  rndc --> 953/tcp

     rndc command

         command:

            reload:通知named重新读取主配置文件和区域解析库文件;

            reload zone:只重读区域解析库文件

            retransfer zone:手动启动区域传送,不过序列号是否增加

            notify zone :重新对区域传送发通知;

            reconfig:重装主配置文件;

            querylog:开启或关闭查询日志:

            trace  :增加调试级别

            trace level:指定调试级别;

        rndc querylog

        rndc status

        rndc querylog

        rndc status

        tail /var/log/messages

          

            rndc tarce 5 :指定级别为5

            rndc tarce 0 :关闭调试;生成环境应该关闭;