`

Linux DNS服务器故障解决

 
阅读更多

现在UNIX类操纵系统(UNIX、Linux、BSD)的域名服务器绝大多数都是用BIND来架设的。由于DNS服务器负责域名的解析工作,其重要性不言而喻。如果在Linux网络中无法进行域名解析,很可能是没有在本地指定有效的域名服务器,通常这种情况比较常见。大多数DNS故障是因为配置文件的语法错误,或者是对计算机分配了错误的地址造成的。

Linux中的DNS配置文件

Linux下主要DNS配置文件有以下几个。

/etc/hosts:主机的一个列表文件,包含(本地网络中)已知主机的一个列表。如果系统的 IP 不是动态生成的,就可以使用它。
/etc/host.conf:转换程序控制文件,告诉网络域名服务器如何查找主机名(通常是/etc/hosts,然后就是名称服务器。可通过netconf对其进行更改)。对于简单的主机名解析(点分表示法),在请求DNS或NIS网络名称服务器之前,/etc/hosts.conf 通常会告诉解析程序先查看这里。
/etc/resolv.conf:转换程序配置文件,在配置程序请求BIND域名查询服务查询主机名称时必须告诉程序使用哪个域名服务器和IP地址来完成这个任务。
Linux上的域名服务由named守护进程控制,该进程从主文件/etc/named.conf中获取信息,包括一组将主机名称映射为IP地址的各种文件。下面是named配置文件族的详细内容。
/etc/named.conf:主文件,设置一般的name参数,指向该服务器使用的域数据库的信息源。
/var/named/named.ca:根域名配置服务器指向文件,指向根域名配置服务器,用于告诉缓存服务器初始化。
/var/named/localhost.zone:Localhost区正向域名解析文件,用于将本地IP地址(127.0.0.1)转换为回送方的Localhost名字。
/var/named/name.local:Localhost区反向域名解析文件,用于将Localhost名字转换为本地回送IP地址(127.0.0.1)。
/var/named/name2ip.conf:用户配置区的正向解析文件,将主机名映射为IP地址的区文件。
/var/named/ip2name.conf:用户配置区的反向解析文件,将IP地址映射为主机名称的区文件。

Linux DNS故障诊断

当进行DNS故障诊断时,可参照下面的步骤。

(1)对全部记录检查和确认主机名称的拼写,记住绝对地址是以“.”结尾的。
(2)如果在区文件中做了任何修改,务必修改SOA记录中的序列号,这将保证服务器正确地重新上载文件。
(3)确定输入到主区的名称和IP地址匹配反向指针文件中的反向指针信息。
(4)检查防火墙相关程序。
(5)使用命令检查(ping、dig、nslookup、named-checkzone、named-checkconf)。
(6)使用Dlint软件检查DNS故障。

工具的应用

1.语法和规则检查

Dlint是一个专门检查DNS配置文件开放源代码的软件,运行它要求系统安装Perl语言和Dig命令(BIND中一个软件包)。

Dlint软件的下载和安装则需要执行以下命令。

#wegt 
#gunzip Dlint1.4.0.tar.gz
#tar vxf Dlint1.4.0.tar
#cd Dlint1.4.0
#make install

系统会将Dlint安装在/usr/bin/目录下。

Dlint首先检查配置文件的拼写错误。有A(Address)记录的主机名称必须有PTR(反向解析记录的简称)记录。如果有A记录的主机名称没有PTR,则配置文件不能通过。Dlint可以在用户配置文件中为A记录查找丢失的PTR记录。Dlint会记录in-addr.arpa区带的每一条PTR记录是否有对应的A记录存在。Dlint会以递归的方式检查子区带,查找它们的配置问题。Dlint软件可以分析任何DNS区带。

2.DNS服务器工作状态检查

在维护DNS服务器时,网管员希望知道到底是哪些用户在使用DNS服务器,同时也希望能对DNS状态查询做一个统计。通常可以想到用Tcpdump -I eth0 port 53来查看DNS查询包。Tcpdump是一个命令行方式的嗅探器,它可以根据需要显示出经过一个网络接口的所有数据包,供网络管理员对网络进行检测。但由于采用的是命令行方式,对这些数据包的分析可能会比较困难。这里我们可以使用DNStop查询DNS服务器状态。

DNStop依赖Tcpdump和pcap库(libpcap)对网络上传输的数据包进行截获和过滤,所以您需要检查系统是否安装相应软件,可以使用以下命令进行检查。

#rpm -qa|grep Tcpdump; rpm -qa|grep libpcap

DNStop的下载和安装需要执行以下命令。

#wegt http://www.stearns.org/DNStop/DNStop-20040309-1.i386.rpm

#rpm -ivh DNStop-20040309-1.i386.rpm

如果想查看通过eth0的DNS网络流量可以使用以下命令。

#DNStop -s eth0
0 new queries, 6 total queries Mon Jul 6 09:54:35 2004
Sources count %
192.168.0.117 4 66.7
192.168.0.143 1 16.7
192.168.0.42 1 16.7

在运行DNStop的过程中,可以依次输入如下命令:s、d、t、1、2、3、ctrl+r、ctrl+x,以交互方式来显示不同的信息。
1 —(TLD)记录查询的顶级域名。
2 —(SLD)记录查询的二级域名。
3 —(SLD)记录查询的三级域名。
s —(Source)记录发送DNS查询的客户端IP地址表。
d —(Destinations)记录DNS查询的目的服务器的IP地址表。
t —(Query Type)记录查询详细类型。
Ctrl+r — 重新记录。
Ctrl+x — 退出。
更详细的信息可以查看man DNStop。
3.其他DNS集成工具
(1)nslookup
nslookup即名称服务器查找(Name Server Lookup),用来查找DNS服务器上的DNS记录。这个命令可以指定查询的类型,可以查到DNS记录的生存时间,还可以指定使用哪个DNS服务器进行解释。运行nslookup需要安装bind-utils。nslookup有两种运行模式:交互式和非交互式运行模式。
错误实例:

#nslookup
*** Can't find server name for address 192.168.2.1: Timed out
*** Default servers are not available
Default Server: UnKnown
Address: 192.168.2.1

错误原因:如果出现错误,该命令将不能启动。一般的错误都是数据库文件或配置文件笔误所至。比如少个“.”或者文件内容不正确等。另外一个主要的原因是执行nslookup的系统所使用的server(如192.168.2.1)不能查询其反解(1.2.168.192.in-addr.arpa)。
解决方法:增加服务器IP所在的 reverse zone (如2.168.192.in-addr.arpa),确定其中有server 本身的反解项目。

2)dig
dig工具向DNS服务器发送named查询,dig可以查询单一和多个域名服务器。dig的功能比 nslookup 强大很多而且使用简单,不像nslookup需要设置set选项。下面是dig的一些比较常用的命令。

dig @server sina.com.cn. # dig 最基本的用法
dig @server zx.xmgd.com. AXFR
# 用dig查看zone数据传输
dig @server zx.xmgd.com. IXFR=N
# 用 dig 查看 zone 数据的增量传输
dig -x 210.52.83.228 @server
# 用dig查看反向解析
dig xmgd.com. +nssearch # 查找一个域的授权DNS服务器
dig xmgd.com +trace
# 从根服务器开始追踪一个域名的解析过程

(3)named-checkzone
named-checkzone通过检查句法的正确性来检查区域(zone)文件的正确性。named-checkzone如果没有检查到错误会简单返回一个“OK”字符。下面举一个例子。
#named-checkzone -q /var/named/localhost.zone
DNS_zone_load: could not find NS and/or SOA recordsorbad dated quad
显示可能是没有定义SOA记录或A纪录设定了一个错误IP地址。查看/var/named/localhost.zone文件后发现一行:
1D IN A 127.0.0.l
显然是一个拼写错误,“1”错误拼写为“l”,如果找到错误文件,就可以很快排除故障。
(4)named-checkconf
named-checkconf通过检查named.conf句法的正确性来检查named文件的正确性。对于配置正确的named.conf文件,named-checkconf不会显示任何信息。下面是一个检查例子。

# named-checkconf /etc/named.conf
/etc/named.conf:23: unknown option 'fi1e'

上面的信息说明在23行有一个错误语句,即把“file”错误拼写为“fi1e”。找到错误原因,用vi修改配置文件,就可以很快排除故障。
另外强烈建议不要使用RedHat Linux提供的一个图形化的配置工具redhat-config-bind(它可能带来许多严重的问题,因此RHEL 4取消了这个工具),但是Linux网络管理员还是应当使用命令行配置DNS服务器管理工作。Linux命令行和redhat-config-bind 相比具有许多优点。
命令更加灵活,使用命令通常比使用redhat-config-bind具有更多选项。
命令运行更快,不必等待Linux处理图形。
redhat-config-bind工具不能显示所有错误信息。而命令提供的错误信息可以在命令行下看到。
redhat-config-bind工具是一个单独软件,也是另一个出错源。
第一次配置DNS对于Linux新手来说是一个挑战,通常都会出错。DNS是一个很复杂的系统,有很多可能会使系统不能正常运行。伴随DNS建立出现的许多问题都会引起相同的结果,但起因却不同。大多数问题是由于配置文件中的语法错误而导致的。DNS是由一组文件构成的,所以需要不同工具来检查对应文件。

分享到:
评论

相关推荐

    基于Linux DNS服务器的设计与实现

    基于Linux DNS服务器的设计与实现-完整版,有DNS在Linux 下命令配置和有关键的截图,Dns的有关基础知识--域名结构,解析过程,服务器功能,故障的排查。。是网络课程设计界中的战斗机

    Linux下DNS的主从服务器的实现

    如果公司内DNS服务器负载过重或者为了实现冗余这一类功能就需要用到一...件,其中复制的方式也有两种,分别是完全复制和增量复制,平时辅助DNS服务器不提供解析服务,如果主DNS有故障辅助DNS就立刻激活提供域名解析服务

    linux服务器配置与管理课程标准.doc

    "2、Linux DHCP服务器的安装 " " " " " "管理 "3、Linux DHCP服务器的配置 " " " " " " "4、Linux DHCP服务器的常见故障 " " " " "三"Linux "1、Linux DNS服务器基本知识 "6 "6% " " " "DNS服务器的管"2、Linux DNS...

    linux服务器配置全程实录

    具体内容包括配置NTP服务器、YUM服务器、DHCP服务器、DNS服务器,使用FTP配置文件服务器,使用Samba配置文件服务器,使用NFS配置文件服务器,配置Web服务器、邮件服务器、代理服务器、服务器、目录服务器,配置虚拟...

    Win2003 DNS服务器创建多个域名

    解决方法:严格意义上这并不算是故障,而是DNS服务器的一种基本功能,只因其应用的广泛性而在这里提及。其实实现这一设想的实质就是提供域名和IP地址的映射工作,而该域名究竟用来做什么,并不是由DNS服务器决定的,...

    Linux校园网设计

    (1)5台服务器分别作为整个校园网络的DHCP和DNS服务器,WEB服务器,FTP服务器,邮件服务器,数据库服务器。 (2)5台服务器上统一安装LINUX操作系统服务器版本(本方案采用RedHat Linux9.0)。 (2)将实现各种服务...

    配置Linux服务器的网络

    下面我以64bit Centos5.5服务器为例来说明如何通过命令或图形来配置Linux服务器的IP、网关、DNS,以及如何用命令查看Linux的进程或网络连接等。  配置Linux服务器的网络  1、手动修改配置网卡文件  手动配置...

    值得收藏的20个Linux服务器性能优化技巧

    Linux高可用服务器集群解决方案让IT系统管理员可以从容应对许多常见的硬件和软件故障,允许多台计算机一起工作,为关键服务正常运行提供保障,系统管理员可以不中断服务执行维护和升级。  Linux服务器有各种用途,...

    Linux运维杂谈技巧系列视频.zip

    目录 1Linux运维学习技巧方法 ...3企业DEL服务器RAD技术及创服建方法 ...9Linux运维故障解决经验分享 10.CP三次握手及DDOS攻击攻防 11.智能DNS、CDN入门简介及在金业中使用 12Linux数据中心路由器及交换机进解

    linux系统教程

    第十章 FTP服务器和Linux安全 55 10.1 FTP服务器简介 55 10.2 FTP运行原理 55 10.3 Linux下的FTP服务器 55 10.3.1安装并启动vsftpd 55 10.3.2 配置vsftpd 55 10.4 使用vsftp服务 56 10.4 Linux安全初步 56

    在 Linux 上用 DNS 实现简单的负载均衡的方法

    你需要的是一个跨服务器分发负载的简单方法,它能够提供故障切换,并且不太在意它是否高效和完美。DNS 轮询和使用轮询的子域委派是实现这个目标的两种简单方法。 DNS 轮询是将多台服务器映射到同一个主机名上,

    服务器运维方案.docx

    每季度安排专人进入机房对服务器进行一次常规确认,包含服务器线路检查、服务器故障排除等。巡检完成后填写巡检登记表并留档备查。 八、托管机房的联系 应制作托管机房联系人表,对365天24*7内的机房人员、电话、...

    RED HAT LINUX 6大全

    11.6 DNS服务器配置文件 210 11.6.1 DNS引导文件:/etc/named. conf 210 11.6.2 DNS区数据文件 212 11.7 配置DNS服务器主域 215 11.7.1 添加本地域解析 215 11.7.2 添加虚拟域解析 217 11.8 授权委托 218 11.8.1 在...

    服务器运维工程师的主要职责.docx

    5、具备性能分析及运维经验,能够针对Linux服务器、MySQL数据库服务器,找到性能瓶颈及缺陷,提出优化方案;解决维护工作中的技术疑难,提出针对性的解决方案; 服务器运维工程师的主要职责全文共4页,当前为第2页。 ...

    Linux管理员指南

    DNS域名解析服务 155 12.1 DNS前身:/etc/hosts文件 156 12.2 DNS的组成部分 157 12.2.1 域和主机 157 12.2.2 子域 158 12.2.3 in-addr.arpa域 159 12.2.4 服务器类型 160 12.3 安装DNS服务器 ...

    LINUX系统管理白皮书

    本书同时收录了Linux领域两位领导人物的作品—相当于“Linux 文档项目”的一个印刷版本,展示了Linux 核心概念及其基本结构。对于面向所有主流Linux子系统的支持与管理任务,本书都进行了恰到好处的讲解。涵盖的主题...

    课程标准--网络服务器配置.pdf

    会解决排除各种软硬件故障。 6.能具备网管的岗位素养。 7.会创新和网络技术的综合应用。 (三)素质目标 1.在教学过程中通过安装与配置实践,使学生养成团队合作的职业习惯; 2.树立起自我培养良好的职业道德与...

    课程标准--网络服务器配置.doc

    能负责各种Windows网络服务器,如DC、DNS服务器、DHCP服务器、Web服务器、FTP服务 器、邮件服务器、文件服务器、流媒体服务器等的建设、管理、日常运行维护,保证所 有系统持续处于良好的工作状态。 会解决排除各种...

    《Linux系统管理》课程标准.doc

    "8 " " " "和组 " " "四 "磁盘和文件系统管理 "文件系统的挂载 "4 " "五 "网络基础 "网络的基本配置 "6 " "六 "常用服务器管理 "Web、FTP、DNS、DHCP、Ma"12 " " " "il服务 " " "七 "Linux安全设置 "文件的安全设置...

Global site tag (gtag.js) - Google Analytics