centos6.7搭建主从DNS

linux下构建DNS服务器BIND

DNS:域名解析。

域名分类:

顶级域:由两三个字母组成的名称,用于指示国家(地区)或使用名称的单位的类型。如:

组织域:.net, .com, .org, .mil, .edu, .gov, .cc, .mobi

国家域:.jp, .tw, .hk, .iq, .ir, .cn, .uk, .us

 

 

全球有13台根服务器:

A INTERNIC.NET(美国,弗吉尼亚州) 198.41.0.4

B 美国信息科学研究所(美国,加利弗尼亚州) 128.9.0.107

C PSINet公司(美国,弗吉尼亚州) 192.33.4.12

D 马里兰大学(美国马里兰州) 128.8.10.90

E 美国航空航天管理局(美国加利弗尼亚州) 192.203.230.10

F 因特网软件联盟(美国加利弗尼亚州) 192.5.5.241

G 美国国防部网络信息中心(美国弗吉尼亚州) 192.112.36.4

H 美国陆军研究所(美国马里兰州) 128.63.2.53

I Autonomica公司(瑞典,斯德哥尔摩) 192.36.148.17

J VeriSign公司(美国,弗吉尼亚州) 192.58.128.30

K RIPE NCC(英国,伦敦) 193.0.14.129

L IANA(美国,弗吉尼亚州) 198.32.64.12

M WIDE Project(日本,东京) 202.12.27.33

 

DNS服务器类型有:

—  缓存域名服务器

—  也称为 唯高速缓存服务器

—  通过向其他域名服务器查询获得域名->IP地址记录

—  将域名查询结果缓存到本地,提高重复查询时的速度

—  主域名服务器

—  特定DNS区域的官方服务器,具有唯一性

—  从域名服务器

—  也称为 辅助域名服务器

—   

DNS查询方式:

递归查询

—  一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机;

迭代查询

—  一般DNS服务器之间属迭代查询,如:若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS2,以便其再向DNS3发出请求;

 

DNS解析过程

 

 

DNS服务器的主从如何协调?

区域数据文件有版本号(序列号): serial

刷新时间(检查周期)refresh  --从服务器刷新数据到主服务器拿文件的时间间隔

重试时间(重试周期): retry      --从服务器拿数据失败后多长时间后重试

过期时间(失效时长): expire    --如果主服务器挂了,从服务器顶上后过多久失效

否定应答的TTL值;                 --多长时间内不接受客户端的某个地址解析请求

 

协调过程:从服务器在间隔达到refresh指定的时长后发起同步请求至主服务器;主服务器响应serial,从服务器与本地的serial进行比较;如果主服务器serial大于本地,意味主服务器区域数据文件更新了,因此请求同步;

 

DNS服务使用53号端口,

TCP 53端口  服务器与服务器之间的连接

UDP  53 端口  客户端与DNS服务器的连接

 

zone  区域

type  类型

master  主

slave  从

include  包含(链接到另一个文件)

 

实例一:搭建DNS正向和反向解析服务器。

主DNS ip:172.16.1.232

从DNS ip:172.16.1.231

 

1.  系统环境(两台机一样)

 [root@yy slaves]# cat /etc/redhat-release

CentOS release 6.7 (Final)

[root@yy slaves]# uname -r

2.6.32-573.el6.x86_64

[root@yy slaves]# iptables -F

[root@yy slaves]# setenforce 0

 

2.安装bind程序包(两台机一样)

[root@yy slaves]# rpm -qa bind

[root@yy slaves]# yum install -y bind

 

3.配置DNS配置文件(在主DNS上)

[root@yy named]# vim /etc/named.conf

 

options {

        listen-on port 53 { 172.16.1.232; };                                                    --监听本一IP

        listen-on-v6 port 53 { ::1; };                                                                      

                   forwarders      { 202.96.134.133; };                                        --DNS转发指向

        directory       "/var/named";

        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     { 0.0.0.0/0; };                                   --允许哪些客户端请求。

        recursion yes;

 

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

};

 

logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};

 

zone "." IN {

        type hint;

        file "named.ca";

};

 

zone "yy.com" IN {

        type master;                                                  数据库类型

        file "yy.com.zone";                                      

        allow-transfer { 172.16.1.231; };               允许哪个主机同步数据库文件

        allow-update   { none; };                         是否允许更新。

 

};

 

zone "1.16.172.in-addr.arpa" IN {

        type master;

        file "172.16.1.zone";

        allow-transfer { 172.16.1.231; };

        allow-update   { none; };

};

 

include "/etc/named.rfc1912.zones";

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

 

 

[root@yy yy]# vim yy.com.zone

 

$TTL 3H

@       IN SOA  @ rname.invalid. (

                                        0       ; serial

                                        1H      ; refresh

                                        1H      ; retry

                                        1D      ; expire

                                        3D )    ; minimum

        NS              ns.yy.com.

        MX      5       mail.yy.com.

mail    IN      A       172.16.1.100

ns      IN      A       172.16.1.232

www    IN      A       172.16.1.100

file         IN      A       172.16.1.110

ftp       IN      A       172.16.1.120

 

 

 [root@yy yy]# vim 192.168.1.zone

 

$TTL 3H

@       IN SOA  @ rname.invalid. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

        NS              ns.yy.com.

ns      IN      A       172.16.1.232

232     IN      PTR     ns.yy.com.

100     IN      PTR     www.yy.com.

110     IN      PTR     file.yy.com.

120     IN      PTR     ftp.yy.com.

100     IN      PTR     mail.yy.com.

 

 

4.检查配置文件语法错误

[root@yy named]# named-checkzone yy.com yy.com.zone

zone yy.com/IN: loaded serial 0

OK

 

[root@yy named]# named-checkzone yy.com 172.16.1.zone

zone yy.com/IN: loaded serial 0

OK

 

[root@yy named]# named-checkconf /etc/named.conf

 

5.启动服务

[root@yy named]# service named restart

停止 named:                                               [确定]

启动 named:                                               [确定]

 

 

6.配置主从同步

从服务器配置文件

[root@yy named]# vim /etc/named.conf

 

options {

        listen-on port 53 { 127.0.0.1; };

        listen-on-v6 port 53 { ::1; };

                   forwarders      { 202.96.134.133; };

        directory       "/var/named";

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

        recursion yes;

 

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

};

 

logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};

 

zone "." IN {

        type hint;

        file "named.ca";

};

 

zone "yy.com" IN {

        type slave;

        file "slaves/yy.com.zone";

        masters { 172.16.1.232; };

 

 

};

 

zone "1.16.172.in-addr.arpa" IN {

        type slave;                                             数据库类型,为从

        file "slaves/172.16.1.zone";

        masters { 172.16.1.232; };                指定从哪个主服务器下载数据

};

 

 

include "/etc/named.rfc1912.zones";

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

 

 

启动从DNS服务器

[root@yy named]# chown -R named.named /var/named/slaves/

[root@yy named]# service named restart

 

检查是否同步成功了区域数据库文件

[root@yy named]# ls slaves/

172.16.1.zone  yy.com.zone

看到文件同步过来,主从成功。

 

posted @ 2015-09-23 10:02  -不言-  阅读(335)  评论(0)    收藏  举报