<dl id='wvcq'></dl>
<span id='wvcq'></span>

  • <acronym id='wvcq'><em id='wvcq'></em><td id='wvcq'><div id='wvcq'></div></td></acronym><address id='wvcq'><big id='wvcq'><big id='wvcq'></big><legend id='wvcq'></legend></big></address><ins id='wvcq'></ins>
    <i id='wvcq'></i>

  • <tr id='wvcq'><strong id='wvcq'></strong><small id='wvcq'></small><button id='wvcq'></button><li id='wvcq'><noscript id='wvcq'><big id='wvcq'></big><dt id='wvcq'></dt></noscript></li></tr><ol id='wvcq'><table id='wvcq'><blockquote id='wvcq'><tbody id='wvcq'></tbody></blockquote></table></ol><u id='wvcq'></u><kbd id='wvcq'><kbd id='wvcq'></kbd></kbd>
    <i id='wvcq'><div id='wvcq'><ins id='wvcq'></ins></div></i>

    <code id='wvcq'><strong id='wvcq'></strong></code>

    <fieldset id='wvcq'></fieldset>
          1. Linux主辅DNS数据不同步故障排除

            • 时间:
            • 浏览:2
            • 来源:124软件资讯网
              互联网中  ,我们知道任何一台提供应用服务的主机(例如:HTTP、FTP等)都有它一个便于影象Domain Name  ,这些名称给用户带来了许多便利  。可是  ,有些时间这些服务却对我们这些维护职员显得有些不“老实”  。本文将先容DNS主辅设置历程中常遇到的设置问题以及清除要领  。 我们有须要相识一下主辅DNS区域复制原理:如下图3所示主辅DNS服务器数据同步的历程  ,首先master DNS服务器每次修改完成并重启服务后 ,将传送notify给所有的slave DNS服务器  。slave DNS服务器将查询master服务器的SOA记载  ,master DNS服务器收到请求后将SOA记载发送给Slave DNS服务器  ,Slave DNS服务器收到后同时对比查询效果中的serial值  ,若是serial值不大于本机的话将竣事数据同步历程;可是若是serial值大于本机的话  ,slave DNS将发送zone transfer请求要求(AXFR/IXFR)  。Master响应zone transfer请求并传送效果  ,直到整个slave更新完成  。 Linux主辅DNS数据不同步故障排除 整体的同步历程如上所述  ,可是怎样将这些原理体现在相关的设置文件中  ,这里以建立域名www.qiuri.com记载为例:
              测试平台:RedHat Enterprise Linux 5 Server update 2
              所需软件包列表:

              软件包名称作用
              bind-libs 包罗DNS的库文件
              Bind-9 DNS服务器软件  ,安装此软件前需要安装libs
              caching-nameserver 设置文件模板
              bind-utils DNS查询工具软件
              bind-chroot 使DNS在chroot模式下运行 ,增强宁静性(选择性安装)

              凭据你使用的安装包安装响应的软件  ,这里我使用系统自带的rpm包  ,设置yum当地更新源后 ,使用下令yum install bind*举行安装  。使用yum安装的利益是能够自动处置惩罚安装历程中包的连带性  ,可是有时间也安装了一些不须要的法式到你的系统  。 安装完成后第一件需要注重的事情是“检察你是否安装了bind-chroot这个包”这个法式的主要功效是:将DNS服务器在chroot模式下运行 ,在这种模式下运行的话  ,它会将所有和DNS相关的文件都锁定到/var/named/chroot目录下  ,就是说bind的会见规模仅仅定位于这个目录中 ,无法进一步提升到系统中的其它目录  。这样可以提高系统的宁静性  。这样听起来很美  ,可是设置起来会泛起许多的问题  ,建议不要使用 。若是你使用了的话  ,所有设置修改需要到/var/named/chroot下  ,例如设置文件在/var/named/chroot/etc/named.conf  。 [root@master ~]#rpm –q bind-chroot 由于RedHat AS 5安装后默认的设置文件名称named.caching-nameserver.conf和/etc/named. caching .zones组成 。修改设置文件名称: [root@master ~]#mv /etc/named.caching-nameserver.conf /etc/named.conf [root@master ~]#mv /etc/named. caching .zones /etc/named. zones 修改主DNS服务器上的设置文件  ,修改效果如下: [root@master~ ]# vi /etc/named.conf // // named.caching-nameserver.conf 省略若干注释 options { listen-on port 53 { 10.1.1.1; }; listen-on-v6 port 53 { ::1; }; 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"; query-source port 53; query-source-v6 port 53; allow-query { any; }; }; include "/etc/named.zones"; [root@master ~]# 修改/etc/named.zones文件  ,添加相关字段建立正向区域  ,添加内容如下: [root@master~]# vi /etc/named.zones // named.rfc1912.zones: 省略若干注释和若干默认区域 zone "qiuri.com" IN { type master; file "qiuri.com"; allow-transfer { 10.1.1.2; }; allow-update { none; }; }; [root@master~]# 在/var/named建立相关区域文件qiuri.com内容如下所示: [root@master~ ]# cat /var/named/qiuri.com $TTL 86400 @ IN SOA master.qiuri.com. root.master.qiuri.com. ( 2008111305 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS master.qiuri.com. IN NS slaves.qiuri.com. www IN A 10.1.1.1 ftp IN A3 10.1.1.1[root@master~ ]# 由于是测试我这里就不建设许多的区域了  ,在辅助DNS上的设置险些一样  ,只需要将named.conf设置文件中的listen-on port 53 中的IP地址字段修改为辅助DNS服务器即可  。 [root@ slave~ ]# vi /etc/named.conf // // named.caching-nameserver.conf 省略若干注释 options { listen-on port 53 { 10.1.1.2; }; 省略其它和主DNS服务器相同字段 include "/etc/named.zones"; [root@ slave~ ]# 在/etc/named.zones设置文件中将区域类型修改为slave ,并指定主DNS服务器IP即可: [root@ slave~]# vi /etc/named.zones // named.rfc1912.zones: 省略若干字段  。  。  。  。  。  。 zone "qiuri.com" IN { type slave; file "slaves/qiuri.com"; masters { 10.1.1.1; }; allow-update { none; }; }; [root@ slave~]# 注重:修改每台DNS服务器自己为DNS服务器  ,相关设置文件为/etc/resolv.conf 。 将所有设置完成后我们划分在主辅DNS上执行下令service named start启动服务 。 故障一: DNS上使用ping下令测试  ,发现了第一个故障:启动服务历程中没有任何的错误提醒 ,ping域名的时间却显示没有这个域名  。 故障剖析:通过ping域名的时间  ,我们得知没有这个域名的回应值 ,这讲明这个区域没有生效  ,可是到底是什么缘故原由导致区域没有生效呢 ?这个时间不要茫然 ,去看看日志吧  ! [root@master~]# tail /var/log/messages 省略若干… … Nov 21 20:55:57 localhost named[7113]: zone qiuri.com/IN: loading master file qiuri.com: permission denied Nov 21 20:55:57 localhost named[7113]: zone localdomain/IN: loaded serial 42 Nov 21 20:55:57 localhost named[7113]: zone localhost/IN: loaded serial 42 Nov 21 20:55:57 localhost named[7113]: running [root@master~]# 黎明前的漆黑终于渡过  ,一行行的日志终于看完 ,发现在加载qiuri.com的时间泛起了permission denied的提醒  ,就是说加载文件时被拒绝了  。为什么会拒绝呢  ?我们先检察一下这个文件的属性吧  ? [root@master~]# ll /var/named/qiuri.com -rw-r----- 1 root root 436 11-21 20:54 /var/named/qiuri.com [root@master~]# 发现这个文件的所有者是root  ,属组也是root  ,可是由于DNS服务使用named这个用户启动服务 ,难怪会拒绝了呢 。那修改一下吧  ! [root@master~]#chown named.named /var/named/qiuri.com 修改完成后重启dns服务 ,使设置生效 。 [root@master~]#service named restart 再次检察日志  ,发现已经乐成加载  。 [root@master~]# tail -5 /var/log/messages 省略若干... ... Nov 21 21:11:46 localhost named[7217]: zone qiuri.com/IN: loaded serial 2008111305 Nov 21 21:11:46 localhost named[7217]: zone localdomain/IN: loaded serial 42 Nov 21 21:11:46 localhost named[7217]: zone localhost/IN: loaded serial 42 Nov 21 21:11:46 localhost named[7217]: running [root@master~]# 总结:这个问题泛起的缘故原由是由于我们建立这个文件的时间 ,没有思量文件权限  ,导致泛起这个问题  。若是有的朋侪不是手工编辑的这个文件 ,而是直接复制/var/named/named.local这个文件后再修改的  ,建议复制历程中使用-p参数  。这样就制止了cp后再修改权限的步骤  。 接着如饥似渴的去启动了辅助DNS的服务  ,之后去检察/var/named/slaves中是否存在qiuri.com这个区域文件  。发现乐成复制过来  。 [root@master~]# tail -5 /var/log/messages 省略若干... ... Nov 21 21:11:46 localhost named[7217]: zone qiuri.com/IN: loaded serial 2008111305 Nov 21 21:11:46 localhost named[7217]: zone localdomain/IN: loaded serial 42 Nov 21 21:11:46 localhost named[7217]: zone localhost/IN: loaded serial 42 Nov 21 21:11:46 localhost named[7217]: running [root@master~]# 到这个时间我们的测试还没有竣事  ,继续举行中 ,首先我们再次回到主DNS服务器上编辑qiuri.com区域文件  ,增添主机记载 ,修改serial值  。 [root@master ]# cat /var/named/qiuri.com $TTL 86400 @ IN SOA master.qiuri.com. root.master.qiuri.com. ( 2008111306 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS master.qiuri.com. IN NS slaves.qiuri.com. www IN A 10.1.1.1 ftp IN A 10.1.1.1 down IN A 10.1.1.1 [root@master~]# 修改完成后  ,使用service named reload重新加载设置文件  ,到辅助dns上验证我们添加的记载是否同步过来  。可是再次失望了  ,故障又发生了  。 故障二: 主DNS服务器修改记载或添加区域辅助DNS同步不外去  ,或者需要很长时间  。这样若是在现实生涯中 ,会造成各地会见的效果差别  。我们有须要研究一下主DNS服务器上修改完成后怎样快速的同步给其它辅助的DNS  。 故障剖析: 为了查清故障的缘故原由  ,这个时间我划分在各个DNS服务器上开启两个终端 ,在第一个终端输入下令tail -f /var/log/messages动态监控日志;另一个终端中重启DNS服务 。发现没有发生任何日志  。这个时间  ,思索了一下主辅DNS的事情原理  ,每次主DNS修改完成后重启服务会传送notify值 ,可是这里却没有传送  。再次回到设置文件中检查相关字段发现没有界说  。这个字段可以在named.conf中options字段中声明 。也可以在单个区域文件中声明 。 这里在qiuri.com的zone中添加also-notify { 10.1.1.2; };值 。 [root@master~]# zone "qiuri.com" IN { type master; file "qiuri.com"; also-notify { 10.1.1.2; }; allow-transfer { 10.1.1.2; }; allow-update { none; }; }; [root@master~]# 注重:若是要在options中声明  ,可以使用notify yes;即可  。 再次加载服务  ,发现监控的日志最先有响应的请求和发送的字段泛起  。主DNS服务器的日志如下: [root@master ~]#tail -f /var/log/messages Nov 13 16:17:38 master named[3159]: zone qiuri.com/IN: sending notifies (serial 2008111306) Nov 13 16:18:57 master named[3159]: client 10.1.1.2#45757: transfer of 'qiuri.com/IN': AXFR-style IXFR started Nov 13 16:18:57 master named[3159]: client 10.1.1.2#45757: transfer of 'qiuri.com/IN': AXFR-style IXFR ended [root@master ~]# 辅助DNS服务器上日志显示如下: [root@ slave~ ]#tail -f /var/log/messages Nov 14 08:12:55 ns named[6014]: running Nov 14 08:12:55 ns named[6014]: zone qiuri.com/IN: sending notifies (serial 2008111306) Nov 14 08:15:10 ns named[6014]: client 10.1.1.1#1106: received notify for zone 'qiuri.com' Nov 14 08:15:10 ns named[6014]: zone qiuri.com/IN: Transfer started. [root@ slave~ ]# 这个时间问题解决  ,实在另有设置主辅DNS服务器的时间还会见到类似failed while receiving responses: REFUSED错误提醒  ,一样平常是由于主DNS服务器上未授权或者是相关的目录没有权限造成  。只要耐心检察日志和思索问题  ,信赖问题均可解决  。 相关原理: 在解决问题的历程中有的朋侪说将SOA中的Refresh值修改小一点 ,没错 !可是这个值什么时间生效呢 ?当我们主DNS服务器上修改完成后重启服务  ,会自动传送notify值  ,若是辅助DNS服务器没有收到才参考Refresh ,Refresh 不乐成,则参考Retry ,Retry 一直不乐成, 则参考 Expire  ,若是Expire也不乐成  ,则选择放弃zone transfer的历程 。