linux dns 配置文件

  • 格式:doc
  • 大小:221.00 KB
  • 文档页数:11

通常Linux初学者会问:Linux 中有没有一个标准的配置文件格式?一句话,没有。不熟悉

Linux 的用户一定会感到沮丧,因为每个配置文件看起来都象是一个要迎接的新挑战。在

Linux 中,每个网管员都可以自由选择自己喜欢的配置文件格式。DNS就是Domain Name

System, DNS服务器可以分为三种,高速存服务器(Cache-only server)、主服务器(Primary Name server)、辅助服务器(Second Name Server)。 DNS的详细原理、工作流程、术语、概念,限于篇幅,这里就不说了。

一、Linux 下主要DNS配置文件

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

表-1 DNS主要配置文件

文件名称 中文名称 作用

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

/etc/host.conf 转化程序控制文件 告诉网络域名服务器如何查找主机名。(通常是 /etc/hosts,然后就是名称服务器;可通过 netconf对其进行更改)

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

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

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

表-3 named.conf文件的配置

命令 语法

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

control 定义rndc使用的控制通道

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

key 定义授权的安全密钥

logging 定义日志内容和位置

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

server 定义远程服务器的特征 zone 定义一个区

二、DNS 配置文件检查工具

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

ping命令

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

#ping

PING (192.168.1.1) 56(84) bytes of data

64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.420

ms

64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.374

ms

64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.372

ms

……

nslookup命令

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

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

运行nslookup需要安装bind-utils,可以使用命令查询:

#rpm –qa|grep bind-utils

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

#nslookup

在使用交互模式。此时会出现提示符"<",nslookup提供了许多可用命令。下面列举其中一些常用的详细说明。

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

exit 命令:退出nslookup命令。

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

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

set命令:修改工作参数,它也是nslookup中最常用的命令。它可以包含下面的几种: set class:设置查询的类型,一般情况下为Internet。

set debug:设置调试模式。

set nodebug:设置为非调试模式。

set d2:设置详细调试模式。

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

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

set domain:设置默认的域名。

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

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

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

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

set root:设置默认的根服务器。

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

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

#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)。

解决方法:

增加 server ip 所在的 reverse zone (如 2.168.192.in-addr.arpa),确定其中有 server

本身的反解项目。

3、 使用dlint软件检查DNS故障

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

软件下载:dlint软件主页是/dns/dlint.shtml 下载链接:/pub/dlint1.4.0.tar.gz 文件大小:22KB。

软件安装:

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

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配置文件主要错误:

1. 没有增加 SOA (start of authority) RR 的 serial 值