Bind是在Linux平台上老牌的DNS服务器软件,推出时间较长,使用范围广泛。下面简单介绍一下Bind的介绍。

一、DNS服务器工作模式分类:

1、主服务器

2、从服务器

3、转发服务器(缓存服务器)

二、DNS查询方式:(引用自百度百科)

1、迭代查询:当服务器使用迭代查询时能够使其他服务器返回一个最佳的查询点提示或主机地址,若此最佳的查询点中包含需要查询的主机地址,则返回主机 地址信息,若此时服务器不能够直接查询到主机地址,则是按照提示的指引依次查询,直到服务器给出的提示中包含所需要查询的主机地址为止。(一般用于DNS服务器之间的查询)

2、递归:递归查询是最常见的查询方式,域名服务器将代替提出请求的客户机(下级DNS服务器)进行域名查询,若域名服务器不能直接回答,则域名服务器会在域各树中的各分支的上下进行递归查询,最终将返回查询结果给客户机。

三、解析方式分类:

1、正向解析,既将FQDN解析为IP

2、反向解析,与上相反

四、Bind配置文件的结构:

    /etc/named.conf :  Bind的主配置文件,用于定义全局设置,DNS的zone等相关配置。

1、options部分:

options {                                                 //options段用于定义全局设置
        listen-on port 53 { 127.0.0.1; };                 
        //定义bind的监听IP地址(IPv4)
        listen-on-v6 port 53 { ::1; };                    
        //定义bind的监听IP地址(IPv6)
        directory       "/var/named";                     
        //zone文件的默认路径
        dump-file       "/var/named/data/cache_dump.db";  
        //cache的备份
        statistics-file "/var/named/data/named_stats.txt"; 
        //静态文件
        memstatistics-file "/var/named/data/named_mem_stats.txt";  
        //内存静态文件
        allow-query     { localhost; };                    
        //允许谁向此DNS进行查询
        recursion yes|no;                                     
        //允许递归查询

  2、安全相关

        dnssec-enable yes;                                 
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */                          
        bindkeys-file "/etc/named.iscdlv.key";

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

3、日志系统

logging {                                                   //定义日志
        channel myfile {
        //定义channel名称
                file "data/named.run";
                //以文件形式存储日志
                severity dynamic;
                //存储日志的级别,一共7个级别从高到低分别是:crit,error,warning,notice,info(前面5个属于syslog);debug[level],dynamic(后两个属于Bind8,9独有的级别).
        };  

         category statistics               { my_file; };  
         //定义bind系统中各子系统的日志    //将日志发给那个channel,可以发给多个channel,一个channel只能接受一个category。
        
};

4、定义zone

zone "." IN {                                              //定义Dns的zone
        type hint;                                         //定义zone的类型  
        file "named.ca";                                   //指定zone文件名
};



 2、 DNS中zone文件的放置/var/named/*.zone(与named.conf中的zone对应的文件)

zone文件的书写格式:

$TTL 1D                              //用宏定义一个TTL默认值为1天,下面数据直接引用此值。
@                            [TTL]    IN   SOA  主DNS服务器FQDN   管理员邮箱  (
引用named.conf中对应zone的名称    
                                        0       ; 序列号
                                        1D      ; 更新间隔
                                        1H      ; 更新失败后重试间隔
                                        1W      ; 过期时长
                                        3H )    ; 否定记录保存时长
                                     
                                        
资源类型:A(IPv4) ,AAAA(IPv6):定义FQDN的IP
          NS :定义DNS服务器的FQDN
          SOA :起始授权(每个zone首先要定义此值)
          MX:定义邮件记录,有优先级概念(0-99),值越小优先级越高。
          CNAME:定义别名
          PTR:反向记录

先写到这里吧,后续想起来会继续补充。。。