美文网首页技术文DevOps
利用BIND搭建私有DNS服务器

利用BIND搭建私有DNS服务器

作者: CHUANHAI | 来源:发表于2015-12-06 20:25 被阅读7246次

    Bind(Berkeley Internet Name Domain)是一款开源的DNS服务器软件,由美国加州大学Berkeley分校开发,目前由Internet Systems Consortium组织来维护。它是目前世界上使用最为广泛的DNS服务器软件,支持各种类Unix平台和Windows平台。

    搭建环境:CentOS 7、Bind-9.9.4

    1、安装Bind软件包及其依赖

    # yum install bind bind-libs bind-utils

    2、Bind配置文件详解

    // named.conf

    options {

        listen-on port 53 { 127.0.0.1; 192.168.1.108; };    //定义DNS监听在哪个IP的特定端口上

        listen-on-v6 port 53 { ::1; };    //针对IPv6的DNS监听定义格式

        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";

        allow-query    { localhost; 192.168.1.100; };    //定义允许哪些主机可以查询本地的DNS服务

        recursion yes;    //定义是否允许DNS服务器做递归查询

        notify yes;    //DNS服务器采用主从模式时,定义是否当主服务器区域文件发生改变,通知从服务器更新

        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";

        pid-file "/run/named/named.pid";

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

    };

    logging {

        channel default_debug {

        file "data/named.run";

        severity dynamic;

        };

    };

    zone "." IN {    //根域的区域文件属性配置

        type hint;    //定义此区域文件的类型[master|slave|hint|forward]

        file "named.ca";    //相对directory "/var/named/"目录的文件,为根域的区域文件

    };

    include "/etc/named.rfc1912.zones";    //为保持主配置文件简洁,将部分配置信息存放于别处,在主配置文件中调用

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

    include "/etc/named/luochuanhai.cn";    //此为博主私有域的配置文件

    3、Bind区域文件详解

    以下是luochuanhai.cn域正向解析的区域文件。

    $TTL 1D    ;被缓存的肯定回答的存活时间

    @      IN      SOA    @      admin.luochuanhai.cn. ( 6    ;此区域文件的版本号,用于主从同步

                                                                              1D    ;DNS从服务器区域文件记录刷新时间

                                                                              1H    ;若DNS从服务器更新失败,下次尝试时间

                                                                              1W    ;若DNS从服务器更新失败,原有数据的过期时间

                                                                              3H )    ;被缓存的否定回答的存活时间

    @      IN      NS      ns1    ;标识区域的DNS服务器及其授权子域

    @      IN      NS      ns2

    ns1    IN      A      192.168.1.108    ;主机名及其对应的IP地址

    ns2    IN      A      192.168.1.100

    www    IN      A      192.168.1.163

    ftp    IN      A      192.168.1.163

    www1    CNAME  www    ;用于标识www1.luochuanhai.cn是www.luochuanhai.cn主机的别名

    4、域正向解析测试

    # service named start

    # dig -t A www.luochuanhai.cn @127.0.0.1    //正向解析私有域地址

    # dig -t A www.sohu.com @127.0.0.1    //正向解析外网地址

    如果想让别的主机使用本地的DNS服务,请务必让本地DNS服务器监听在能和其它主机联通的IP上。其它主机使用dig命令时,用@指向本地提供DNS服务的主机IP地址。如果存在连接超时或者找不到DNS服务器,那可能是DNS服务器所在主机防火墙过滤了请求。在提供DNS服务的主机上键入以下命令便可解决问题。

    # iptalbes -I INPUT 1 -s 远程主机IP -d 本地主机IP -p tcp --dport 53 -j ACCEPT

    # iptalbes -I INPUT 1 -s 远程主机IP -d 本地主机IP -p udp --dport 53 -j ACCEPT

    # iptalbes -I OUTPUT 1 -s 本地主机IP -d 远程主机IP -p tcp --dport 53 -j ACCEPT

    # iptalbes -I OUTPUT 1 -s 本地主机IP -d 远程主机IP -p udp --dport 53 -j ACCEPT

    5、DNS主从复制及区域传送

    以下是博主在主服务器上定义的私有域luochuanhai.cn配置文件。

    zone "luochuanhai.cn" IN {    //luochuanhai.cn域的区域文件属性配置

        type master;    //指定本机为DNS主从结构中的主服务器

        file "luochuanhai.cn.zone";

        allow-update {none; };

        allow-transfer { 192.168.1.100; };    //指定允许区域传送的从服务器IP地址

    };

    以下是博主在从服务器上定义的私有域luochuanhai.cn配置文件(记得要被include到主配置文件)。

    zone "luochuanhai.cn" IN {

        type slave;    //指定本机为DNS主从结构中的从服务器

        file "slaves/luochuanhai.cn.zone";    //指定从主服务器同步来的区域文件的存放位置

        masters { 192.168.1.108; };    //指定主服务器的IP地址

        allow-transfer { none; };    //指定禁止区域传送

    };

    此后在主从服务器都启用named服务,即可进行主从完全区域传送。

    但是,博主在实做过程中遇到了一个问题,从服务器无法进行增量区域传送。在主服务器上修改luochuanhai.cn.zone区域文件,并将版本号加1,再让主服务器重新加载配置文件。主服务器确实有通知从服务器区域文件更新,但是从服务器仍无法自动更新。

    从服务器中,保留初始启动服务时同步过来的区域文件。重启从服务器的named服务,无法同步。

    从服务器中,删除初始启动服务时同步过来的区域文件。重启从服务器的named服务,便可同步更新。

    经博主仔细分析后,发现是自己忘记让从服务器监听在主服务器可以联通的IP上。以至于,尽管主服务器发送更新通知,从服务器无法自主完成增量区域传送( ▼-▼ )。

    6、DNS服务器管理工具rndc

    To be continued.

    7、DNS子域授权

    在父域luochuanhai.cn的DNS服务器区域文件中追加以下两行更新,以授权子域life.luochuanhai.cn。

    life    IN      NS      ns1.life

    ns1.life        IN      A      192.168.1.118

    以下是子域life.luochuanhai.cn的DNS服务器上定义的配置文件(记得要被include到主配置文件。且让子域DNS服务器监听在父域DNS服务器能够与之联通的IP地址上,且允许父域DNS服务器访问子域的DNS服务)。

    zone "life.luochuanhai.cn" IN {

        type master;

        file "life.luochuanhai.cn.zone";

    };

    以下是子域life.luochuanhai.cn的正向解析区域文件。

    $TTL 1D

    @      IN      SOA    @      admin.life.luochuanhai.cn. ( 18

                                                                                     2H

                                                                                    1H

                                                                                    1W

                                                                                    3H )

    @      IN      NS      ns1

    ns1    IN      A      192.168.1.118

    www    IN      A      192.168.1.119

    ftp    IN      A      192.168.1.119

    测试子域life.luochuanhai.cn的正向解析。

    # dig -t A www.life.luochuanhai.cn @192.168.1.117    //通过父域DNS服务器解析子域地址

    # dig -t A www.life.luochuanhai.cn @192.168.1.118    //通过子域DNS服务器解析子域地址

    如果想让子域DNS服务器不通过根域来解析父域的主机地址,则可在子域DNS服务器中启用转发功能。在子域配置文件中加入以下配置:

    zone "luochuanhai.cn" IN {

        type forward;    //指定此域为转发类型

        forward first;    //如果父域不代为解析转发的查询,则自行通过根域解析查询[first|only]

        forwarders { 192.168.1.117; };    //指定接收转发请求的DNS服务器IP地址

    };

    8、DNS视图

    To be continued.

    9、DNS日志系统

    To be continued.


    如果想深入了解Bind配置,可以参考以下文档:

    http://jianlee.ylinux.org/Computer/Server/bind9.html

    http://www.zytrax.com/books/dns/ch7/xfer.html

    相关文章

      网友评论

        本文标题:利用BIND搭建私有DNS服务器

        本文链接:https://www.haomeiwen.com/subject/esoshttx.html