-

dns地址怎么设置
2023年4月13日发(作者:world2012官方下载)

DNS配置全文

DNS简介

在Linux中,域名服务(DNS)是由柏克莱网间名域(BerkeleyInternetName

Domain——BIND)软件实现的。BIND是一个客户/服务系统,它的客户方面称为

转换程序(resolver),它产生域名信息的查询,将这类信息发送给服务器,DNS

软件回答转换程序的查询。BIND的服务方面是一个称为named(读作

“name”“d”)的守护进程。

我们将讨论三种基本BIND配置任务:

配置BIND转换程序。

配置BIND域名服务。

建立服务器数据库文件,称为“区文件(zonefile)。

前面我们介绍过,术语“区(zone)”往往可以与单词“域(domain)”互换使

用,但这里却有一些区别,“区”是指域数据库文件,而“域”则比较通用。在

本书中,域是用域名定义的域结构中的一部分,而区则是域数据库文件中包含域

信息的集合,包含域信息的文件称为“区文件”。

DNS的作用是把IP地址转化为代表主机、网络和邮件别名的助记名。它把整个

InternetIP地址和名字空间分解为不同的逻辑组来做这项工作。每个组对它所

拥有的计算机和其他信息具有控制权。

DNS服务器的类型

BIND可以配置成以几种不同的方法运行的DNS,常见的BIND配置是唯转换程序

系统、唯高速缓存系统、主服务器和辅助服务器。

转换程序是一段要求域名服务器提供域信息的程序,在Linux系统中,它是作为

一个库程序来实现的,不是一个单独的客户程序。在唯转换程序系统中,仅使用

转换程序,并不运行域名服务器。这种系统是很容易配置的,最多只需要设置

/etc/文件。其它三个BIND配置选项都是用于named服务软件的。

唯高速缓存服务器唯高速缓存服务器(caching-onlyserver)可运行域名服务

器软件但是没有域名数据库软件。它从某个远程服务器取得每次域名服务器查询

的回答,一旦取得一个答案,就将它放在高速缓存中,以后查询相同的信息时就

用它予以回答。所有的域名服务器都按这种方式使用高速缓存中的信息,但唯高

速缓存服务器则依赖于这一技术提供所有的域名服务器信息。唯高速缓存服务器

不是权威性服务器,因为它提供的所有信息都是间接信息。

对于唯高速缓存服务器只需要配置一个高速缓存文件,但最常见的配置还包括一

个回送文件,这或许是最常见的域名服务器配置。接着才是唯转换程序配置,它

是最容易配置的。

主服务器主服务器(primarynameserver)是特定域所有信息的权威性信息源。

它从域管理员构造的本地磁盘文件中加载域信息,该文件(区文件)包含着该服

务器具有管理权的一部分域结构的最精确信息。主服务器是一种权威性服务器,

因为它以绝对的权威去回答对它域的任何查询。

配置主服务器需要一整套配置文件,包括正规域的区文件()和反

向域的区文件()、引导文件()、高速缓存()

和回送文件(),其它的配置都不需要这样一整套文件。

辅助域名服务器辅助域名服务器(secondarynameserver)可从主服务器中转

移一整套域信息。区文件是从主服务器中转移出来的,并作为本地磁盘文件存储

在辅助服务器中。这种转移称为“区文件转移”。在辅助域名服务器中有一个所

有域信息的完整拷贝,可以有权威地回答对该域的查询,因此,辅助域名服务器

也称作权威性服务器。

配置辅助域名服务器不需要生成本地区文件,因为可以从主服务器中下载该区文

件。然而其它的文件是确是需要的,包括引导文件、高速缓存文件和回送文件。

一个域名服务器可以是这类配置中的任何一种,但经常是将多种配置类型的元素

组合在一起。然而所有的系统都要运行转换程序。

DNS常用术语

DNS是一个很复杂的概念,表1列出了常用的DNS术语。

表1常用DNS术语

术语

说明

代表网络一部分的逻辑实体或组织

域名

主机名的一部分,它代表包含这个主机的域。它可以和域交换使用

主机

网络上的一台计算机

节点

网络上的一台计算机

域名服务器

提供DNS服务的计算机,它将DNS名字转化为IP地址

解析

把一个DNS服务器转化为与其相映的IP地址的过程

解析器

从域名服务器中提取DNS信息的程序或库子程序

反向解析

将给出的IP地址转化为其相映的DNS名字

欺骗

使网络看上去好象具有不同的IP地址或域名的行为

在概念上可以把DNS分为三个部分:

域名空间这是标识一组主机并提供他们的有关信息的树结构的详细说明。树上

的每一个节点都有它控制下的主机的有关信息的数据库。查询命令试图从这个数

据库中提取适当的信息。简单地说,这只是所有不同类型信息的列表,这些信息

是域名、IP地址、邮件别名和那些在DNS系统中能查到的内容。

域名服务器它们是保持并维护域名空间中的数据的程序。每个域名服务器含有

一个域名空间子集的完整信息,并保存其它有关部分的信息。一个域名服务器拥

有它控制范围的完整信息。控制的信息按区进行划分,区可以分布在不同的域名

服务器上,以便为每个区提供服务。每个域名服务器都知道每个负责其他区的域

名服务器。如果来了一个请求,它请求给定域名服务器负责的那个区的信息,那

么这个域名服务器只是简单地返回信息。但是,如果请求是不同区的信息,那么

这个域名服务器就要与控制该区的相映服务器联系。

解析器解析器是简单的程序或子程序库,它从服务器中提取信息以响应对域名

空间中主机的查询。

配置转换程序

使用DNS的第一步是在用户的计算机上配置转换程序,即让机器能够能够从DNS

服务器中获取域名解析/反解析服务。转换程序不是一个单独而明确的处理进程,

而是网络进程调用的一个标准C程序库。如果本地系统不运行named,就必须配

置本地转换程序。

转换程序控制文件/etc/

/etc/是用来控制本地转换程序的文件的设置。该文件告诉转换程序

使用哪些服务、按照什么顺序进行。该文件的字段可以用空格或制表符分隔。字

符“#”表示注释行。表2是可在中指定的选项。

表2/etc/文件的配置选项

选项

说明

order

指定按照哪种顺序来尝试不同的名字解析机制。按列出的顺序来进行指定的解析

服务。支持下面的名字解析机制:

hosts试图通过查找本地/etc/hosts文件来解析名字

bind使用DNS域名服务器来解析名字

nis使用网络信息服务(NIS)协议来解析主机名字

multi

以off和on为参数。与host查询一起使用,用来确定一台主机是否在/etc/hosts

文件中指定了多个IP地址

nospoof

如果用逆向解析找出与指定的地址匹配的主机名,对返回的地址进行解析以确认

它确实与您查询的地址相配。为了防止“骗取”IP地址,通过指定nospoofon

来允许这种功能

alert

以off和on为参数。如果打开,任何试图骗取IP地址的行为都通过syslog工

具进行记录

trim

以域名为参数。在/etc/hosts中查找名字前,trim删除这个域名。着使你只把

基本主机名放在/etc/中而不指定域名

下面这个例子是主机vlager上的/etc/文件:#/etc/

#Wehavenamedrunning,butnoNIS(yet)

orderbindhosts

#Allowmultipleaddrsmultion

#Guardagainstspoofattempts

nospoofon

#Trimlocaldomain(notreallynecessary)..

这个例子给出了域的通用解析程序配置。该解析程序首先使用DNS

然后使用/etc/hosts文件查找主机名。在解析查找中指定本地/etc/hosts文件

是一个好主意。如果由于某种原因不能使用域名服务器了,我们还可以使用主机

文件中列出的那些主机名。该机器上允许使用多个IP地址,主机通过重新解析

主机名字(从IP地址逆向查找返回的主机名字)来检查IP欺骗。

转换程序/配置文件/etc/

当配置转换程序使用BIND域名服务查询主机时,我们必须告诉转换程序使用哪

一个域名服务器。用来完成这项任务的工具就是/etc/文件。

/etc/控制转换程序使用DNS解析主机名使用的方式,它可以明确

地定义系统的配置,允许我们命名由于缺省服务器不响应而使用的备份服务器。

因此,尽管会增加系统负荷,但在某些场合使用是很受欢迎的。

/etc/是一个简单而易读的文件。在/etc/中使用的命

令,具有系统专用的形式,但一般都支持domain和nameserver两项命令。

nameserver项利用IP地址去识别让转换程序去识别查询域信息的那些服务器。

我们可以多次使用nameserver选项,可以使用多达三个域名服务器。这些名服

务器是按照它们在文件中的顺序进行查询的,如果没有接收到一个服务器的响应,就去试表中的下一个服务器,直到所有服务器试完为止(如果在

/etc/文件中设置了三个以上的域名服务器,那么,即使前三个服

务器都没有响应查询请求,Linux也不会去请求后面的服务器)。我们应该将最

可靠的域名服务器列在最前面,以便在查询时不会超时。如果文件

中不包含nameserver项,或者不存在文件,就将所有名服务器查

询发送给本地主机。然而,如果有一个文件,它包含nameserver

项,除非有一项指向本地主机,否则就不查询本地主机。在配置唯转换程序的主

机中,文件包含nameserver项,但没有一个项指向本地主机。

domain项用来定义缺省域名(主机的本地域名)。转换程序会将缺省域名挂在

任何不含点的主机名后面。例如,转换程序接收到主机名vale(它不含点),

就将其缺省域名挂接在vale后面,构成对它的查询。如果domian域中的name

值是,那么转换程序就将查询。如果没有出它,则转

换程序就试图通过getdomainname()系统调用来获得本地域名。

如果听起来让人迷惑不解的话,我们可以看看下面这个例子,这是Virtual

Brewery中的文件:#/etc/

#Ourdomain

#

#Weusevlagerascentralnameserver:nameserver191.72.1.1

在该例中,通过domain指定缺省域名,并列出一个用于解析主机名的域名服务

器。在这个例子中没有指定查寻顺序(使用search选项),因此如果要查询一

台机器的地址(如vale),解析器则首先试图查找vale,如果没找到,则查找

,然后再查找。

唯转换程序配置

配置唯转换程序是非常简单的,下面是一个唯转换程序的/etc/文

件的例子:

#/etc/

#Ourdomain

#

#Weusevlagerascentralnameserver:

nameserver191.72.1.1

#netxtryvalenamesever191.72.1.3

该配置文件告诉转换程序将所有的查询发送给主域名服务器vlager,如果失败,

就试vale。这些查询是永远不能在本地转换的。这一个简单的文

件就可以满足唯转换程序配置的全部要求。

设置域名服务器

在Linux上的域名服务是由named守护进程来执行的,named最早是为BSD向客

户机提供域名服务而开发的。named守护进程通常在系统启动时开始工作,并一

直工作到系统关闭。该进程从被称作/etc/的配置文件中获取有关信

息和将主机名映射为IP地址的各种文件。

为了运行named,只要在命令行中输入:

#/etc/rc.d/init.d/namedstart

named就会开始运行,读取文件及其定义的任何区文件并将它的进

程ID以ASCII码的形式写入/var/run/中,下载任何来自主服务器的

区文件,如果有必要的话在端口53等待DNS请求。

虽然转换程序的配置只需要一个配置文件,但是在配置named时却要使用多个文

件,一整套named配置文件如表3所示。

表3named配置文件

配置文件

说明

设置一般的named参数,指向该服务器使用的域数据库信息的源,这类源可以是

本地磁盘文件或远程服务器

指向根域名服务器

用于在本地转换回送地址

将主机名映射为IP地址

用于反向域的、将IP地址映射到主机名的区文件

在下面各节中我们将探讨如何利用其中的每一个文件去配置named。

/etc/文件

文件通常很小,只包括一些指向DNS信息源的信息。其中某些源是

本地文件,其他则是远程服务器。下面我们将看到一个需要生成的每种文件类型

的例子。

表4概括了文件中使用的各种配置语句,它提供的信息能帮助我们

了解这一些例子:

表文件的配置选项

选项

说明

Directory

指定DNS文件所在的目录。您可以重复此选项以指定几个不同的目录。可以给出

这些目录相关的文件路径名

Master

以一个域名和一个文件名为参数。此选项声明named对指定的域具有控制权,并

使named从指定的区域加载信息

Hint

为named建立高速缓存信息。以一个域名和一个文件名为参数。域名通常用“.”

指定。指定的文件包括一组称为服务器提示的记录,这些记录列出了根域名服务

器的信息

Forwarders

以一个域名服务器的列表作为参数。告诉本地域名服务器:如果它不能从它的本

地信息中解析出地址,那么就与该列表中的服务器联系

Slave

把本地域名服务器变成一个从属服务器。如果给出了此选项,那么本地服务器就

试着通过递归查询来解析DNS名字。它只把请求传递给forwarders选项行列出

的服务器中的一个

配置文件所使用的方法,是用来控制将域名服务器作为主服务器、

辅助服务器还是唯高速缓存服务器的。理解不同配置的最佳方法是讨论各种

的示例文件。

1.唯高速缓存服务器

配置唯高速缓存域名服务器是很简单的。必须有和文件,

通常也要用到文件。下面是用于唯高速缓存服务器的

文件的例子,其中以“//”开头的是注释:

//ons{

directory"/var/named";/*

*Ifthereisafirewallbetweenyouandnameserversyouwant

*totalkto,youmightneedtouncommentthequery-source*usversionsofBINDalwaysasked

*questionsusingport53,butBIND8.1usesanunprivileged

*portbydefault.*/

//query-sourceaddress*port53;

};//

//acachingonlynameserverconfig

////

//acachingonlynameserverconfig//

zone"."{

typehint;

file"";};

zone""{

typemaster;file"";

directory这一行告诉named到哪里去找寻文件。所有其后命名的文件都将是相

对于此目录的。该文件告诉named去维持一个域名服务器响应的高速缓存,并利

用文件的内容去初始化该高速缓存。该高速缓存初始化文件的名字可

以是任何名字,但一般使用/var/named/。并不是在该文件中使用一个

hint语句就能使它成为唯高速缓存配置,几乎每一种服务器的配置都要用到

cache语句,而是因为没有master和slave语句才使它成为一个唯高速缓存配

置。

但是,在我们这个例子中却有一个master语句。事实上,几乎在每一个唯高速

缓存的配置文件中都有这一个语句,它将本地服务器定义为它自己的回送域的主

服务器,并假定该域的信息存储在文件中。这个回送域是一个

域(域用于指定逆向解析,或IP地址到DNS名字解

析),它将地址127.0.0.1映射为名字localhost。转换自己的回送地址对于大

多数人都是有意义的,因为大多数的文件都包含这一项。

在大多数唯高速缓存服务器的配置文件中,这种directory、master和hint语

句是唯一使用的语句,但也可以增加其他的语句,forwarders和slave等语句

都可以使用。

2.主服务器和辅助服务器的配置

我们虚构的是举例说明主服务器和辅助服务器的基础,下面是将

vlager定义为域的主服务器的文件:

//ons{

directory"/var/named";/*

*Ifthereisafirewallbetweenyouandnameserversyouwant

*totalkto,youmightneedtouncommentthequery-source

*usversionsofBINDalwaysasked

*questionsusingport53,butBIND8.1usesanunprivileged

*portbydefault.*/

//query-sourceaddress*port53;

};//

//acachingonlynameserverconfig//

zone"."{typehint;

file"";};

zone""{

typemaster;

file"";};

zone""{

typemaster;

file"";};

zone""{

typemaster;

file"";};

上例中第一个master告诉我们这是域的主服务器。该域的数据是从

文件中加载的。在我们这个例子中,我们将文件名作

为区文件名,但也可以使用更有说明性的文字,例如,区文件的名字

使用则较好。

第三个master语句指向能将IP地址191.72.0.0映射为主机名的文件。它假定

本地服务器是反向域的主服务器,该域的数据从文件

中加载。

在上例配置中的hint语句和第二个用于回送域的primary语句我们前面在唯高

速缓存配置中已经讨论过。在这些配置中,它们的作用是相同的,而且几乎在任

何配置中都要使用它们。

辅助服务器的配置与主服务器的配置不同,它使用slave语句代替master语句。

slave语句指向用作域信息源的远程服务器,以替代本地磁盘文件。下面的

文件可以将vale配置成为域的辅助服务器://

options{

directory"/var/named";/*

*Ifthereisafirewallbetweenyouandnameserversyouwant

*totalkto,youmightneedtouncommentthequery-source

*usversionsofBINDalwaysasked

*questionsusingport53,butBIND8.1usesanunprivileged

*portbydefault.*/

//query-sourceaddress*port53;

};//

//acachingonlynameserverconfig//

zone"."{

typehint;

file"";};

zone""{

typemaster;

file"";};

zone""{typeslave;

file"";

masters{191.72.1.3;};};

zone""{

typeslave;

file"";

masters{191.72.1.3;};};

第一个slave语句是使这个服务器成为的辅助服务器。它告诉named

从IP地址为191.72.1.3的服务器中下载的信息,并将其数据保存在

/var/named/文件中。如果该文件不存在,named就创造一个,并从

远程服务器中取得区数据,然后将这些数据写入新创建的文件中。如果存在该文

件,named就要检查远程服务器,以了解该远程服务器的数据是否不同于该文件

中的数据,如果数据有变化,它就下载更新后的数据,用新数据覆盖该文件的内

容;如果数据没有变化,named就加载磁盘文件的内容,不必做麻烦的区转移工

作。

将一个数据库拷贝到本地磁盘文件中,就不必每次引导主机时都要转移区文件;

只有当数据修改时,才进行这种区文件的转移工作。

该配置文件中的下一行表示该本地服务器也是反向域的

一个辅助服务器,而且该域的数据也从191.72.1.3中下载。该反向域的数据存

储在中。

DNS数据库文件和资源记录

配置named所需的所有文件(、、和)

中的信息是以称为资源记录的形式存在的。每个资源记录都有一个类型,这个类

型说明记录的功能。这些记录都是标准资源记录,称为RR(resourcerecords)。

表5列出了最常见的资源记录类型,其余的类型很少用到,如果感兴趣的话。请

参考相应的RFC和manpage。

表5常见标准资源记录

资源记录名

记录类型

功能说明

地址A

将主机名转换为地址。这个字段保存以点分隔的十进制形式的IP地址。任何给

定的主机都只能有一个A记录,因为这个记录被认为是授权信息。这个主机的任

何附加地址名或地址映射必须用CNAME类型给出

规范名CNAME

给定一个主机的别名,主机的规范名字是在这个主机的A记录中指定的

主机信息HINFO

描述主机的硬件和操作系统

邮件交换MX

建立邮件交换器记录。MX记录告诉邮件传送进程把邮件送到另一个系统,这个

系统知道如何将它递送到它的最终目的地

名服务器NS

标识一个域的域名服务器。NS资源记录的数据字段包括这个域名服务器的DNS

名。我们还需要指定这个名字名字服务器的地址与主机名相匹配的A记录

指针PTR

将地址变换成主机名。主机名必须是规范主机名

管理开始

SOA

告诉域名服务器它后面跟着的所有所有资源记录是控制这个域的(SOA)表示授

与控制权)。其数据字段用()括起来并且通常是多行字段。SOA记录的数据字

段包含下面的项:

origin

这个域的主域名服务器的规范主机名。用点“.”结尾的绝对主机名,因此,它

不能被named守护进程修改

contact

负责维护这个域的人的电子邮件联系地址。因为@在资源记录中有特殊的意义,

所以用点“.”代替这个符号。如果负责维护的人是clfls,那么联

系地址就是

serial

这个区信息文件的版本号,它是一个整数。辅助域名服务器用它来确定这个区信

息的文件是何时改变的。每次改变信息文件时都应该使这个数加一

refresh

辅助域名服务器在试图检查主域名服务器的SOA记录之前应等待的秒数。SOA记

录不经常改变,因此可以把这个值设置为一天

retry

辅助服务器在主服务器不能使用时,重试对主服务器的请求应等待的秒数。通常,

它应该按分进行设置

expire

这是辅助服务器在不能与主服务器取得联系的情况下丢掉区信息之前应等待的

秒数,一般应该设置成30天左右

minimum

当没有指定ttl资源记录时默认的ttl值。如果网络没有太大的变化,那么这个

数可以设得很大。可以在资源记录中指定一个ttl值来代替它

为了能看懂本章中使用的配置示例文件,有必要稍微介绍以下资源记录的结构。

DNS资源记录的格式是:

[domain][ttl][class]typerdate

各个字段之间有空格或指标符分隔。表6讨论了这些字段的含义。

表6资源记录格式中的字段

字段

说明

domain

资源记录引用的域对象名。它可以是单台主机,也可以是整个域。作为domain

输入的字串除非不是以一个点结束,否则就与当前域有关系。如果该domain字

段是空的,那么该记录适用于最后一个带名字的域对象

ttl

生存时间记录字段。它以秒为单位定义该资源记录中的信息存放在高速缓存中的

时间长度。通常该字段是空字段,这表示使用SOA记录中为整个区域设置的缺省

ttl

class

指定网络的地址类。对于TCP/IP网络使用IN。如果没有给出类,就使用前一个

资源记录的类

type

标识这是哪一类资源记录

rdata

指定与这个资源记录有关的数据。这个值是必要的。数据字段的格式取决于类型

字段的内容

文件

文件中的cache语句指向一个高速缓存初始化文件,具有高速缓存

的服务器都有这样一个文件。它包含着域名服务器启动时开始创造一个域数据高

速缓存所需的信息。在cache语句中,用一个指点其根域,在文件中

至少包含根服务器的名字和地址。named的高速缓存操作是很重要的。幸运的是,

建立高速缓存的文件通常是最简单的named配置文件。

基本的文件包含根服务器的NS记录和提供根服务器地址的A记录。下

面就是基本的文件:;

;serversfortherootdomain

..

.

.

.

.

.;

;rootserversbyaddress

;

.99999999INA199.112.36.4

.99999999INA128.102.16.10

.99999999INA192.33.33.24

.99999999INA128.8.10.90

.99999999INA198.41.0.4

该记录只包含各服务器记录和地址记录。首先是一组标识根(.)域的各服务器

的NS记录,在NS记录之后,是一组为每个根服务器提供地址的A记录。虽然不

需要ttl,但习惯上每个记录的ttl是99999999(可能的最大值)。因为根服务

器是永远不会从高速缓存中删除的。

文件

文件可以将回送地址127.0.0.1转换成本地主机名,它是反向域

使用的区文件.由于所有系统都将127.0.0.1作为回送地

址,该文件实际上对于每一个系统都是相同的。下面是从vlager上获取的一个

典型的文件:;

;/var/named/eversemappingof127.0.0

;.;

@.(

.1;serial

360000;refresh:100hrs

3600;retry:onehour

3600000;expire:42days360000;minimum:100hrs

)

.1INPTRlocalhost.

其中的SOA记录的数据字段和包含主机名的NS记录是随系统不同而不同的。本

例中SOA记录将标识为开创该区的服务器,将电子邮件地址

标识为解决该区问题的联系地点(在SOA记录中,通常将电子邮

件地址中用来分隔接收者名字和主机名的@修改成一个点,其它字段则保持不

变)。很多系统甚至不包含NS记录,若要用它,就包含计算机的主机名。修改

这三个字段我们就可以在任何主机中使用这个文件。

到目前为止我们讨论的文件、和都是配置唯

高速缓存服务器和辅助服务器时所需要的文件。大多数服务器将只需要这些文

件,而且使用的这些文件在,每一个服务器上几乎都包含相同的信息。

其它的named配置文件比较复杂,但是使用这些文件的服务器数量比较少,只有

主服务器需要所有的配置文件,而每个域只有一个主服务器。

反向域文件

与文件非常类似,都包含有PTR记录,只是

将地址映射为主机名。下面是的一个例子。;

;/var/named/ersemappingofourIPaddresses

;.;

@.(

.16;serial

86400;refresh:onceperday

3600;retry:onehour

3600000;expire:42days604800;minimum:1week

)

.;brewery

.

.

.;winery

.

.

.

在这个例子中,包含了在文件中见到的相同的SOA记录。它只是为

域建立控制信息。该SOA记录的名字字段中的@是指向当前域,本例是由

示例文件中的primary定义的:

该SOA记录中的@允许primary语句去定义区文件域,vlager中每个区文件都使

用相同一个SOA记录;它总是引用正确的域名,因为所引用的都是

为特定区文件定义的域。几乎在每个区文件的开头,我们都可以看到相同的SOA

格式。请修改主机名和管理员电子邮件地址,

并在我们任何一个区文件中使用该SOA记录。

在SOA记录后面的NS记录可以该域的服务器,一般在其它任何记录有机会去修

改域名之前,将立即在SOA之后列出各域名服务器。请注意,一个空的名字字段

意味着上一个域名仍然起作用,SOA的域应用仍然有效,因为后面的NS记录中

的名字段是空的。

PTR记录在文件中占有重要地位,因为它们可以将地址转换为主机名。

在我们的例子中,PTR记录为网络191.72中的主机1.1、1.2、1.3、2.1、2.2、

2.3和2.4提供地址到名字的转换,由于它们不是以点结束,所以这些PTR记录

中名字字段的值都与当前域有关。例如,值3.1可以看作是

。PTR记录的数据数据字段中的主机名是全部限定的,

以防止它和当前域名相关。利用PTR中的信息,named就将

转换成。

文件

在文件中,把文件作为包含本地域信息的文件列出。

可以在中的primary行上为这个文件起用户想要的名字。

文件包含大部分的域信息,它可以将主机名转换成IP地址,因而A

记录占有重要的地位,而且它还包含MX、CNAME和其它的记录。该

文件和文件一样,只有主服务器才有,其它所有的服务器可从主服务

器取得信息。下面给出了一个使用多资源记录类型的文件的例子:;

;/var/named/ocalhostsatthebrewery

;;

@.(

.16;serial

86400;refresh:onceperday

3600;retry:onehour

3600000;expire:42days

604800;minimum:1week)

.;

;localmailisdistributedonvlager

INMX10vlager;

;127.0.0.1

;breweryEthernet

vlagerINA191.72.1.1

vlager-if1INCNAMEvlager

;vlagerisalsonewsserver

newsINCNAMEvlager

vstoutINA191.72.1.2

valeINA191.72.1.3;wineryEthernet

vlager-if2INA191.72.2.1

vbardolinoINA191.72.2.2

vchiantiINA191.72.2.3vbeaujolaisINA191.72.2.4

和文件一样,该文件以一个SOA记录和定义域及服务器的NS记录开

头。但文件包括的资源记录品种多于。我们根据这些记

录在示例文件中的顺序来讨论每一种记录。

该文件的第一个记录是域的SOA(授予控制权)记录。该记录的第一行以@字符

开始,@字符表示这是当前原点或域。原点由文件中相应的primary

行上列出的域定义给出。此后是代码IN和SOA,它告诉named这个资源记录使

用Internet(TCP/IP)编址并且是授予控制权记录。

这行接下来的两项是这个域的主域名服务器的规范名字,和用点代替@的电子邮

件联系人的地址。然后列出SOA记录要求的各种数据段,一行一个。

在SOA记录后,下一行是域名服务器资源记录。它列出作为

这个域的域名服务器。因为在域字段中没有列出任何域,所以假设是最后一个指

定的域,也就是在SOA记录中列出的@。而且@字符确实是本地域。这是比较容易

理解的。

MX记录为整个域定义一个邮件服务器,该记录假定vlager是域的邮

件服务器,其优先值是10。送给user@的邮件被重定向到vlager,以

便进行传送。当然,为了使vlager能够成功地传送邮件,就必须将它配置成邮

件服务器。MX记录只是整个事件中的一部分,我们将在第十一章中研究如何使

用sendmail配置邮件服务器。

该例中第一个A记录定义本地主机地址,这恰好和文件中的PTR记录

相反,它允许域中的用户输入本地主机名(localhost)并由本地服

务器将它转换为地址127.0.0.1。

接下来是定义子网brewery中的主机。第一个A记录为网关vlager定义了IP

地址,然后使用CNAME定义了vlager的别名vlager-if1,接下来又说明vlager

还是新闻服务器(news)。之后为这个域的另外两台主机:vstout和vale建立

地址记录。

然后四个A记录定义了子网winery中的四台主机的IP地址:vlager-if2、

vbardolino、vchianti和vbeaujilias。

错误查找

在配置好文件和所需的区文件之后,我们就可以启动named了。Named

通常是在系统引导时启动的,但是也可以使用下面命令启动:

#/etc/rc.d/init.d/named/restart

或:

#ndcrestart

在第一次运行这些命令时,请留意出错信息。DNS是一个很复杂的系统。用户可

能会做错很多事,并且会使系统不能正常运行。伴随DNS建立出现的许多问题都

会引起相同的结果,但起因却不同。但大多数问题是由于配置文件中的语法错误

而导致的。

确保用户的DNS配置文件中正确地指定了主机名。如果它是一个绝对主机名,要

确保它以一个原点结尾。对在SOA和CNAME记录中使用的名字要尤其小心。如果

在这里弄错了,这些资源记录会把主机名查询重定向到不存在的计算机。要确

保在改变配置文件后增加配置文件中的版本号。如果忘了,那么DNS将不能再读

取这些文件。确保为A记录输入了正确的IP地址,并检查这个地址是否与您的

/etc/hosts文件匹配。另外,确保DNS名字和IP地址与中的相应的

逆向解析信息匹配。

查找错误的最好工具是nslookup命令。使用该命令彻底检查用户的DNS服务器。

对用户的DNS数据库中的每个地址都进行定期逆向解析,以确保所有的地址和名

字都正确。

nslookup命令的使用

nslookup是检查我们的域名服务器配置的最好工具,它是由BIND软件包提供的。

它允许任何人直接查询域名服务器,对于确定服务器是否正确地运行和是否配置

得和合适是很有帮助的。

nslookup命令可以交互式的从命令行进行查询,在命令行中它可以用来查询IP

地址,例如:$nslookuphostname

这条命令要求定义在中的域名服务器查询给定主机名的IP地址(如

果有不止一个服务器,nslookup将按列在/etc/文件中的顺序选取

一个作为查询对象)。当不带任何参数时,nslookup将显示所使用的域名服务

器的信息。在“>”提示符下,我们可以输入所要请求的查询的域名;在提示符

下输入exit命令将会终止一次查询会话。默认情况下,nslookup查询A记录。

例如:$nslookup

DefaultNameServer:

Address:130.83.56.60>

NameServer:

Address:130.83.56.60

Non-authoritativeanswer:

Name:

Address:152.2.22.81>exit

但我们可以使用settype命令修改去查询另一种资源记录类型,下面的例子将

会可检查SOA记录。请注意,如果将查询类型设置成SOA。它将保持SOA不变,

不会返回默认的A型查询。如果我们需要查询A记录,则还需要使用一次settype

命令。$nslookup

DefaultNameServer:

Address:130.83.56.60>

***Noaddress(A)

NameServer:

Address:130.83.56.60

>settype=SOA>

NameServer:

Address:130.83.56.60

Non-authoritativeanswer:

origin=

mailaddr=ial=930408

refresh=28800(8hours)

retry=3600(1hour)

expire=1209600(14days)minimumttl=86400(1day)

Authoritativeanswerscanbefoundfrom:eserver=

ernetaddress=128.109.157.30>exit

同样,可以使用settype查询MX记录,或修改成专用查询类型ANY,ANY可以

用来取得指定主机的所有可用资源记录。

>settype=MX>

Non-authoritativeanswer:

ference=10,mailexchanger=

ernetaddress=152.2.22.80

Authoritativeanswerscanbefoundfrom:eserver=

ernetaddress=128.109.157.30>exit

nslookup命令的另一个应用为文件是获取当前根服务器的列表。我们

可以使用settype=NS来查询所有的根域名服务器:$nslookup

DefaultNameServer:

Address:130.83.56.60

>settyp=NS>.

NameServer:

Address:130.83.2.30Non-authoritativeanswer:

(root)nameserver=

(root)nameserver=

(root)nameserver=

(root)nameserver=

(root)nameserver=

(root)nameserver=

(root)nameserver=horitativeanswerscanbefoundfrom:

(root)nameserver=

(root)nameserver=

(root)nameserver=

(root)nameserver=

(root)nameserver=

(root)nameserver=(root)nameserver=

ernetaddress=198.41.0.4

ernetaddress=128.63.4.82

ernetaddress=192.5.25.82

ernetaddress=26.3.0.29

ernetaddress=192.33.4.12

ernetaddress=128.8.10.90

ernetaddress=128.102.16.10

ernetaddress=192.52.195.10

ernetaddress=45.13.10.121

ernetaddress=192.36.148.17

ernetaddress=192.112.36.4>exit

利用nslookup的help命令或?,我们可以得到nslookup的完整命令列表。例

如:>help

Commands:(identifiersareshowninuppercase,[]meansoptional)NAME-printinfoaboutthehost/domainNAMEusingdefaultserver

NAME1NAME2-asabove,butuseNAME2asserver

helpor?-printinfooncommoncommands;seenslookup(1)fordetailssetOPTION-setanoption

all-printoptions,currentserverandhost

[no]debug-printdebugginginformation

[no]d2-printexhaustivedebugginginformation

[no]defname-appenddomainnametoeachquery

[no]recurse-askforrecursiveanswertoquery

[no]vc-alwaysuseavirtualcircuitdomain=NAME-setdefaultdomainnametoNAME

srchlist=N1[/N2/.../N6]-setdomaintoN1andsearchlisttoN1,N2,etc.

root=NAME-setrootservertoNAMEretry=X-setnumberofretriestoX

timeout=X-setinitialtime-outintervaltoXseconds

querytype=X-setquerytype,e.g.,A,ANY,CNAME,HINFO,MX,PX,NS,PTR,SOA,TXT,WKS,SRV,NAPTR

port=X-setportnumbertosendqueryontype=X-synonymforquerytype

class=X-setqueryclasstooneofIN(Internet),CHAOS,HESIODorANY

[no]recurse-askforrecursiveanswertoquery

[no]vc-alwaysuseavirtualcircuitdomain=NAME-setdefaultdomainnametoNAME

srchlist=N1[/N2/.../N6]-setdomaintoN1andsearchlisttoN1,N2,=NAME-setrootservertoNAME

retry=X-setnumberofretriestoX

timeout=X-setinitialtime-outintervaltoXseconds

querytype=X-setquerytype,e.g.,A,ANY,CNAME,HINFO,MX,PX,NS,PTR,SOA,TXT,WKS,SRV,NAPTR

port=X-setportnumbertosendqueryontype=X-synonymforquerytype

class=X-setqueryclasstooneofIN(Internet),CHAOS,HESIODorANY

serverNAME-setdefaultservertoNAME,usingcurrentdefaultserver

lserverNAME-setdefaultservertoNAME,usinginitialserver

finger[USER]-fingertheoptionalUSERatthecurrentdefaulthostroot-setcurrentdefaultservertotheroot

ls[opt]DOMAIN[>FILE]-listaddressesinDOMAIN(optional:outputtoFILE)

-a-listcanonicalnamesandaliases

-h-listHINFO(CPUtypeandoperatingsystem)

-s-listwell-knownservices-d-listallrecords

-tTYPE-listrecordsofthegiventype(e.g.,A,CNAME,MX,etc.)

viewFILE-sortanlsoutputfileandviewitwithmoreexit-exittheprogram,^Dalsoexits

当我们使用nslookup这一工具时,我们将会发现很多有帮助的功能。

-

dns地址怎么设置

更多推荐

dns地址怎么设置