dns主从复制及区域传送

DNS主从复制及区域传送

  DNS:Domain Name System  域名系统

  DNS是由解析器和域名服务器组成的。

  域名服务器是指保存有该网络中所有的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。

  DNS使用TCP与UDP端口号都是53,只要使用UDP,服务器之间备份是用tcp连接

  DNS解析查询主要有两者:递归查询(进行一次查询就能得到最终结果)

                         迭代查询(需要进行多次查询,才能得到最终结果)

  互联网上的应用方式一般是:本地递归,互联网部分迭代。所有DNS都不知道其他DNS在哪里,但都知道根在哪里,

  本地主机向本地DNS递归,本地DNS出去迭代查询后向本地返回最终结果。

  DNS常见的记录类型:

   A记录:  由主机名解析IP地址  

PTR记录:由IP地址解析主机名  

NS记录: 用来指定本地的域名服务器(有主,有辅)  

MX记录: 用来指定本地的邮件服务器  

CNAME:  用来指定一个主机的别名  

SOA:    起始授权记录,用来说明本域的主域名服务器

区域传送:从域名服务器每隔一段时间要去主域名服务器上去查询更新,以保证数据的一致性。这个过程叫区域传送。

区域传送过程使用TCP协议 ,53号端口。

区域传送有两种类型:

增量区域传送:ixfr

完全区域传送:axfr


实验环境:

      Master Dns Server:CentOS 6.4(2.6.32-358.el6.x86_64)IP:192.168.28.128 hostname:www.ajj.com

  Slave Dns Server:CentOS 6.4(2.6.32-358.el6.x86_64)IP:192.168.28.129

  Domain name:ajj.com


  需要安装的软件:bind

  在连网的环境下直接下载安装:yum install -y bind

  首先要在两台虚拟机上把防火墙关闭掉,因为iptables会影响到区域传送,主从复制实现不了。

在命令行输入:service iptables stop(我个人觉得可能版本的问题,有些版本是不用关的,也可能是网络问题吧)


开始配置DNS实验:

我们安装好bind包后进入DNS的主配置文件:

options {

       listen-on port 53 { any; };//将127.0.0.1修改为any,对监听任何电脑

       listen-on-v6 port 53 { any; };//同上,

       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     { any; };//允许所以主机查询

       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 "ajj.com" IN {#定义正向区域

       type master;#指定为主dns

       file "ajj.com";#定义正向资源记录文件名

       allow-transfer { 192.168.28.129; };#允许将更新的文件传送到从dns上,ip是从dns地址

};

zone "28.168.192.in-addr.arpa" IN {#定义反向区域

       type master;#指定为主dns

       file "28.168.192.in-addr.arpa";#定义反向资源记录文件名

       allow-transfer { 192.168.28.129; };#允许将更新的文件传送到从dns上,ip是从dns地址

};


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

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


编辑正向解析资源记录:

[root@localhost named]# vim /var/named/ajj.com


$TTL 1D

@       IN SOA  @ rname.invalid. (

                               2013070611      ; serial

#每次更新后服务器都将此号码更改,从服务器若查询到该号码改变就想服务器请求更新。

                                       1D      ; refresh#从服务器的更新时间

                                       1H      ; retry#从服务器若更新失败后的重试时间

                                       1W      ; expire#重试多久后就宣告失败不再更新

                                       3H )    ; minimum#若主服务器找不到对应的请求,允许客户端再次查询的时间

@                       NS      ns1.ajj.com.#域名服务器

                       NS      slave.ajj.com.#域名服务器

ns1             IN      A       192.168.28.128#域名到ip记录

slave.ajj.com.  IN      A       192.168.28.129#域名到ip记录


编辑正向解析资源记录:

[root@localhost named]# vim 28.168.192.in-addr.arpa


$TTL 1D

@       IN SOA  @ rname.invalid. (

                               2013070612      ; serial

                                       1D      ; refresh

                                       1H      ; retry

                                       1W      ; expire

                                       3H )    ; minimum

@       NS      ns1.ajj.com.

@       NS      slave.ajj.com.

128 IN  PTR     www.ajj.com.#由ip到域名

129 IN  PTR     slave.ajj.com.#由ip到域名


修改主从DNS SERVER的/etc/resolv.conf

主dns上

[root@localhost named]# vim /etc/resolv.conf


; generated by /sbin/dhclient-script


nameserver 192.168.28.128

nameserver 192.168.28.129


从dns上

[root@localhost slaves]# vim /etc/resolv.conf


; generated by /sbin/dhclient-script

nameserver 192.168.28.129

nameserver 192.168.28.128


我在配置的时候第一次重启出现

[root@localhost ~]# service named restart

Stopping named:                                            [  OK  ]

Generating /etc/rndc.key:


这里我们需要执行[root@localhost ~]# rndc-confgen -r /dev/urandom -a

wrote key file "/etc/rndc.key"

[root@localhost ~]#

[root@localhost ~]# service named restart

Stopping named:                                            [  OK  ]

Starting named:                                            [  OK  ]

这样就可以重启成功了。这里要生成一个rndc的密钥,是用来做远程连接用的。


到这里主dns基本配置完成,接下来配置从dns

安装bind和一些基本操作和主的一样

从的只要修改从dns的配置文件就可以了

options {

listen-on port 53 { any; };

listen-on-v6 port 53 { any; };

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

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 "ajj.com" IN {#定义正向区域

type slave;#指定为从dns

file "slaves/ajj";#定义正向资源记录文件名

masters { 192.168.28.128; };#定义从dns去ip为192.168.28.128的 主dns上覆制文件

};

zone "28.168.192.in-addr.arpa" IN {#定义反向区域

type slave;#指定为从dns

file "slaves/28.168.192";#定义反向资源记录文件名

masters { 192.168.28.128; };#定义从dns去ip为192.168.28.128的 主dns上覆制文件


};


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

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


从dns配置完成接下来测试下

我们来看下从dns上是否将主dns上的资源记录文件复制过来了

[root@localhost ~]# cd /var/named/slaves/

[root@localhost slaves]# ls

28.168.192  ajj


[root@localhost slaves]# cat ajj

$ORIGIN .

$TTL 86400; 1 day

ajj.comIN SOAajj.com. rname.invalid. (

2013070611 ; serial

86400      ; refresh (1 day)

3600       ; retry (1 hour)

604800     ; expire (1 week)

10800      ; minimum (3 hours)

)

NSns1.ajj.com.

NSslave.ajj.com.

$ORIGIN ajj.com.

ns1A192.168.28.128

slaveA192.168.28.129

[root@localhost slaves]# cat 28.168.192

$ORIGIN .

$TTL 86400; 1 day

28.168.192.in-addr.arpaIN SOA28.168.192.in-addr.arpa. rname.invalid. (

2013070612 ; serial

86400      ; refresh (1 day)

3600       ; retry (1 hour)

604800     ; expire (1 week)

10800      ; minimum (3 hours)

)

NSns1.ajj.com.

NSslave.ajj.com.

$ORIGIN 28.168.192.in-addr.arpa.

128PTRwww.ajj.com.

129PTRslave.ajj.com.

复制成功,表示任务基本完成了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章