DNS服务器故障纠错

说明:这是一篇对DNS排错的文章,因为在网上(包括RedHat知识库)几乎没有对文中提到的错误进行直接描述和提出最好最快的解决方案的报告,经过长达近一个小时的排错和资料查阅才有了这篇文章的脱稿。

昨天我刚刚在非生产环境中的Red Hat Enterprise Linux Server上配置了一台DNS服务器,以做测试使用。但是很快遇到了一个奇怪的错误。

我在执行“service named status”后,其中第一行显示如下内容:
 

 
 
  1. [root@localhost ~]# service named status 
  2. rndc: connect failed: 127.0.0.1#953: connection refused 
  3. named (pid  6207) is running... 
  4. [root@localhost ~]#  

一般大家都知道,rndc 主要是用来控制named进程及其配置文件的,可以用来连接DNS服务器并对配置进行重新载入,其端口号就是953。那么导致这个错误的原因可能是什么呢?

我的解决思路:

首先,发现问题,仔细阅读查看命令的回显信息。例如我详细的查看service的状态信息。

 
 
  1. [root@localhost gdd]# service --status-all 
  2. abrtd (pid  2371) is running... 
  3. abrt-dump-oops (pid 2379) is running... 
  4. acpid (pid  2111) is running... 
  5. atd (pid  5396) is running... 
  6. auditd (pid  1833) is running... 
  7. automount (pid  2195) is running... 
  8. avahi-daemon (pid  2016) is running... 
  9. Usage: /etc/init.d/bluetooth {start|stop} 
  10. certmonger is stopped 
  11. Stopped 
  12. cgred is stopped 
  13. Frequency scaling enabled using ondemand governor 
  14. crond (pid  2423) is running... 
  15. cupsd (pid  2086) is running... 
  16. dnsmasq is stopped 
  17. dovecot is stopped 
  18. Usage: /etc/init.d/firstboot {start|stop} 
  19. hald (pid  2120) is running... 
  20. I don't know of any running hsqldb server. 
  21. httpd (pid  6595) is running... 
  22. Table: filter 
  23. Chain INPUT (policy ACCEPT) 
  24. num  target     prot opt source               destination          
  25. 1    ACCEPT     all      ::/0                 ::/0                state RELATED,ESTABLISHED  
  26. 2    ACCEPT     icmpv6    ::/0                 ::/0                 
  27. 3    ACCEPT     all      ::/0                 ::/0                 
  28. 4    ACCEPT     tcp      ::/0                 ::/0                state NEW tcp dpt:22  
  29. 5    REJECT     all      ::/0                 ::/0                reject-with icmp6-adm-prohibited  
  30.  
  31. Chain FORWARD (policy ACCEPT) 
  32. num  target     prot opt source               destination          
  33. 1    REJECT     all      ::/0                 ::/0                reject-with icmp6-adm-prohibited  
  34.  
  35. Chain OUTPUT (policy ACCEPT) 
  36. num  target     prot opt source               destination          
  37.  
  38. IPsec stopped 
  39. Table: filter 
  40. Chain INPUT (policy ACCEPT) 
  41. num  target     prot opt source               destination          
  42. 1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED  
  43. 2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            
  44. 3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            
  45. 4    ACCEPT     tcp  --  10.0.0.0/8           0.0.0.0/0           tcp dpt:953  
  46. 5    ACCEPT     tcp  --  10.0.0.0/8           0.0.0.0/0           tcp dpt:53  
  47. 6    ACCEPT     tcp  --  10.0.0.0/8           0.0.0.0/0           tcp dpt:443  
  48. 7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22  
  49. 8    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited  
  50.  
  51. Chain FORWARD (policy ACCEPT) 
  52. num  target     prot opt source               destination          
  53. 1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited  
  54.  
  55. Chain OUTPUT (policy ACCEPT) 
  56. num  target     prot opt source               destination          
  57.  
  58. Table: mangle 
  59. Chain PREROUTING (policy ACCEPT) 
  60. num  target     prot opt source               destination          
  61.  
  62. Chain INPUT (policy ACCEPT) 
  63. num  target     prot opt source               destination          
  64.  
  65. Chain FORWARD (policy ACCEPT) 
  66. num  target     prot opt source               destination          
  67.  
  68. Chain OUTPUT (policy ACCEPT) 
  69. num  target     prot opt source               destination          
  70.  
  71. Chain POSTROUTING (policy ACCEPT) 
  72. num  target     prot opt source               destination          
  73.  
  74. Table: nat 
  75. Chain PREROUTING (policy ACCEPT) 
  76. num  target     prot opt source               destination          
  77.  
  78. Chain POSTROUTING (policy ACCEPT) 
  79. num  target     prot opt source               destination          
  80.  
  81. Chain OUTPUT (policy ACCEPT) 
  82. num  target     prot opt source               destination          
  83.  
  84. irqbalance (pid  1895) is running... 
  85. Kdump is operational 
  86. started 
  87. qpidd is stopped 
  88. matahari-qmf-hostd is stopped 
  89. matahari-qmf-networkd is stopped 
  90. matahari-qmf-serviced is stopped 
  91. matahari-qmf-sysconfigd is stopped 
  92. Checking for mcelog 
  93. mcelog is stopped 
  94. mdmonitor is stopped 
  95. messagebus (pid  1993) is running... 
  96. mysqld is stopped 
  97. rndc: connect failed: 127.0.0.1#953: connection refused 
  98. named is stopped 
  99. No open transaction 
  100. netconsole module not loaded 
  101. Configured devices: 
  102. lo eth0 
  103. Currently active devices: 
  104. lo eth0 
  105. NetworkManager (pid  2004) is running... 
  106. rpc.svcgssd is stopped 
  107. rpc.mountd is stopped 
  108. nfsd is stopped 
  109. rpc.rquotad is stopped 
  110. rpc.statd (pid  2037) is running... 
  111. nmbd is stopped 
  112. ntpd (pid  2243) is running... 
  113. oddjobd is stopped 
  114. portreserve (pid  1851) is running... 
  115. master (pid  2347) is running... 
  116. postmaster is stopped 
  117. Process accounting is disabled. 
  118. qpidd (pid  2390) is running... 
  119. quota_nld is stopped 
  120. rdisc is stopped 
  121. restorecond (pid 10836) is running... 
  122. rhnsd (pid  2445) is running... 
  123. rhsmcertd (pid 2457 2456) is running... 
  124. rngd is stopped 
  125. rpcbind (pid  1909) is running... 
  126. rpc.gssd is stopped 
  127. rpc.idmapd (pid 2076) is running... 
  128. rpc.svcgssd is stopped 
  129. rsyslogd (pid  1858) is running... 
  130. sandbox is stopped 
  131. saslauthd is stopped 
  132. sfcb is not running, but pid file exists 
  133. smartd is stopped 
  134. smbd is stopped 
  135. snmpd is stopped 
  136. snmptrapd is stopped 
  137. spamd is stopped 
  138. spice-vdagentd is stopped 
  139. openssh-daemon (pid  2233) is running... 
  140. sssd is stopped 
  141. CIM server (2470) is runningtomcat6 is stopped             [  OK  ] 
  142. vsftpd is stopped 
  143. wdaemon is stopped 
  144. Webmin (pid 2498) is running 
  145. wpa_supplicant (pid  2020) is running... 
  146. ypbind is stopped 

很显然,上面的显示中的第97行显示的

 
 
  • rndc: connect failed: 127.0.0.1#953: connection refused 
  • named is stopped

是错误的信息。

然后我开始查看系统日志,显示结果如下:

 
 
  1. [root@localhost ~]# named -g 
  2. 28-Mar-2012 13:27:58.722 starting BIND 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2 -g 
  3. 28-Mar-2012 13:27:58.722 built with '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--target=x86_64-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--with-libtool' '--localstatedir=/var' '--enable-threads' '--enable-ipv6' '--with-pic' '--disable-static' '--disable-openssl-version-check' '--with-dlz-ldap=yes' '--with-dlz-postgres=yes' '--with-dlz-mysql=yes' '--with-dlz-filesystem=yes' '--with-gssapi=yes' '--disable-isc-spnego' '--with-docbook-xsl=/usr/share/sgml/docbook/xsl-stylesheets' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'target_alias=x86_64-redhat-linux-gnu' 'CFLAGS= -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' 'CPPFLAGS= -DDIG_SIGCHASE' 
  4. 28-Mar-2012 13:27:58.722 adjusted limit on open files from 1024 to 1048576 
  5. 28-Mar-2012 13:27:58.722 found 2 CPUs, using 2 worker threads 
  6. 28-Mar-2012 13:27:58.723 using up to 4096 sockets 
  7. 28-Mar-2012 13:27:58.734 loading configuration from '/etc/named.conf' 
  8. 28-Mar-2012 13:27:58.735 reading built-in trusted keys from file '/etc/named.iscdlv.key' 
  9. 28-Mar-2012 13:27:58.736 using default UDP/IPv4 port range: [1024, 65535] 
  10. 28-Mar-2012 13:27:58.737 using default UDP/IPv6 port range: [1024, 65535] 
  11. 28-Mar-2012 13:27:58.740 listening on IPv4 interface lo, 127.0.0.1#53 
  12. 28-Mar-2012 13:27:58.744 binding TCP socket: address in use 
  13. 28-Mar-2012 13:27:58.744 listening on IPv6 interface lo, ::1#53 
  14. 28-Mar-2012 13:27:58.745 binding TCP socket: address in use 
  15. 28-Mar-2012 13:27:58.747 could not open file '/var/run/named/named.pid': Permission denied 
  16. 28-Mar-2012 13:27:58.747 generating session key for dynamic DNS 
  17. 28-Mar-2012 13:27:58.747 could not open file '/var/run/named/session.key': Permission denied 
  18. 28-Mar-2012 13:27:58.747 could not create /var/run/named/session.key 
  19. 28-Mar-2012 13:27:58.747 failed to generate session key for dynamic DNS: permission denied 
  20. 28-Mar-2012 13:27:58.753 using built-in trusted-keys for view _default 
  21. 28-Mar-2012 13:27:58.754 set up managed keys zone for view _default, file 'dynamic/managed-keys.bind' 
  22. 28-Mar-2012 13:27:58.754 automatic empty zone: 127.IN-ADDR.ARPA 
  23. 28-Mar-2012 13:27:58.754 automatic empty zone: 254.169.IN-ADDR.ARPA 
  24. 28-Mar-2012 13:27:58.754 automatic empty zone: 2.0.192.IN-ADDR.ARPA 
  25. 28-Mar-2012 13:27:58.754 automatic empty zone: 100.51.198.IN-ADDR.ARPA 
  26. 28-Mar-2012 13:27:58.754 automatic empty zone: 113.0.203.IN-ADDR.ARPA 
  27. 28-Mar-2012 13:27:58.754 automatic empty zone: 255.255.255.255.IN-ADDR.ARPA 
  28. 28-Mar-2012 13:27:58.754 automatic empty zone: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA 
  29. 28-Mar-2012 13:27:58.754 automatic empty zone: D.F.IP6.ARPA 
  30. 28-Mar-2012 13:27:58.754 automatic empty zone: 8.E.F.IP6.ARPA 
  31. 28-Mar-2012 13:27:58.754 automatic empty zone: 9.E.F.IP6.ARPA 
  32. 28-Mar-2012 13:27:58.754 automatic empty zone: A.E.F.IP6.ARPA 
  33. 28-Mar-2012 13:27:58.754 automatic empty zone: B.E.F.IP6.ARPA 
  34. 28-Mar-2012 13:27:58.755 automatic empty zone: 8.B.D.0.1.0.0.2.IP6.ARPA 
  35. 28-Mar-2012 13:27:58.759 none:0: open: /etc/rndc.key: file not found 
  36. 28-Mar-2012 13:27:58.760 couldn't add command channel 127.0.0.1#953: file not found 
  37. 28-Mar-2012 13:27:58.760 none:0: open: /etc/rndc.key: file not found 
  38. 28-Mar-2012 13:27:58.760 couldn't add command channel ::1#953: file not found 
  39. 28-Mar-2012 13:27:58.760 ignoring config file logging statement due to -g option 
  40. 28-Mar-2012 13:27:58.761 zone 0.in-addr.arpa/IN: loaded serial 0 
  41. 28-Mar-2012 13:27:58.762 zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0 
  42. 28-Mar-2012 13:27:58.764 zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0 
  43. 28-Mar-2012 13:27:58.765 zone localhost.localdomain/IN: loaded serial 0 
  44. 28-Mar-2012 13:27:58.766 zone localhost/IN: loaded serial 0 
  45. 28-Mar-2012 13:27:58.766 managed-keys-zone ./IN: loading from master file dynamic/managed-keys.bind failed: permission denied 
  46. 28-Mar-2012 13:27:58.766 dynamic/managed-keys.bind.jnl: open: permission denied 
  47. 28-Mar-2012 13:27:58.766 managed-keys-zone ./IN: journal rollforward failed: unexpected error 
  48. 28-Mar-2012 13:27:58.767 running 

很明显,根据上面的结果第35,37,46行的提示很可能是权限或者配置文件的错误造成的。所以下面一一检查即可。

首先不是权限的问题。我查看了所有DNS相关的所有配置文件,展示如下,也为大家以后出错作为参考。因为使用root登录终端对文件或目录执行移动或创建工作很容易导致权限问题。

 
 
  1. [root@localhost ~]# ls /var/named/ -al 
  2. total 40 
  3. drwxr-x---.  6 root  named 4096 Mar 28 13:05 . 
  4. drwxr-xr-x. 28 root  root  4096 Mar 28 13:44 .. 
  5. drwxr-x---.  6 root  named 4096 Mar 28 13:05 chroot 
  6. drwxrwx---.  2 named named 4096 Mar 28 13:23 data 
  7. drwxrwx---.  2 named named 4096 Mar 28 15:24 dynamic 
  8. -rw-r-----.  1 root  named 1892 Feb 18  2008 named.ca 
  9. -rw-r-----.  1 root  named  152 Dec 15  2009 named.empty 
  10. -rw-r-----.  1 root  named  152 Jun 21  2007 named.localhost 
  11. -rw-r-----.  1 root  named  168 Dec 15  2009 named.loopback 
  12. drwxrwx---.  2 named named 4096 Dec 20 23:53 slaves 
  13. [root@localhost ~]# ls /var/named/chroot/ -al 
  14. total 24 
  15. drwxr-x---. 6 root named 4096 Mar 28 13:05 . 
  16. drwxr-x---. 6 root named 4096 Mar 28 13:05 .. 
  17. drwxr-x---. 2 root named 4096 Mar 28 13:05 dev 
  18. drwxr-x---. 4 root named 4096 Mar 28 14:32 etc 
  19. drwxr-xr-x. 3 root root  4096 Mar 28 13:05 usr 
  20. drwxr-x---. 6 root named 4096 Mar 28 13:05 var 
  21. [root@localhost ~]# ls /var/named/chroot/etc/ -al 
  22. total 40 
  23. drwxr-x---. 4 root named 4096 Mar 28 14:32 . 
  24. drwxr-x---. 6 root named 4096 Mar 28 13:05 .. 
  25. -rw-r--r--. 1 root root   405 Oct 19 22:00 localtime 
  26. drwxr-x---. 2 root named 4096 Dec 20 23:53 named 
  27. -rw-r-----. 1 root named 1259 Mar 28 14:31 named.conf 
  28. -rw-r--r--. 1 root named 2544 Dec 20 23:53 named.iscdlv.key 
  29. -rw-r-----. 1 root named  931 Jun 21  2007 named.rfc1912.zones 
  30. -rw-r--r--. 1 root named  487 Dec 20 23:53 named.root.key 
  31. drwxr-xr-x. 3 root root  4096 Mar 28 13:05 pki 
  32. -rw-------. 1 root root   479 Mar 27 23:46 rndc.conf 
  33. [root@localhost ~]# ls /var/named/chroot/var -al 
  34. total 24 
  35. drwxr-x---. 6 root  named 4096 Mar 28 13:05 . 
  36. drwxr-x---. 6 root  named 4096 Mar 28 13:05 .. 
  37. drwxrwx---. 2 named named 4096 Dec 20 23:53 log 
  38. drwxr-x---. 6 root  named 4096 Mar 28 13:05 named 
  39. drwxr-x---. 3 root  named 4096 Mar 28 13:05 run 
  40. drwxrwx---. 2 named named 4096 Dec 20 23:53 tmp 
  41. [root@localhost ~]# ls /etc/named* -al 
  42. -rw-r-----. 1 root named 1259 Mar 28 14:31 /etc/named.conf 
  43. -rw-r-----. 1 root root   930 Mar 28 13:41 /etc/named.conf.backup 
  44. -rw-r--r--. 1 root named 2544 Dec 20 23:53 /etc/named.iscdlv.key 
  45. -rw-r-----. 1 root named  931 Jun 21  2007 /etc/named.rfc1912.zones 
  46. -rw-r--r--. 1 root named  487 Dec 20 23:53 /etc/named.root.key 
  47.  
  48. /etc/named: 
  49. total 16 
  50. drwxr-x---.   2 root named  4096 Dec 20 23:53 . 
  51. drwxr-xr-x. 131 root root  12288 Mar 28 14:32 .. 
  52. [root@localhost ~]# ls /etc/rndc.* -al 
  53. -rw-------. 1 root root 479 Mar 27 23:46 /etc/rndc.conf 
  54. -rw-------. 1 root root 479 Mar 28 13:42 /etc/rndc.conf.backup 
  55. -rw-------. 1 root root 479 Mar 27 23:10 /etc/rndc.conf.original 
  56. -rw-------. 1 root root 479 Mar 27 23:46 /etc/rndc.conf.original_1_error_secret 
  57. -rw-------. 1 root root 510 Mar 27 23:43 /etc/rndc.key.removed_no_need 
  58. -rw-------. 1 root root 511 Mar 27 23:50 /etc/rndc.key.removed_no_need_1 
  59. [root@localhost ~]#  

通过比对之前的备份,发现在权限上没有问题。

PS:如果大家遇到这方面的问题请使用如下的命令进行修改。

 
 
  1. su - 
  2. chown -R root:named /derectory/directory/file 

那么既然不是权限的问题,是不是iptables给设定的规则不正确呢?

查看iptables配置信息,显示如下:

 
 
  1. [root@localhost ~]# service iptables status 
  2. Table: nat 
  3. Chain PREROUTING (policy ACCEPT) 
  4. num  target     prot opt source               destination          
  5.  
  6. Chain POSTROUTING (policy ACCEPT) 
  7. num  target     prot opt source               destination          
  8.  
  9. Chain OUTPUT (policy ACCEPT) 
  10. num  target     prot opt source               destination          
  11.  
  12. Table: mangle 
  13. Chain PREROUTING (policy ACCEPT) 
  14. num  target     prot opt source               destination          
  15.  
  16. Chain INPUT (policy ACCEPT) 
  17. num  target     prot opt source               destination          
  18.  
  19. Chain FORWARD (policy ACCEPT) 
  20. num  target     prot opt source               destination          
  21.  
  22. Chain OUTPUT (policy ACCEPT) 
  23. num  target     prot opt source               destination          
  24.  
  25. Chain POSTROUTING (policy ACCEPT) 
  26. num  target     prot opt source               destination          
  27.  
  28. Table: filter 
  29. Chain INPUT (policy ACCEPT) 
  30. num  target     prot opt source               destination          
  31. 1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED  
  32. 2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            
  33. 3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            
  34. 4    ACCEPT     tcp  --  10.0.0.0/8           0.0.0.0/0           tcp dpt:953  
  35. 5    ACCEPT     tcp  --  10.0.0.0/8           0.0.0.0/0           tcp dpt:53  
  36. 6    ACCEPT     tcp  --  10.0.0.0/8           0.0.0.0/0           tcp dpt:443  
  37. 7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22  
  38. 8    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited  
  39.  
  40. Chain FORWARD (policy ACCEPT) 
  41. num  target     prot opt source               destination          
  42. 1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited  
  43.  
  44. Chain OUTPUT (policy ACCEPT) 
  45. num  target     prot opt source               destination          
  46.  
  47. [root@localhost ~]#  

显然,不是iptables的配置有问题。再者,iptables如果有策略在阻止访问,其错误信息也不是如上面所示。

最终我诊断为可能是/etc/named.conf 配置文件存在问题。

因此进行检查配置文件,操作和显示如下:

 
 
  1. [root@localhost ~]# named-checkconf /etc/named.conf 
  2. [root@localhost ~]# named-checkconf -t /var/named/chroot/ 
  3. [root@localhost ~]#  

说明,在参数上没有问题。因此我开始怀疑,是不是/etc/named.conf或者/etc/rndc.conf存在配置错误?但是,作为新配置安装的DNS不会在密钥上出现问题,因此我检查了/etc/named.conf,确实没发现什么错误。然后我检查了/etc/rndc.conf这个文件,终于发现问题的所在。

结果如下:

 

 
 
  1. [root@localhost ~]# cat /etc/rndc.conf 
  2. # Start of rndc.conf 
  3. key "rndc-key" { 
  4.     algorithm hmac-md5; 
  5.     secret "cK1Bt77B8kL9uLpxy4GDTg=="; 
  6. }; 
  7.  
  8. options { 
  9.     default-key "rndc-key"; 
  10.     default-server 127.0.0.1; 
  11.     default-port 953; 
  12. }; 
  13. # End of rndc.conf 
  14.  
  15. # Use with the following in named.conf, adjusting the allow list as needed: 
  16. # key "rndc-key" { 
  17. #   algorithm hmac-md5; 
  18. #   secret "cK1Bt77B8kL9uLpxy4GDTg=="; 
  19. # }; 
  20. #  
  21. # controls { 
  22. #   inet 127.0.0.1 port 953 
  23. #       allow { 127.0.0.1; } keys { "rndc-key"; }; 
  24. # }; 
  25. # End of named.conf 

显然,最后的注释说的很清楚,要想使用rndc就必须在/etc/named.conf中进行配置。

所以将显示如下的/etc/named.conf第一段代码更改为第二段代码。

第一段代码:

 
 
  1. [root@localhost ~]# cat /etc/named.conf 
  2. // 
  3. // named.conf 
  4. // 
  5. // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS 
  6. // server as a caching only nameserver (as a localhost DNS resolver only). 
  7. // 
  8. // See /usr/share/doc/bind*/sample/ for example named configuration files. 
  9. // 
  10.  
  11. options { 
  12.     listen-on port 53 { 127.0.0.1; }; 
  13.     listen-on-v6 port 53 { ::1; }; 
  14.     directory   "/var/named"; 
  15.     dump-file   "/var/named/data/cache_dump.db"; 
  16.         statistics-file "/var/named/data/named_stats.txt"; 
  17.         memstatistics-file "/var/named/data/named_mem_stats.txt"; 
  18.     allow-query     { localhost; }; 
  19.     recursion yes; 
  20.  
  21.     dnssec-enable yes; 
  22.     dnssec-validation yes; 
  23.     dnssec-lookaside auto; 
  24.  
  25.     /* Path to ISC DLV key */ 
  26.     bindkeys-file "/etc/named.iscdlv.key"; 
  27. }; 
  28.  
  29. logging { 
  30.         channel default_debug { 
  31.                 file "data/named.run"; 
  32.                 severity dynamic; 
  33.         }; 
  34. }; 
  35.  
  36. zone "." IN { 
  37.     type hint; 
  38.     file "named.ca"; 
  39. }; 
  40.  
  41. include "/etc/named.rfc1912.zones"; 

第二段代码:

 
 
  1. [root@localhost ~]# cat /etc/named.conf 
  2. // 
  3. // named.conf 
  4. // 
  5. // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS 
  6. // server as a caching only nameserver (as a localhost DNS resolver only). 
  7. // 
  8. // See /usr/share/doc/bind*/sample/ for example named configuration files. 
  9. // 
  10.  
  11. options { 
  12.     listen-on port 53 { 127.0.0.1; }; 
  13.     listen-on-v6 port 53 { ::1; }; 
  14.     directory   "/var/named"; 
  15.     dump-file   "/var/named/data/cache_dump.db"; 
  16.         statistics-file "/var/named/data/named_stats.txt"; 
  17.         memstatistics-file "/var/named/data/named_mem_stats.txt"; 
  18.     allow-query     { localhost; }; 
  19.     recursion yes; 
  20.  
  21.     dnssec-enable yes; 
  22.     dnssec-validation yes; 
  23.     dnssec-lookaside auto; 
  24.  
  25.     /* Path to ISC DLV key */ 
  26.     bindkeys-file "/etc/named.iscdlv.key"; 
  27. }; 
  28.  
  29. logging { 
  30.         channel default_debug { 
  31.                 file "data/named.run"; 
  32.                 severity dynamic; 
  33.         }; 
  34. }; 
  35.  
  36. zone "." IN { 
  37.     type hint; 
  38.     file "named.ca"; 
  39. }; 
  40.  
  41. include "/etc/named.rfc1912.zones"; 
  42. # Add line to enable named working with "/etc/rndc.conf" 
  43.  
  44. # Use with the following in named.conf, adjusting the allow list as needed: 
  45. key "rndc-key" { 
  46.        algorithm hmac-md5; 
  47.        secret "cK1Bt77B8kL9uLpxy4GDTg=="; 
  48. }; 
  49.  
  50. controls { 
  51.       inet 127.0.0.1 port 953 
  52.               allow { 127.0.0.1; } keys { "rndc-key"; }; 
  53. }; 
  54. # End of named.conf 
  55.  
  56. [root@localhost ~]#  

最后,重新启动named守护进程

 
 
  1. su - 
  2. service named restart 
  3. service named status 

结果显示如下,就表示可以了。

 
 
  1. [root@localhost ~]# service named status 
  2. version: 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2 
  3. CPUs found: 2 
  4. worker threads: 2 
  5. number of zones: 19 
  6. debug level: 0 
  7. xfers running: 0 
  8. xfers deferred: 0 
  9. soa queries in progress: 0 
  10. query logging is OFF 
  11. recursive clients: 0/0/1000 
  12. tcp clients: 0/100 
  13. server is up and running 
  14. named (pid  11918) is running... 
  15. [root@localhost ~]#  

最后总结

        其实问题的出现不一定就是存在硬错误,还可能存在软错误。就像C编程一样,有的语法错误,编译器或语法检查器能帮你识别并找出错误,但是在算法上的逻辑错误只能由编程人员自己发现和纠正。在配置Linux网络服务器时同样也可能遇到这类问题,只要管理员仔细查看问题,检查日志就很快发现问题的所在。希望在今后的工作中能更多的总结和发现、解决问题的思路,大胆的却有根据的自己去发现和解决问题。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要解决DNS服务器解析故障,可以采取以下措施: 1. 检查网络连接:首先,确保服务器的网络连接正常。检查网络设备(例如路由器和交换机)是否正常工作,确保服务器能够正常连接到互联网。 2. 检查DNS服务器设置:检查DNS服务器的设置,确保其配置正确。确认DNS服务器的IP地址和域名正确,并确保没有任何错误的设置。 3. 检查配置文件和日志:检查DNS服务器的配置文件和日志,查找可能的问题。检查配置文件中的语法错误或不匹配的设置,并查看日志文件以获取关于故障的更多信息。 4. 重启DNS服务器:如果发现DNS服务器出现故障,尝试重新启动该服务器。有时候,重启可以解决临时的故障。 5. 检查防火墙和安全设置:确保防火墙和其他安全设置没有阻止DNS服务器的正常运行。检查防火墙规则和访问控制列表,确保DNS流量可以通过。 6. 更新软件和固件:确保DNS服务器、操作系统和相关软件的版本都是最新的。更新软件和固件可以修复潜在的漏洞和问题,提高解析的稳定性和性能。 7. 使用备用DNS服务器:如果主要的DNS服务器出现故障,可以使用备用的DNS服务器来提供解析服务。使用多个DNS服务器可以提高可用性,并减少单点故障的影响。 8. 联系网络运营商或DNS服务提供商:如果以上措施都无法解决问题,可能需要联系网络运营商或DNS服务提供商寻求更进一步的帮助。他们可能有更深入的了解和专业的解决措施来解决故障。 在解决DNS服务器解析故障时,应始终保持耐心和方法论。根据具体情况采取适当的措施并进行逐步排除,最终找到并解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值