中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 操作系统 > Windows应用
解决Linux下“跑”DNS的故障
作者:未知 时间:2005-08-09 02:19 出处:中国电脑救援中心 责编:chinaitpower
              摘要:解决Linux下“跑”DNS的故障




  在Linux上架设DNS是相当常见的事情。域名系统为一个分布式数据库,它使本地负责控制整个分布式数据库的部分段。每一段中的数据通过客户、服务器模式在整个网络上均可存取。它通过采用复制技术和缓存技术使得整个数据库可靠的同时,又拥有良好的性能。

  域名服务器包含数据库的部分段的信息,并可提供被称之为解析器的客户来访问。DNS的数据库结构形成一个倒立的树状结构,根的名字用空字符串“ ”来表示,但在文本中用“.”来书写。树的每一个节点都表示整个分布式数据库中的一个分区(域),每个域又可进一步划分成子分区(域),每个域都有一个标签(Label),标明了它与父域的关系。域也有一个域名(Domain Name),给出它在整个分布式数据库中的位置。在DNS中,域名全称是一个从该域到根的标签序列,以“.”分隔这些标签,该标签最多可包含63个字符。树中每一节点的完整域名为从该节点到根之间路径上的标签序列。Linux和其它的Unix一样,都是用BIND来实现名字服务。BIND的服务端的软件被称为named的守护进程。

  问题的出现

  这里所架设的DNS Server的IP地址为192.168.1.212(hostname是test)。开机时,named、telnetd、httpd已启动。在本机上,可由Internet Explorer浏览器浏览192.168.1.212上的网页,也可以进行telnet test。但是在Client端的电脑上(IP为192.168.1.3)却无法浏览192.168.1.212,以及telnet。Client端相关设定是: IP为192.168.1.3,DNS为192.168.1.212,gateway为192.168.1.254,netmask为255.255.255.0。这样的设置似乎没有任何的问题,但究竟为什么会出现这样的情况呢?

  一般DNS故障处理

  大多数DNS故障是因为配置文件的语法错误,或者是对计算机分配了错误的地址造成的。当进行DNS故障诊断时,可参照下面的指导方针:

  1.对全部记录检查和确认主机名称的拼写,记住绝对地址是以“.”结尾的。

  2.如果在区文件中做了任何修改,务必修改SOA记录中的序列号,这将保证服务器正确地重新上载文件。

  3.确定输入到主区的名称和IP地址匹配反向指针文件中的反向指针信息。

  4.Microsoft的DNS服务器采用了非标准的资源记录,可能会导致问题。

  5.检查防火墙相关程序。

  分析与解决

  1.我们是利用private IP(例如:192.168.1.212)来架设DNS的。这样做是允许的,而且看来在Client端的设定并无错误。假如无法使用DNS服务,则要先先检查DNS Servre的设定。设定文件在/etc/named.boot及/var/named/*),同时运行“/var/log/messages”。

  2.Client端无法浏览192.168.1.212及telnet,如果是指使用IP方式无法连接,那么首先要检查DNS server(192.168.1.212)上的WWW Server及telnet是否启动,并运行正常。一般运行“netstat -tlp”来查看port是否open,WWW服务使用的port是“80 port”,而telnet服务是“21 port”。查看并确认log有无错误信息(view /var/log/httd/* ; /var/log/messages; /var/log/secure)。若是使用DN方式无法连线,则请检查上述说明确认DNS运行无误。若实在查不出来,则只好将相关文件信息Copy出来。例如有关 /var/log/messages的信息如下:



Dec 19 10:54:18 moon named[2424]: starting BIND 9.2.0 -u named Dec 19 10:54:18 moon named[2424]: using 1 CPU Dec 19 10:54:18 moon named[2427]: loading configuration from '/etc/named.conf' Dec 19 10:54:18 moon 12月 19 10:54:18 named: named 启动 succeeded Dec 19 10:54:18 moon named[2427]: no IPv6 interfaces found Dec 19 10:54:18 moon named[2427]: listening on IPv4 interface lo, 127.0.0.1#53 Dec 19 10:54:18 moon named[2427]: listening on IPv4 interface eth0, 195.68.1.212#53 Dec 19 10:54:18 moon named[2427]: listening on IPv4 interface eth1, 17.130.240.67#53 Dec 19 10:54:18 moon named[2427]: command channel listening on 127.0.0.1#953 Dec 19 10:54:18 moon named[2427]: named.local:1: no TTL specified; using SOA MINTTL instead Dec 19 10:54:18 moon named[2427]: zone 0.0.127.IN-ADDR.ARPA/IN: loaded serial 2000092201 Dec 19 10:54:18 moon named[2427]: zone 1.68.195.IN-ADDR.ARPA/IN: loaded serial 2001021103 Dec 19 10:54:18 moon named[2427]: zone localhost/IN: loaded serial 2002111601 Dec 19 10:54:18 moon named[2427]: zone tao.gov.tw/IN: loaded serial 2001021103 Dec 19 10:54:18 moon named[2427]: running Dec 19 10:54:18 moon named[2427]: zone localhost/IN: sending notifies (serial 2002111601)


  有关netstat -lpt的信息如下:



Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 *:32768 *:* LISTEN 866/rpc.statd tcp 0 0 localhost:32769 *:* LISTEN 1090/xinetd tcp 0 0 *:printer *:* LISTEN 1112/lpd Waiting tcp 0 0 *:sunrpc *:* LISTEN 838/portmap tcp 0 0 *:x11 *:* LISTEN 1363/X tcp 0 0 *:http *:* LISTEN 1184/httpd tcp 0 0 *:wnn4_Tw *:* LISTEN 1230/tserver tcp 0 0 *:ftp *:* LISTEN 1090/xinetd tcp 0 0 17.130.240.67:domain *:* LISTEN 1032/named tcp 0 0 moon.tao.gov.tw:domain *:* LISTEN 1032/named tcp 0 0 localhost:domain *:* LISTEN 1032/named tcp 0 0 *:ssh *:* LISTEN 1057/sshd tcp 0 0 *:telnet *:* LISTEN 1090/xinetd tcp 0 0 localhost:smtp *:* LISTEN 1142/sendmail: acce tcp 0 0 localhost:rndc *:* LISTEN 1032/named


  有关 /var/log/secure的信息如下:



Dec 19 10:02:14 moon sshd[1060]: Server listening on 0.0.0.0 port 22. Dec 19 10:02:50 moon xinetd[1093]: START: sgi_fam pid=1562 from=


  有关/var/log/httpd/error_log的信息如下:



[Thu Dec 19 10:02:20 2002] [notice] Apache/1.3.23 (Unix) (Red-Hat/Linux) configured -- resuming normal operations [Thu Dec 19 10:02:20 2002] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Thu Dec 19 10:02:20 2002] [notice] Accept mutex: sysvsem (Default: sysvsem)


  3.接下来要从Client Server互相ping IP。一般会出现以下两种情况:

  ◆ 只要有一方ping不到,请检查双方网路的设置,尤其注意防火墙;

  ◆ 相互能够ping通,请继续下面步骤。

  4.Client Server互相ping DN。一般会出现以下两种情况:

  ◆ Client→Server不通表示Server端的DNS可能不正常(虽从log看来有启动,但不能说明所有的设定都正确),或者是Client端关于DNS的设定有错。如果Server→Client不通表示Server端的DNS肯定是不正常了(虽从log看来有启动,但不能说明所有的设定都正确) 。

  ◆ 相互能ping通,通常为Server端的Service不正常(包含设定),但很可能是自身运行了防火墙。

  4.检查防火墙相关程序

  ◆ 先用lokkit将防火墙关闭(设定为无) ;

  ◆ 检查TCP_WRAPPER设定(设定文件在/etc/hosts.allow 及 /etc/hosts.deny);

  ◆ 检查service level安全设定,如telnet应检查/etc/xinetd.conf(global)及/etc/xinetd.d/telnet中有无only_from或no_access设定。

  经过上面的步骤,发现它们相互能ping通。于是可以得出结论,使用lokkit将防火墙关闭即可解决问题。


 

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有