位置:海鸟网 > IT > linux/Unix >

LINUX学习笔记:DNS服务器设置篇

前言:半个月前开始安装、学习REDHATLINUX7.0。作为一个Linux新手,不可避免的遇上了一些问题,通过翻阅书籍资料,查看BBS,自己的摸索实践,也解决了一些问题。

想到自己的经验教训可供他人借鉴,于是大胆写出来,一来可以当作学习笔记保存,二来希望对刚刚接触Linux的朋友有所帮助。由于本人能力所限,笔记中有所疏漏不足也在所难免,还请各位高手海涵。

一、DNS简介

DNS就是DomainNameSystem,它能够把形如(深圳之窗)这样的域名转换为202.96.134.163这样的IP地址;没有DNS,浏览深圳之窗这个网站时,就必须用202.96.134.163这么难记的数字来访问。提供DNS服务的那台电脑,就是DNS服务器。

DNS服务器可以分为三种,高速缓存服务器(Cache-onlyserver)、主服务器(PrimaryNameserver)、辅助服务器(SecondNameServer)。

DNS的详细原理、工作流程、术语、概念,限于篇幅,这里就不说了。可以阅读专门的文章,如DNS-HOWTO加以了解。

二、设置目标

一台RedHatLinux7.0的电脑,IP是10.0.0.39,主机名是netfinity.zrs.com。所处的局域网已有一台DNS服务器,地址是10.0.0.211,负责解析baoan.gov.cn这个域。现在要在10.0.0.39上配置一台DNS服务器,让它负责zrs.com这个域的解析工作,同时也作为baoan.gov.cn域的辅助DNS服务器。所有相关文件的压缩包可以从这里下载。

  三、配置本机为ZRS.COM域的主DNS服务器

Linux下的dns功能是通过bind软件实现的。bind软件安装后,会产生几个固有文件,分为两类,一类是配置文件在/etc目录下,一类是dns记录文件在/var/named目录下。加上其他相关文件,共同设置dns服务器。下面是所有和dns设置相关文件的列表与说明。

第一类:位于/etc目录下的有:hosts,hosts.conf,resolv.conf,named.boot,named.conf。

1、“hosts”文件,定义了主机名和ip地址的对应,其中也有将要运行dns这台电脑的ip地址和主机名。内容:

127.0.0.1localhost.localdomainlocalhost
10.0.0.39netfinity.zrs.comnetfinity
2、“hosts.conf”文件,"orderhostsbind"语句,指定了对主机名的解析顺序是先到hosts中查找,然后到dns服务器的记录里查找。“multion”则是允许一个主机名对应多个ip地址。内容:
orderhosts,bind
multion
nospoofon
3、“resolv.conf”文件,“nameserver10.0.0.211”指定了dns服务器的地址。注意,这个文件对普通非dns服务器的电脑(非windows的系统;Windows系统是在“网络属性”中设置这项的)来说,是必不可少的。你如果没有设置本机为dns服务器,你又要能够解析域名,就必须指定一个dns服务器的地址。你可以最多写上三个地址,作为前一个失败时的候选dns服务器。“domainzrs.com”指定默认的域。文件内容:
domainzrs.com
nameserver10.0.0.39
4、“named.boot”文件是早期版本的bind软件使用的配置文件,现在新版本中已经让位于“named.conf”。named.conf是dnsserver配置的核心文件。下面我们一段一段的来解说。

//generatedbynamed-bootconf.pl

options{
directory"/var/named";
/*
*Ifthereisafirewallbetweenyouandnameserversyouwant
*totalkto,youmightneedtouncommentthequery-source

*directivebelow.PreviousversionsofBINDalwaysasked
*questionsusingport53,butBIND8.1usesanunprivileged
*portbydefault.
*/
//query-sourceaddress*port53;
};

//
//acachingonlynameserverconfig
//

zone"."IN{
typehint;
file"named.ca";
};

zone"0.0.127.in-addr.arpa"IN{
typemaster;
file"named.local";
allow-update{none;};
};

这一部分是你安装了bind软件后系统自动产生的named.conf文件的原始内容。“directory”指定了dns记录文件的存放目录是/var/named。“//”开头的文字是说明文字,不用管它。接着的两个“zone”语句定义了dns服务器的根和对应的反向查询域,并指出根的记录文件是“name.ca”,根的反向查询域的记录文件是“named.local”。这两个记录文件也是系统自带的,不用去改动它。named.conf文件的这一部分内容,我们不必去改动它。
但我们可以在“diretory”下添加一行:forwarders{202.96.134.133;}。202.96.134.133是我这里电信的dns服务器的地址,forwarders参数指明了其后的ip所在的服务器作为备选的dns服务器。也就是说,把本机的dns不能解析的主机发送到这个备选的dns服务器上,让它来进行解析。

zone"zrs.com"IN{
typemaster;
file"named.zrs.com";
allow-update{none;};
};
zone"0.0.10.in-addr.arpa"IN{
typemaster;
file"named.zrs.com.rev";
allow-update{none;};
};


这一部分是手工添加的。定义了“zrs.com”这个域和对应的反向查询域。“typemaster”说明本机是“zrs.com”和“0.0.10.in-addr.arpa”这两个域的主dns服务器(primarynameserver)。“named.zrs.com”和“named.zrs.com.rev”是域的记录文件。这两个文件也是自己创建的,下面我们就来看看这两个文件。

第二类:资源记录文件,位于/var/named目录下。这个目录是named.conf中定义的。
1、named.zrs.com文件内容如下:

@INSOAnetfinity.zrs.com.root.netfinity.zrs.com.(
1997022700;Serial
28800;Refresh
14400;Retry
3600000;Expire
86400);Minimum
INNSnetfinity.zrs.com.
INMX10netfinity.zrs.com.

netfinityINA10.0.0.211
lilyINA10.0.0.139
wwwINCNAMEnetfinity.zrs.com.
pop3INCNAMEnetfinity.zrs.com.
smtpINCNAMEnetfinity.zrs.com.