DNS服务器的搭建

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

(注意:如下的配置文件必定要注意格式,这里的配置文件格式上不必定是对的,但内容是能够参考的,必定要注意配置文件中的中文空格,这会让你找半天的)缓存

系统:Centos6.7bash

DNS软件包:bind98服务器

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

关于配置文件以下:工具

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

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 这个文件会自动生成,spa

无需作修改,若是没有可使用  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 的文件夹下包含,要自行手动编译安装,关于用法这里仍是自行上网搜索吧。

相关文章
相关标签/搜索