一.DNS基础

1.常见的dns解析方式:

    正向解析:由主机名解析出IP地址

    反向解析:由IP地址解析出主机名

2.名称域:层级分布式数据库 (金字塔型)

    第一层:    根域 " . "表示

    第二层     顶级域(宏观上分为俩种)

                1.用于正向解析的组织域和地理域

                2.用于反向解析的反向域:in-addr.arpa

    第三层     二级域

            三级域

            四级域

            .....

    最后会解析到一个:完全合格域名(FQDN) ,也是主机名的完全名称。

注意:1.因为正向解析和反向解析用的是不同的顶级域,因此使用的不是一个数据库;

   2.主机名或域名的书写要从低级域到高级域写,如

    顶级域 com

    二级域 baidu

    三级域 www

    则其域名为 www.baidu.com. 因为根域是唯一的所以根域的 " ."一般可以省略

3.名字查询的类型

递归查询:要求有明确结果的查询;必须返回一个肯定的或否定的答案;

迭代查询:按照一定的顺序和步骤依次向不同服务器发出查询请求,尽量要求返回一个答案;

    查询结果的分类:

        权威答案:自己负责的区域,自己服务器数据库中有的

        非权威答案:自己没有数据库没有,但缓存服务器由,或者从其他服务器迭代得来的

    一次完整的名称解析:

1.服务器本地数据库中有结果,直接返回权威答案/etc/hosts文件;

   

2.服务器不维护该域,但已经有缓存的结果,直接返回非权威答案;(dns服务器可以在网卡的配置文件添加,也可以在 /etc/resolv.conf文件中填写 格式为nameserver *.*.*.*)

3.服务器不维护该域,缓存中也没有结果,(递归后返回否定答案)于是开始迭代查询:

1) 询问根域的NS服务器;返回顶级域的NS服务器

2) 询问顶级域的NS服务器 返回二级域的NS地址;

3) 直到找到对应主机所在域的NS服务器,获得解析结果;

4) 缓存此次查询结果并用缓存中的数据响应客户端;

4.名字服务器:每个域下负责数据库管理的服务器

    包括:主名称服务器  从名称服务器  缓存名称服务器

各服务器区别:

    主名称服务器:是所维护的区域数据库文件的主体,对这些区域的文件数据具有,读写权限

    从名称服务器:也称为辅助服务器,从主服务器那儿复制数据到本地,没有写权限,只有读权限

    缓存名称服务器:不负责区域的数据库管理,缓存最近解析过的数据

   通常为了数据库安全考虑需要多个从服务器:同时也需要保证主从服务器数据的一致性

    如何保证主从数据库的一致性?

            1.序列号:数据库的版本号;每次数据库更新会变更版本号

2.刷新时间间隔:从服务器到主服务器检查序列号的变更情况的时间间隔;(若检测到数据库序列号变更,会请求主服务器的数据复制到从服务器)

3.重试时间间隔:从服务器到主服务器的序列号检查请求失败以后,再次尝试发送请求的时间间隔;通常来讲,重试时间间隔要远远小于刷新时间间隔;

4.过期时间:名称服务器始终无法联系主名称服务器,从服务器会代替主服务器工作,从名称服务器最大的连续工作时长;

5.否定答案的缓存时长:当服务器递归查询返回否定答案后,答案会存放在缓存中,需要用此项让其销毁

    要保证上述功能实现:需要保证主从服务器的时间保持一致

      

服务器的时间同步:

1.互联网中的时间服务器; 在/etc/ntp.conf 文件中添加时间服务器

2.局域网中自建时间服务器;用ntpdate同步区域内时间

6.主从服务器数据传输的类型

全量传送:

AXFR,将整个数据库文件传送至从服务器;

增量传送:

IXFR,仅传送自上次数据库传送以后发生变化的内容;

7.名称服务器数据库中用于我们解析的内容,称为资源记录 称作“RR”

       RR的格式:

        

资源记录的格式:

DN|FQDN [TTL]IN RR_TYPEVALUE

        其中FQDN 和TTL 可以用全局定义的宏继承,一般可以省略不写

        如:FQDN :继承$ORIGIN 

           TTL:继承$TTL

        资源记录的类型及格式:

    ① SOA:Start Of Authority,起始授权记录;此记录在数据库中只能有一条,且必须放在第一条

        内容:

                域名;

数据缓存的时间;

NS服务器的主机名;

管理员的邮箱地址;

序列号,刷新时间间隔,重试时间间隔,过期时间及否定答案的缓存时间;

       格式示例

         我们先定义宏:

            $ORIGIN baidu.com.  (定义时根域的点一定写) 

            $TTL 86400

        baidu.com     86400    IN    SOA    ns1.baidu.com. root.baidu.com. 111 1H 5M 1W 1D

        (FQDN)    (ttl)          (RR)      (名称服务器)  (管理员邮箱地址) (主从时间配置)

     其中  @              IN     SOA    ns1.baidu.com. root.baidu.com. 111 1H 5M 1W 1D   主机名可以用@继承,TTL可以省略

       ②NS记录:标识当前域中被授权的名称服务器

        格式

        baidu.com    IN    NS    ns1,baidu.com.

       ③MX记录:标识域中的邮件服务器的主机名称,标识从域名到完全合格域名的映射关系;

            MX资源记录包含了一个优先级,0-65535,数字越小优先级越高;

        格式

        baidu.com     IN    MX    10    mail.baidu.com.

       ④A记录:标识从完全合格域名到IPv4地址的映射关系;

        ns1.baidu.com.    IN    A    172.16.0.145

        www.baidu.com.    IN    A    172.16.100.100

        ⑤CNAME:标识从完全合格域名到完全合格域名的映射关系(别名记录)

        格式

        ftp.baidu.com.     IN    CNAME    www.baidu.com.

        ⑥AAAA:标识从完全合格域名到IPv6地址的映射关系;

二:dns的配置,及Bind软件的使用

    1.bind软件的服务主程序是:named

        named程序监听的端口号:

53/TCP:完成区域传送;

53/UDP:完成主机名的解析查询;

953/TCP:rndc程序的监听端口;

    2.bind软件的主要组成

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

        辅助配置文件:在主配置文件中使用include命令包含就行

        主程序:/usr/sbin/named

        远程管理程序:/usr/sbin/rndc

        配置文件检索工具:/usr/sbin/named-checkconf

        区域文件检测工具:/usr/sbin/named-checkzone

        日志文件:/var/log/named.log

        区域文件的存放目录:/var/named

        存放辅助区域文件的目录/var/named/slaves