zoukankan      html  css  js  c++  java
  • DNS服务器的搭建

    关于DNS这里不详细阐述,本博客作者使用yum配置163的源进行安装bind98版本,关于一些配置文件没有参考安装的默认配置文件,而是自己编写的,仅供参考:

    (注意:以下的配置文件一定要注意格式,这里的配置文件格式上不一定是对的,但内容是可以参考的,一定要注意配置文件中的中文空格,这会让你找半天的)

    系统:Centos6.7

    DNS软件包:bind98

    首先实现单台主DNS服务器,这里设置本机名称叫做   ns1.hjc.com  ,关于DNS这里都是先配置成缓存DNS服务器,在接着配置成主或者被DNS服务器

    关于配置文件如下:

    vim /etc/named.conf   主配置文件添加如下配置信息 :

    options {
            directory "/var/named";
    };
    
    zone "." IN {
            type hint;
            file "named.ca";
    };
    
    zone "localhost" IN {
            type master;
            file "named.localhost";
    };
    
    zone "0.0.127.in-addr.arpa" IN {
            type master;
            file "named.loopback";
    };
    
    zone "hjc.com" IN {
            type master;
            file "hjc.com.zone";
    };
    
    zone "1.168.192.in-addr.arpa" IN {
            type master;
            file "192.168.1.zone";
    };
    

     这里的配置是作者自己编写的,所以并没有添加其他的配置信息

    然后完善如上文件中引用的其他的区域文件信息: (备注:通常/var/named/named.ca 这个文件会自动生成,

    无需做修改,如果没有可以使用  dig -t NS . @114.114.114.114  命令产生的结果保存到该文件中,但要求该机器能够联网,该命令只是查询全球13个DNS根节点服务器)

    vim /var/named/named.localhost

    $TTL 1D
    @       IN SOA  @ rname.invalid. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            NS      @
            A       127.0.0.1
            AAAA    ::1
    

    vim /var/named/named.loopback

    $TTL 1D
    @       IN SOA  @ rname.invalid. (
                                            0       ; serial
                                            1D      ; refresh
                                            1H      ; retry
                                            1W      ; expire
                                            3H )    ; minimum
            NS      @
            A       127.0.0.1
            AAAA    ::1
            PTR     localhost.
    

    vim /var/named/hjc.com.zone    这里的ip都是一些博主自己测试用的IP和主机名

    $TTL 600
    hjc.com.        IN      SOA     ns1      admin.hjc.com. (
                                    20130401
                                    1H
                                    5M
                                    2D
                                    6H )
    hjc.com.        IN      NS      ns1.hjc.com.
    hjc.com.        IN      MX 10   mail.hjc.com.
    ns1             IN      A       192.168.1.77
    mail            IN      A       192.168.1.76
    www             IN      A       192.168.1.77
    ftp             IN      CNAME   www
    

    vim /var/named/192.168.1.zone

    $TTL 600
    @               IN      SOA     ns1       admin.hjc.com. (
                                    20130401
                                    1H
                                    5M
                                    2D
                                    6H )
                    IN      NS      ns1.hjc.com.
    77              IN      PTR     ns1.hjc.com.
    77              IN      PTR     www.hjc.com.
    76              IN      PTR     mail.hjc.com.
    

    可以对区域文件进行验证: 例如 :  named-checkzone "1.168.192.in-addr.arpa" /var/named/192.168.1.zone   

    这样最基础的主DNS服务器就配置完成了,重启DNS服务器并进行验证:(这里要将/etc/resolve.conf中的DNS IP改成本机IP:192.168.1.77)

    dig -x 192.168.1.76

    dig -t A www.hjc.com

    dig -t SOA hjc.com

    dig -t NS hjc.com

    一定要看到正确的返回结果才可以,至于什么样的结果是正确的可以自行上网查看,这里就不续说了,至此一个“最最最基本”的主DNS服务器就配置完成了。

    2.主从复制及区域传送DNS配置:

    主DNSIP:192.168.1.77

    从DNSIP:192.168.1.61

    在如上的基础上进行改进,其中主DNS的/var/named/named.localhost和named.loopback这两个文件不变动,从的DNS只需要更改/etc/named.conf

    vim /etc/named.conf           其中加入了其他的配置如允许本地服务器进行递归,更改区域文件时候进行通知,仅允许从服务器进行区域传送

    options {
            directory "/var/named";
            allow-recursion { 192.168.1.0/24; };
            notify yes;
    };
    
    zone "." IN {
            type hint;
            file "named.ca";
    };
    
    zone "localhost" IN {
            type master;
            file "named.localhost";
            allow-transfer { none; };
    };
    
    zone "0.0.127.in-addr.arpa" IN {
            type master;
            file "named.loopback";
            allow-transfer { none; };
    };
    
    zone "hjc.com" IN {
            type master;
            file "hjc.com.zone";
            allow-transfer { 192.168.1.61; };
    };
    
    zone "1.168.192.in-addr.arpa" IN {
            type master;
            file "192.168.1.zone";
            allow-transfer { 192.168.1.61; };
    };
    

    编辑区域文件:

    vim /var/named/hjc.com.zone    在之前的基础上添加ns2,否则不会传送增量区域信息

    $TTL 600
    @               IN      SOA     ns1             admin.hjc.com. (
                                    20130404
                                    1H
                                    5M
                                    2D
                                    6H )
    hjc.com.        IN      NS      ns1.hjc.com.
    hjc.com.        IN      NS      ns2.hjc.com.
    hjc.com.        IN      MX 10   mail.hjc.com.
    ns1             IN      A       192.168.1.77
    ns2             IN      A       192.168.1.61
    mail            IN      A       192.168.1.76
    www             IN      A       192.168.1.77
    ftp             IN      CNAME   www
    pop             IN      A       192.168.1.75
    

    vim /var/named/192.168.1.zone

    $TTL 600
    @               IN      SOA     ns1             admin.hjc.com. (
                                    20130401
                                    1H
                                    5M
                                    2D
                                    6H )
                    IN      NS      ns1.hjc.com.
                    IN      NS      ns2.hjc.com.
    77              IN      PTR     ns1.hjc.com.
    61              IN      PTR     ns2.hjc.com.
    77              IN      PTR     www.hjc.com.
    76              IN      PTR     mail.hjc.com.
    

    接下来对从DNS进行配置,从DNS服务器的主机名   ns2.hjc.com

    vim /etc/named.conf 

    options {
            directory "/var/named";
            allow-recursion { 192.168.1.0/24; };
    };
    
    zone "." IN {
            type hint;
            file "named.ca";
    };
    
    zone "localhost" IN {
            type master;
            file "named.localhost";
            allow-transfer { none; };
    };
    
    zone "0.0.127.in-addr.arpa" IN {
            type master;
            file "named.loopback";
            allow-transfer { none; };
    };
    
    zone "hjc.com" IN {
            type slave;
            file "slaves/hjc.com.zone";
            masters { 192.168.1.77; };
            allow-transfer { none; };
    };
    
    zone "1.168.192.in-addr.arpa" IN {
            type slave;
            file "slaves/192.168.1.zone";
            masters { 192.168.1.77; };
            allow-transfer { none; };
    };
    

    其他信息无需改动,但是要确保/var/named/named.loopback和named.localhost这两个文件存在,这是确保先成为缓存DNS服务器

    重新启动 主和被DNS服务器

    这时候如果成功的话会在从DNS服务器上的 /var/named/slaves  这个目录下生成区域文件,在该例下会生成 (192.168.1.zone hjc.com.zone)

    也可以查看生成的日志进行确认,主配置文件中没有指定log生成在哪个目录下的话,会将日志打在/var/log/messages中

    至此主从区域传送的DNS就配置完成了。

    3.实现子域授权功能:

    在主从的基础上进行改变:

    vim /etc/named/hjc.com.zone  添加如下的两个子域  fin.hjc.com    和   market.hjc.com

    $TTL 600
    @               IN      SOA     ns1             admin.hjc.com. (
                                    20130405
                                    1H
                                    5M
                                    2D
                                    6H )
    hjc.com.        IN      NS      ns1.hjc.com.
    hjc.com.        IN      NS      ns2.hjc.com.
    hjc.com.        IN      MX 10   mail.hjc.com.
    ns1             IN      A       192.168.1.77
    ns2             IN      A       192.168.1.61
    mail            IN      A       192.168.1.76
    www             IN      A       192.168.1.77
    ftp             IN      CNAME   www
    pop             IN      A       192.168.1.75
    imap            IN      A       192.168.1.74
    
    fin             IN      NS      ns1.fin
    ns1.fin         IN      A       192.168.1.8
    
    market          IN      NS      ns1.market
    ns1.market      IN      A       192.168.1.18
    

      之后重启服务

    接下来在新的一台机器上(192.168.1.8)安装DNS服务,并且先改成主DNS服务器,也需要增加zone文件,这里不多叙说,主要是展示子域的转发,怎么配置DNS服务器:

    在子域192.168.1.8上进行配置:

    vim /etc/named.conf

    options {
            directory "/var/named";
    };
    
    zone "." IN {
            type hint;
            file "named.ca";
    };
    
    zone "localhost" IN {
            type master;
            file "named.localhost";
            allow-transfer { none; };
    };
    
    zone "0.0.127.in-addr.arpa" IN {
            type master;
            file "named.loopback";
            allow-transfer { none; };
    };
    
    zone "fin.hjc.com" IN {
            type master;
            file "fin.hjc.com.zone";
    };
    
    zone "hjc.com" IN {
            type forward;
            forwards { 192.168.1.77; };
    };
    

      该服务器上并没有配置反向DNS,之后重启服务,并加以认证。

    可在最初的主DNS192.168.1.77上认证:

    dig -t A ns1.fin.hjc.com

    4.DNS视图实现基本的智能DNS

    将之前的设置全部清除,只留一台机器即可假设留192.168.1.77,并且该服务器上有双网卡,另一个IP地址为:192.168.140.127

    这里定义了两个视图,假设两个不同的网卡链接两个不同的网络,比如电信和联通,不同的源地址请求返回不同的DNS,并且在这里我们使用了ACL,

    在本例中为了快捷没有定义反向的DNS解析,只有正向。

    vim /etc/named.conf

    acl telecom {
    	192.168.1.0/24;
    	127.0.0.1;
    };
    acl unicom {
    	192.168.140.0/24;
    };
    options {
    	directory "/var/named";
    	allow-recursion { telecom; };
    	notify yes;
    };
    
    view telecom {
    	match-clients { telecom; };
    	zone "hjc.com" IN {
    		type master;
    		file "telecom.hjc.com.zone";
    	};
    };
    
    view unicom {
    	match-clients { any; };
    	zone "hjc.com" IN {
    		type master;
    		file "unicom.hjc.com.zone";	
    	};
    };
    

     设置两个不同的区域文件:

    vim /var/named/telecom.hjc.com.zone

    $TTL 43200
    @       IN      SOA     ns1     admin.hjc.com (
                            20170401501
                            1H
                            10M
                            7D
                            1D )
                    IN      NS      ns1
                    IN      MX  10  mail
    ns1             IN      A       192.168.1.77
    mail            IN      A       192.168.1.76
    www             IN      A       192.168.1.61
    

    vim /var/named/unicom.hjc.com.zone

    $TTL 43200
    @       IN      SOA     ns1     admin.hjc.com (
                            20170401501
                            1H
                            10M
                            7D
                            1D )
                    IN      NS      ns1
                    IN      MX  10  mail
    ns1             IN      A       192.168.1.77
    mail            IN      A       192.168.140.128
    www             IN      A       192.168.140.22
    

    这样最最基本的只能DNS就完成了

    5.DNS的一些组件

    关于DNS的组件这块博主没有去研究

    dnstop 是监测DNS的一个工具;

    queryperf 是进行DNS压力测试的一款工具

    这些工具在bind的源码包里面有一个contribe 的文件夹下包含,要自行手动编译安装,关于用法这里还是自行上网搜索吧。

  • 相关阅读:
    分块的一些题(入门)
    HH的项链
    2019 CCPC-Wannafly Winter Camp Div2 Day1
    2019 CCPC-Wannafly Winter Camp Div2 Day7
    HDU-5672 String(尺取)
    POJ-3104 Drying(二分
    Codeforces
    Java把内存划分为4个部分 1. 代码区 1、栈区 3、堆区 4、静态区域
    二:java语法基础:
    一:java概述:
  • 原文地址:https://www.cnblogs.com/hjc4025/p/6708314.html
Copyright © 2011-2022 走看看