Linux下DNS主从同步搭建

LinuxDNS主从同步搭建

  1. DNS主从同步简介------------------------------------------------------
  2. 架构环境和系统配置---------------------------------------------------
  3. 服务软件安装-------------------------------------------------------------
  4. 服务配置参数解释-------------------------------------------------------
  5. 故障分析--------------------------------------------------------------------
  • DNS主从同步简介

  我们的环境中只有一台DNS服务器,当他宕机了,那么客户端解析就会遇到问题,这个怎么办了,大家会说在大家一台一样配置的DNS服务器不就完了,对确实如此,这样确实就解决DNS服务器宕机,客户端无法解析的问题I,但是有个问题,不知道想过没有,这两台服务器的dns解析数据怎么更新,两台中的一台宕机,不会影响客户端un的解析了,这就用到了主从同步,当然还有别的工具(heartbeat、keeplived),

   主从同步原理就是,从服务器部写入数据,只同步主服务器的数据,

并且当主服务器宕机之后能替代主服务器替客户端做解析任务,所有的数据更新都是在主服务器上更新,更新完成后,通过主服务器告知从服务器我数据更新了, 你也赶紧的更新一下,或者通过从服务器每隔一段时间向主服务器反馈、检测是否主服务器数据更新,如果有更新从服务器就下载下来,下面的图中描述了主从同步过程:

Linux下DNS主从同步搭建

top

#架构环境如上面的图,试验中没有搭建web服务器,所有的web服务器都是使用主DNS服务器ip,这个不影响试验效果

以下配置主服务器和从服务器配置操作一样

#配置yum

http://mirrors.163.com/.help/CentOS6-Base-163.repo

[root@localhost ~]#mv CentOS6-Base-163.repo  /etc/yum.repos.d/

[root@localhost ~]#mv   /etc/yum.repos.d/CentOS-Base.repo  .

[root@localhost ~]# yum clean all

[root@localhost ~]#  yum makecache

#安装ntpdate同步时间(关键,导致解析和从服务器同步出现异常)

[root@localhost ~]#  yum install ntpdate

[root@localhost ~]#  ntpdate  time.windows.com

#关闭防火墙和SELINUX(实际生产根据请款那个)

[root@localhost ~]#  /etc/init.d/iptables  stop && setenforce  0

top

#安装DNS服务器软件

安装bind参考上节

《Linux搭建DNS服务Linux客户端和Windows xp端解析验证器》

top

#修改主服务器配置文件

[root@localhost ~]#  vi /etc/named.conf

options {

//此处省略,配置都是跟上节配置一样//      

allow-transfer  { 192.168.11.137;       }; #改为从服务器ip不然无进行DNS解析记录同步

//此处省略,配置都是跟上节配置一样//

#从服务器配置

[root@localhost ~]#  vi /etc/named.conf

options {

//此处省略,配置都是跟上节配置一样//

#正向解析文件区域配置

zone "fly.org" IN {     #这个是zone的名称,也是我们要发布的域名

        type slave;    #修改服务类型为salve

        file "slaves/fly.org.zone"; #建议写成当前域名的名称

        masters { 192.168.11.138; }; #增加主服务器ip

};

#反向解析文件区域

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

        type slave;    # 修改服务类型为salve

        file "slaves/138.11.168.192-fly.org.zone"; #建议写成这样的

        masters { 192.168.11.138; }; #增加主服务器ip

};

//此处省略,配置都是跟上节配置一样//

保存更改,重启DNS服务,记住每次修改DNS服务配置都要重启DNS服务,包括当主服务器更新DNS解析记录也要重启服务(只需要重启主服务器DNS服务)

#查看从服务器/var/named/slaves/目录下是否同步区域解析文件

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

138.11.168.192-fly.org.zone  fly.org.zone

top

  • 添加域名解析记录验证主从服务器是否进行同步

#添加正向解析记录guo.fly.org IN A 192.168.11.135

[root@localhost named]# vi fly.org.zone

$TTL 60  #这里写成60为了更快生效

@       IN SOA  @ fly.org. (

 1     ; serial #每次更新区域文件必须增加id数一般是时间加修改次数

                        60      ; refresh #刷新时间这里为了快

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

@       IN      NS      fly.org.

@       IN      NS      slave.fly.org.

fly.org.        IN      A       192.168.11.138

slave.fly.org.  IN      A       192.168.11.137

@       IN      MX 10   mail.fly.org.

mail.fly.org.   IN      A       192.168.11.122

limin.fly.org. IN CNAME fly.org.

www     IN      A       192.168.11.132

ftp     IN      A       192.168.11.133

bbs     IN      A       192.168.11.134

guo     IN      A       192.168.11.135

#添加反向解析记录

[root@localhost named]# vi 138.11.168.192-fly.org.zone

$TTL 60

@       IN SOA  @ fly.org. (

1  ; serial#每次更新区域文件必须增加id数一般是时间加修改次数

                        60      ; refresh刷新时间这里为了快

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

@       IN      NS      fly.org.

@       IN      NS      slave.fly.org.

138     IN      PTR     fly.org.

137     IN      PTR     slave.fly.org.

@       IN      MX 10   mail.fly.org.

122     IN      PTR     mail.fly.org.

132     IN      PTR     www.fly.org.

133     IN      PTR     ftp.fly.org.

134     IN      PTR     bbs.fly.org.

135     IN      PTR     guo.fly.org.

#然后重启主服务器DNS服务

[root@localhost named]# /etc/init.d/named  restart

Stopping named:                              [  OK  ]

Starting named:                               [  OK  ]

#查看从服务器正向解析是否获得更新

[root@localhost slaves]# cat fly.org.zone

$ORIGIN .

$TTL 60 ; 1 minute

fly.org                 IN SOA  fly.org. fly.org. (

                                1          ; serial

                                60         ; refresh (1 minute)

                                3600       ; retry (1 hour)

                                604800     ; expire (1 week)

                                10800      ; minimum (3 hours)

                                )

                        NS      fly.org.

                        NS      slave.fly.org.

                        A       192.168.11.138

                        MX      10 mail.fly.org.

$ORIGIN fly.org.

bbs                     A       192.168.11.134

ftp                     A       192.168.11.133

guo                     A       192.168.11.135

limin                   CNAME   fly.org.

mail                    A       192.168.11.122

slave                   A       192.168.11.137

www                     A       192.168.11.13

#查看从服务器反向解析是否成功

[root@localhost slaves]# cat 138.11.168.192-fly.org.zone

$ORIGIN .

$TTL 60 ; 1 minute

11.168.192.in-addr.arpa IN SOA  11.168.192.in-addr.arpa. fly.org. (

                                1          ; serial

                                60         ; refresh (1 minute)

                                3600       ; retry (1 hour)

                                604800     ; expire (1 week)

                                10800      ; minimum (3 hours)

                                )

                        NS      fly.org.

                        NS      slave.fly.org.

                        MX      10 mail.fly.org.

$ORIGIN 11.168.192.in-addr.arpa.

122                     PTR     mail.fly.org.

132                     PTR     www.fly.org.

133                     PTR     ftp.fly.org.

134                     PTR     bbs.fly.org.

135                     PTR     guo.fly.org.

137                     PTR     slave.fly.org.

138                     PTR     fly.org.

中间同步可能遇到的问题,当主服务器更新DNS数据重启服务,按照设定的时间最慢一分钟就会更新,咱们是内网时间环境也就2、3秒中的时间,在实验中一般超过5秒没有更新就重新一下从服务器的DNS服务,当然这个是试验环境,主要是为了理解主从同步原理,可以忽略这些问题,但是在生产中,不行,生产环境中他是rdcbind服务只需重新加载区域文件更新就行,这个以后在做

top

  • 客户端验证主从同步

#linux端验证,这里我们使用主DNS服务器验证

添加DNS记录(主从DNS记录)

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

; generated by /sbin/dhclient-script

search localdomain

nameserver 192.168.11.138   #主DNS服务器地址

nameserver 192.168.11.137   #从DNS服务器地址

nameserver 192.168.11.2

#当主从同时在线时我们使用nslookup 解析 guo.fly.org

[root@localhost slaves]# nslookup  guo.fly.org

Server:         192.168.11.138       #此时DNS为主服务器

Address:        192.168.11.138#53   #地址为主服务器地址端口53

Name:   guo.fly.org     #解析的域名

Address: 192.168.11.135  #域名服务器ip

[root@localhost slaves]#

Windows xp客户端解析

添加主备DNS

Linux下DNS主从同步搭建

Linux下DNS主从同步搭建

ok,Windows xp解析正常,DNS服务器的域名都可以解析到,至于linux为什么没有,这个可能跟他是DNS服务器有关吧,这里等会在测试。

#然后我们宕掉主服务器的DNS服务,看看linux和Windows xp客户端解析情况

[root@localhost named]# /etc/init.d/named  stop

Stopping named:                                 [  OK  ]

[root@localhost named]#

#linux解析

[root@localhost slaves]# nslookup  guo.fly.org

Server:         192.168.11.137     #从服务器ip

Address:        192.168.11.137#53  #从服务器地址ip

Name:   guo.fly.org       #解析域名

Address: 192.168.11.135    #域名服务器ip地址

[root@localhost slaves]#

Windows xp端

Linux下DNS主从同步搭建

ok,成功解析到从服务器上,上面的报错不用管,那个是因为咱主DNS填写的主DNS服务器,现在主服务器宕机了,这个正常,DNS在解析时,第一个失败就到备DNS这个不会影响客户端解析

#备注一下:Windows的客户端主备切换时间是15分钟,这个严重影响咱们的试验,不能很快的解析备DNS,所以提供一个一个修改注册表的方法,(这个可以用在生产环境中哦)

打开注册表找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters

在有边新建一个REG_DWORD(字符串),值设定为0,确定后,即可生效。

#备宕机就不做演示了,这个跟上面的一样

就上面linux解析不到DNS服务器的域名,咱们在开一台linux看看什么情况

Linux下DNS主从同步搭建

唉,问题没有解决,是不是因为DNS服务器本地域名的关系了,那咱就在试试

修改下主备DNS服务器服务器名

Linux下DNS主从同步搭建

Linux下DNS主从同步搭建

修改完毕需要重启才生效哦, 其实临时的也行, 为了保证一次到位咋就给他reboot

ok,现在了,启动主服务器的DNS服务看看如何

Linux下DNS主从同步搭建

启动完毕后,要注意关闭iptablesSELINUX哦,咋这里面没有在iptables中放行DNS的端口,所以要关闭哦

Linux下DNS主从同步搭建

解析了下百度和QQ也是这个样子

Linux下DNS主从同步搭建

他大爷的,还么有成功,到底杂回事了, 今天看来是没事搞了,泪留给明天搞吧,唉~~~~~

top

上一篇:python django连接错误


下一篇:Numpy的高级应用