ROS软路由论坛 ROSABC.com 网络方案网络工程交流

 找回密码
 会员注册

QQ登录

只需一步,快速开始

Linux下 DNS配置文件检查工

2014-7-11 05:49| 发布者: admin| 查看: 838| 评论: 0

摘要:   通常Linux初学者会问:Linux中有没有一个标准的配置文件格式?一句话,没有。不熟悉Linux的用户一定会感到沮丧,因为每个配置文件看起来都象是一个要迎接的新挑战。在Linux中,每个网管员都可以选择自己喜欢的配 ...

  通常Linux初学者会问:Linux中有没有一个标准的配置文件格式?一句话,没有。不熟悉Linux的用户一定会感到沮丧,因为每个配置文件看起来都象是一个要迎接的新挑战。在Linux中,每个网管员都可以选择自己喜欢的配置文件格式。DNS就是DomainNameSystem,DNS服务器可以分为三种,高速存服务器(Cache-onlyserver)、主服务器(PrimaryNameserver)、辅助服务器(SecondNameServer)。DNS的详细原理、工作流程、术语、概念,限于篇幅,这里就不说了。

  Linux下主要DNS配置文件见表一、二、三:

  表-1DNS主要配置文件

  文件名称

  中文名称

  作用

  主机的一个列表文件

  包含(本地网络中)已知主机的一个列表。如果系统的IP不是动态生成,就可以使用它。对于简单的主机名解析(点分表示法),在请求DNS或NIS网络名称服务器之前,/etc/hosts。conf通常会告诉解析程序先查看这里。

  程序控制文件

  告诉网络域名服务器如何查找主机名。(通常是/etc/hosts,然后就是名称服务器;可通过netconf对其进行更改)

  程序配置文件

  在配置程序请求BIND域名查询服务查询主机名称时必须告诉程序使用那个域名服务器和IP地址来完成这个任务。

  Linux上的域名服务由named守护进程控制,该进程从主文件:/etc/named。conf中获取信息。它包括一族将主机名称映射为IP地址的各种文件:下面是named配置文件族详细内容。

  名称

  中文名

  作用

  主文件

  设置一般的name参数,指向该服务器使用的域数据库的信息源

  根域名配置服务器指向文件

  指向根域名配置服务器,用于唯告诉缓存服务器初始化。

  用于将本地IP地址(127。0。0。1)为回送方localhost名字。

  用于将localhost名字为本地回送IP地址(127。0。0。1)。

  用户配置区的正向解析文件

  将主机名映射为IP地址的区文件。

  用户配置区的反向解析文件

  将IP地址映射为主机名称的区文件

  named。conf时DNS中的核心它的配置见表三:

  命令

  语法

  定义IP地址的访问控制清单

  定义rndc使用的控制通道

  把其他文件包含到配置文件中

  http 192.168.1.1定义授权的安全密钥

  定义日志内容和

  定义全局配置选项和缺省值

  定义远程服务器的特征

  定义一个区

  二、DNS配置文件检查工具

  可以看出Linux下DNS配置文件比较复杂,不过我们可以通过一些工具来帮助你检查DNS文件错误。

  检查DNS配置最简单的方法是使用Ping命令,直接Ping主机名称。PING是一种很好的方法,它能够决定当特定主机处于开机运行状态时,网络是否正常运行。遇到DNS问题时检查的第一项是系统和网络的状态,而且首先检查并判断存在问题的DNS服务器是否有响应。如果能够PING到DNS服务器,则能确保与DNS服务器的连接无误。如果无法PING到DNS服务器,那么很有可能系统死机了。为了这是系统问题而非网络问题,再来检测DNS连接的由器是否正常运行。为DNS排错时,应尽量使用IP地址替代DNS名称以减少由DNS服务器而不是主机产生问题的可能性。

  在Linux下配置好DNS服务器,添加了相应的记录之后,只要IP地址保持不变,一般情况下我们就不再需要去DNS的数据文件了。不过在确认域名解释正常之前我们最好是测试一下所有的配置是否正常。许多人会简单地使用ping命令检查一下就算了。不过Ping指令只是一个检查网络联通情况的命令,虽然在输入的参数是域名的情况下会通过DNS进行查询,但是它只能查询A类型和CNAME类型的记录,而且只会告诉你域名是否存在,其他的信息一概欠奉。所以如果你需要对DNS的故障进行排错就必须熟练另一个更强大的工具nslookup。

  nslookup即名称服务器查找(NameServerLookup),用来查找DNS服务器上的DNS记录。这个命令可以指定查询的类型,可以查到DNS记录的时间还可以指定使用那个DNS服务器进行解释。

  nslookup有两种运行模式:交互式和非交互式运行模式。交互式运行模式允许用户通过域名服务器检索各种主机,并可以打印出主机名称列表。非交互式运行模式用来打印所请求的某个主机或域的特定的信息。进入“nslookup”交互式运行模式,运行下面的命令:

  在使用交互模式。此时会出现提示符

  ,nslookup提供了许多可用命令。下面列举其中一些常用的详细说明。

  help命令:显示帮助信息,及一些简单的命令的作用。

  lserver命令:查找指定的域名服务器并将其设置为默认的域名服务器。

  server命令:和lserver相似,解析另一台域名服务器并将其设置为默认的服务器,不同在于本命令使用当前的默认服务器来解析。

  set命令:修改工作参数,它也是nslookup中最常用的命令。它可以包含下面的几种:

  setd2:设置详细调试模式。

  setnod2:设置为非详细调试模式。

  setdefname:设置为defname,会在所有没有加o的名字后,自动加上默认的域名。它是默认的方式。

  setport:DNS的默认端口为53,用本命令可以设置其他端口,一般用于调试。

  setq(querytype):改变查询的信息的类型。默认的类型为A纪录。

  setrecurse:设置查询类型为递归;若为setnorecurse,查询类型为跌代;缺省为前者。

  setretry:设置重试的次数。默认的值为4。

  setroot:设置默认的根服务器。

  settimeout:设置等待应答的时间(单位为秒),超出即为超时,如果还可以重试,就会将长超时值加倍,重新查询。默认的超时值为5秒。

  如果要进入nslookup非交互式运行模式,运行下面的命令:

  错误实例:

  错误原因:如果出现错误,该命令将不能启动。一般的错误都是数据库文件或配置文件笔误所至。比如少个“。”或者文件明不正确等等。另外一个主要的原因是执行nslookup的系统所使用的server(如192。168。2。1)不能查询其反解(1。2。168。192。in-addr。arpa)。

  解决方法:

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

  软件安装:

  dlint首先检查拼写错误。

  有A记录的主机名称必须有PTR(称pointer,PTR反向解析)记录。如果有A记录的主机名称没有PTR,配置文件不能通过。Dlint可以在用户配置文件中为A建立查找丢失的PTR记录。

  dint会检查in-addr。arpa区带(Zone)的每一条PTR记录是否有对应的A记录存在。

  dint会以递归的方式检查子区带(Zone),查找配置问题。

  应用实例:

  ;;后边是程序版本和解释语句,ERROR后边是Dlint对DNS配置文件的检查结果。如果没有ERROR字段表示配置正确。Dlint能检查的DNS配置文件主要错误:

  2。在BIND中的配置文件,少写了一个点(。)

  少写了一个点,看起来差不多。但是却造成了很大的问题。BIND的设定档案一定要小心的设定。要不然很可能产生很多错误。

  rndc指令是系统管理员用来管理域名服务器的操作的命令。rndc主要命令:

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

  软件安装:

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

不良信息举报Q:2000617

软路由

不良信息举报Q:2000617|Archiver|ROS软路由论坛 ROSABC.com 网络方案网络工程交流

GMT+8, 2025-4-30 22:50 , Processed in 0.209446 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部