您的位置:首页 > 其它

DNS Server &Bind的配置与使用

2008-03-29 13:12 337 查看
Dns Server &Bind的配置与使用

网络发展到今天,仅仅用IP地址去标一台网络上的计算机是很难以让人接受的,人们不可能记住众多的IP地址,于是便有了域名系统,它可以利用形象的名称来标识一台网络上的计算机,这就是DNS,本章将详细介绍有关DNS的一些知识。

第一节 基础知识

本节介绍DNS的工作原理、优点等基础知识。

一、DNS简介

连接TCP/IP的每个网络接口用一个唯一的32位的IP地址来标识,但由于数字比较复杂、难以记忆而且没有形象性。因而,人们发明了用域名系统,在这种情况下,我们可以使用易于理解和较为形象的名称来标识一台计算机。在大多数情况下,数字地址和域名地址可以交替使用;但无论用数字地址还是域名进行网络应用时,网络总是以IP地址为基础来进行的。在网络进行连接前,系统必须将域名转换成IP地址。这就是DNS服务器的作用。

将域名转换成IP地址有两种常用的方法。一种较古老的方法是从一个称为"主机表"的文件中查找主机名;另一种是使用一个称为"域名服务(DNS)"的分布式数据库系统,将名字转换成IP地址。

主机表是一个简单的文本文件,可以使IP地址与主机名相关联。在Redhat Linux7.2操作系统中,主机表文件为/etc/hosts,该文件的每一列表项包含一个IP地址和用空格隔开的与该地址关联的主机名。

DNS的优点:

DNS的扩充性好。它并不单独依靠一个主机表,而是依靠一个分布式数据库系统,不会因为数据库的增长而陷入困境。

DNS可确保在必要时将新主机的信息传播到网络中的其他部分。不仅能自动地传播信息,而且可以只传播所需的信息。

? DNS的工作原理为:

如果一台DNS服务器接收到一个要求获取有关主机信息的请求,它就将该请求发送给一台管理服务器。管理服务器是负责保持查询域的精确信息的服务器。当它响应该请求时,本地服务器就将回答信息保存在高速缓存中。当本地服务器再接收到要求获取关主机信息的请求时,它本身就回答这个请求。

二、DNS服务器的类型

DNS服务器分为以下几个类型:

1."Cache-Only"DNS服务器:

一个DNS服务器也不可能拥有国际网络上所有的主机信息,因此它提供一个转送方式,将自己的DNS服务器无法处理的查询要求转送至上一层的DNS服务器上查询,然后将所得到的查询结果传送给提出查询要求的主机。而"Cache-Only"DNS就是该DNS服务器的主机里除了自己的信息就没有其它的了,它将所有的查询要求都转送至其他DNS服务器上。

2."Primary"DNS服务器:

一个功能完备的DNS服务器,管理一个或数个"Domain"(域)的计算机信息。而这些相关的资料都依照某种格式储存于服务器的档案目录中,然后会在服务器启动时将这些资料载入系统。

3."Secondary"DNS服务器:

"Secondary"DNS服务器也是一个功能完备的DNS服务器,所不同的是,它的主机资料并非完全储存于服务器所在的档案目录中,而由某个"Primary DNS"来提供。

三、DNS数据库文件几个参数的说明

DNS数据库文件有以下几个参数需要说明:

ttl

为了迫使解析器在一段时间后丢去信息,每条记录都有一个相应的"生存期",简称ttl。它的单位是秒,系统的缺省值为86400。

SOA

描述了一个授权区域,它表示了该区域的授权信息。

Serial

表示该区域文件的版本号数。每当区域文件中的数据改变时,这个数值将要增加。通常用修改的时间来表示该版本号。例如2002110501表示2002年 11月5日对该文件的第一次修改。从服务器在一定时间以后就请求主服务器的SOA记录,并将该序列号值与缓存中的SOA记录的序列号相比较,如果数值改变了,从服务器就从主服务器将整个区域的数据传输过来。

Refresh

指定了从服务器将要检查主服务器的SOA记录的时间间隔,单位为秒。

retry

它指定了从服务器的一个请求或一个区域刷新失败后,从服务器重新与主服务器联系的时间间隔,单位是秒。

expire

在指定的时间内,如果从服务器还不能联系到主服务器(主服务器宕机),从服务器将丢去所有的区域数据。

minimum

如果没有明确指定ttl的值,则minimum就是缺省的"生存期"。

A

主机记录,用于将一个主机名与一个IP地址相关联(相对应)。

NS

用来指定某个区域的主名字服务器和所有从名字服务器。一条NS记录指向一个给定区域的主名字服务器,以及包含该服务器主机名的资源记录。

CNAME

用来关联一个主机名的别名和它的规范主机名,即该记录为规范主机名提供了一个别名。

MX

指明了该区域中的邮件交换器(邮件服务器)和优先级。

第二节 实 例

一、DNS实例一

北京千喜公司现用ISDN上网,目前已能上网,但是速度稍慢,为了提高访问互联网的速度,公司网络管理员决定在Linux系统下做一台caching nameserver(域名缓存服务器)。试为该公司安装该服务器。

分析:该服务器的功能就是暂存上次访问过的域名,下次需要解析时,直接从缓存内读取结果,所以不用建立其他的区域。假设我们将服务器的IP设置为192.168.0.197。

具体操作步骤如下:

1.获取并安装DNS服务器软件。

Linux/UNIX系统内常用的DNS服务器软件为Bind,RedHat Linux7.2版本为bind-9.1.3-4,可以到http://www.isc.org/products/BIND/或ftp: //ftp.isc.org/isc/bind9/获得新版本。

如果是下载的源代码(以bind-9.2.1为例),则执行以下操作:

(1)进入源代码所在的目录。例如:/tmp。

(2)tar –zxvf bind-9.2.1.tar.gz

(2)cd bind-9.2.1

(3)./configure

make

make install

如果从RedHat Linux7.2的安装光盘安装,则:

(1)把RedHat Linux7.2的安装光盘放入光驱,执行:

mount /dev/cdrom /mnt/cdrom

(2)cd /mnt/cdrom /RedHat/RPMS

(3)rpm –ivh bind-9.1.3-4.i386.rpm

2.修改配置文件/etc/named.conf。

由于是域名缓存服务器,不用修改该配置文件,但是必须确定该配置文件内有如下字段:

zone"."{

typehint;

file"named.ca";

};

3.启动dns服务器。

/etc/rc.d/init.d/named start

为了每次开机都启动DNS服务,需要执行chkconfig --level 2345 named on。

当执行完/etc/rc.d/init.d/named start后,执行tail–f/var/log/messages命令查看系统日志时,日志内容大至应如图1所示。

图1

4.测试服务器。

(1)编辑/etc/resolve.conf,将其内容更改为(即指定DNS通过本机解析):

nameserver 127.0.0.1

(2)执行dig –x 127.0.0.1(验证本机解析是否正常)命令后,出现如图2所示的内容。

图2

(3)执行dig www.google.com(外部域名解析是否正常)命令,应出现如图3所示的内容。

图3

(5)客户端设置。只需将客户端的首选DNS服务器设置为192.168.0.197即可。

二、DNS实例二

长城医药公司申请了域名greatwall.com,现在公司的DNS服务器地址为:202.119.98.1,域名为 ns.greatwall.com,web服务器地址为:202.119.98.10,域名为www.greatwall.com,FTP服务器地址为: 202.119.98.100,域名为ftp.greatwall.com试为该公司安装一台DNS服务器。

分析:因为没有特殊要求,这是最简单的DNS服务器。只需要设置本地区域,并且能够起到缓存作用即可,而且内部通过此服务器也能解析外部的DNS地址。

具体操作步骤如下:

1.获得并安装DNS服务器软件(参看实验一的步骤1)。

2.修改配置文件,即vi/etc/named.conf。

(1)定义正解区域,在named.conf文件内插入以下内容:

zone "greatwall.com"{

type master;

file "dns.greatwall.com";

};

(2)定义反解区域,在named.conf文件内插入以下内容:

zone "98.119.202.in-addr.arpa"{

type master;

file "202.119.98";

};

3.用/etc/hosts文件解析服务器域名,在/etc/hosts文件内插入以下内容:

202.119.98.1 ns ns.greatwall.com

4.创建DNS数据库文件。

(1)创建正解数据库文件/var/named/dns.greatwall.com,其内容如下:

$TTL86400

@ IN SOA ns.greatwall.com. root.ns.greatwall.com(

199802151; serial

28800; refresh

14400; retry

3600000; expire

86400); minimum,seconds;

NS ns.greatwall.com.

ns A 202.119.98.1

www A 202.119.98.10

ftp A 202.119.98.100

. . .

. . .

. . .

(2)创建反解数据库文件/var/named/202.119.98,其内容如下:

$TTL86400

@ IN SOA ns.greatwall.com. root.ns.greatwall.com(

199802151; serial

28800; refresh

14400; retry

3600000; expire

86400); minimum

IN NS ns.greatwall.com.

1 IN PTR ns.greatwall.com.

10 IN PTR www.greatwall.com.

100 IN PTR ftp.greatwall.com.

. . .

. . .

. . .

5.启动DNS服务,/etc/rc.d/init.d/named start(参看实例一)。

6.测试DNS服务器。

(1)设置/etc/resolv.conf,即将某台客户机的DNS设置为202.119.98.1(或者将DNS服务器设置为202.119.98.1,此时服务器也当客户机):

nameserver 202.119.98.1

(2)执行dig –x 202.119.98.1命令,测试服务器是否正常。

(3)执行nslookup www.greatwall.com命令,解析内部域名地址。

(4)执行dig greatwall.com axfr命令,查看greatwall.com域的全部记录。

(5)执行nslookup www.google.com命令,解析外部域名。

到此为止,服务器已经安装完成并且能够正常运行。

三、DNS实例三

长江实业公司的内部域名服务器为192.168.10.197,域名为ns.changjiang.com,ISP的域名服务器地址为: 202.106.196.115,为了减轻内部域名服务器的负担,网络管理员决定将外部域名查询转发给ISP的服务器处理(不用cache)。试安装该服务器。

具体操作步骤如下:

1.获得并安装DNS服务器软件(参看实验一的步骤1)。

2.修改配置文件,即编辑/etc/named.conf:

(1)设置forward(转发)字段(凡是非本域的地址都发送给外部域名服务器解析):

在option字段添加下列语句,如图4所示:

forward first;

forwarders{

202.106.196.115;

};

图4

(2)定义正解区域,在named.conf文件内插入如下内容:

zone "changjiang.com"{

type master;

file "dns.changjaing.com";

};

(3)定义反解区域,在named.conf文件内插入如下内容:

zone "10.168.192.in-addr.arpa"{

type master;

file "192.168.10";

};

(4)用/etc/hosts文件解析服务器域名,在/etc/hosts内插入以下内容:

192.168.10.197 ns ns.changjiang.com

4.创建DNS数据库文件:

(1)创建正解数据库文件/var/named/dns.changjiang.com,其内容如下:

$TTL86400

@ IN SOA ns.changjiang.com. root.ns.changjiang.com(

199802151; serial

28800; refresh

14400; retry

3600000; expire

86400); minimum

IN NS ns.changjiang.com.

Ns IN A 192.168.10.197

www A 192.168.10.198

ftp A 192.168.10.1

. . .

. . .

. . .

(2)创建反解数据库文件/var/named/192.168.10,其内容如下:

$TTL86400

@ IN SOA ns.changjiang.com. root.ns.changjiang.com(

199802151;serial

28800; refresh

14400; retry

3600000; expire

86400); minimum

IN NS ns.changjiang.com.

197 IN PTR ns.changjiang.com.

5.启动DNS服务,/etc/rc.d/init.d/named start(参看实例一的步骤3)。

6.测试DNS服务器:

(1)设置/etc/resolv.conf,即将某台客户机的DNS设置为192.168.10.197(或者将DNS服务器设置为:192.168.10.197,此时服务器也当客户机):

nameserve r192.168.10.197

(2)执行dig –x 192.168.10.197命令,如图5所示,表示服务正常。

图5

再分别解析一个内部域名和一个外部域名:

解析内部域名:nslookup www.changjiang.com

解析外部域名:nslookup cn.yahoo.com

(3)确认解析外部域名是通过forward实现的。可以将/etc/named.conf内的"."(根服务器)区域屏蔽掉,如图6所示。然后重新启动服务器:/etc/rc.d/init.d/namedrestart。最后再解析外部域名:nslookup freemain.263.net

图6

四、DNS实例四

霍普公司总部有一域名服务器,各地分公司也均有自己的域名服务器,现要为该公司建立域名服务系统,且总部和各地分公司的web服务器与FTP服务器用同一台主机,公司有一台邮件服务器和一台备份邮件服务器,由于公司总部的业务不能中断,要求建立一台备份域名服务器。公司的部分资料如下:

域 名对应的IP角 色部 门

ns.hope.com140.135.10.1主域名服务器总公司

nsback.hope.com140.135.10.2备份域名服务器总公司

mail.hope.com140.135.10.3主邮件服务器总公司

mailback.hope.com140.135.10.4备份邮件服务器总公司

www.hope.com140.135.10.5Web服务器总公司

ftp.hope.com140.135.10.5FTP服务器总公司

download.hope.comftp.hope.comFTP服务器别名总公司

ns.chengdu.hope.com140.135.20.1分公司域名服务器成都分公司

www.chengdu.hope.com140.135.20.2分公司Web服务器成都分公司

ftp.chengdu.hope.com140.135.20.2分公司FTP服务器成都分公司

ns.shanghai.hope.com140.135.30.1分公司域名服务器上海分公司

ns.changchun.hope.com140.135.40.1分公司域名服务器长春分公司

ns.tianjin.hope.com140.135.50.1分公司域名服务器天津分公司

……………………

分析:由于总公司与各分公司均有自己的域名服务器,要让总公司能够解析各分公司的域名,各分公司的DNS服务器应为总公司的子域。要让各分公司能够解析出总公司的域名,可以设置转发,也可以将分公司的域名服务器的根服务器设置为总公司的服务器。

具体操作步骤如下:

一、总公司主服务器的安装。

1.获得并安装DNS服务器软件(参看实例一的步骤1)。

2.修改配置文件,即编辑/etc/named.conf:

(1)定义正解区域,在named.conf文件内插入如下内容:

zone "hope.com"{

type master;

file "dns.hope.com";

};

(2)定义反解区域,在named.conf文件内插入如下内容:

zone "10.135.140.in-addr.arpa"{

type master;

file "140.135.10";

};

3.用/etc/hosts文件解析服务器域名,在/etc/hosts内添加以下内容:

140.135.10.1 ns ns.hope.com

4.创建DNS数据库文件:

(1)创建正解数据库文件/var/named/dns.hope.com,其内容如下:

$TTL86400

@ IN SOA ns.hope.com. admin.hope.com(

199802151;serial

28800;refresh

14400;retry

3600000;expire

86400);minimum

IN NS ns.hope.com.

chengdu IN NS ns.chengdu.hope.com.

shanghai IN NS ns.chengdu.hope.com.

changchun IN NS ns.changchun.hope.com.

tianjin IN NS ns.tianjin.hope.com.

. . . .

以上为各地分公司的域名记录,即NS记录。省略号表示很多。

ns.chengdu IN A 140.135.20.1

ns.shanghai IN A 140.135.30.1

ns.changchun IN A 140.135.40.1

ns.tianjin IN A 140.135.50.1

. . . .

以上为各地分公司的DNS服务器的主机记录,它是A记录。

MX 10 mail.hope.com.

MX 20 mailback.hope.com.

以上两条为邮件服务器记录。

ns IN A 140.135.10.1

nsback IN A 140.135.10.2

mail IN A 140.135.10.3

mailback IN A 140.135.10.4

www IN A 140.135.10.5

ftp IN A 140.135.10.5

download IN CNAME ftp

. . . .

以上为总公司的主机记录和别名,即A记录和CNAME记录。

(2)创建反解数据库文件/var/named/140.135.10,其内容如下:

$TTL86400

@ IN SOA ns.hope.com. root.ns.hope.com

199802151; serial

28800; refresh

14400; retry

3600000; expire

86400); minimum

IN NS ns.hope.com.

1 IN PTR ns.hope.com.

5.启动DNS服务,/etc/rc.d/init.d/named start(参看实例一)。

6.测试DNS服务器:

(1)设置/etc/resolv.conf,即将某台客户机的DNS设置为140.135.10.1(或者将DNS服务器设置为:140.135.10.1,此时服务器也当客户机):

nameserver 140.135.10.1

(2)执行dig –x 140.135.10.1命令

二、建立各分公司的服务器(子域),下面以成都分公司为例介绍子域的建立。

1.获取并安装服务器软件。(参看实例一的步骤1)

2.用/etc/hosts文件解析DNS服务器。在/etc/hosts文件内添加如下内容:

140.135.20.1 ns ns.chengdu.hope.com

3.配置named.conf文件。

(1)在named.conf中添加转发字段:

forward first;

forwarders {

140.135.10.1;

};

(2)建立正解区域及反解区域,即在/etc/named.conf中添加如下字段:

zone "chengdu.hope.com" {

type master;

file "dns.chengdu.hope.com";

};

zone "20.135.140.in-addr.arpa" {

type master;

file "140.135.20";

};

4.创建域名数据库文件。/var/named/dns.chengdu.hope.com

文件的内容如下:

$TTL 86400

@ IN SOA ns.chengdu.hope.com. root.ns.chengdu.hope.com (

199802151; serial

28800 ; refresh

14400; retry

3600000; expire

86400); minimum

IN NS ns.chengdu.hope.com.

ns IN A 140.135.20.1

www IN A 140.135.20.2

ftp IN A 140.135.20.2

. . .

140.135.20文件的内容如下:

$TTL 86400

@ IN SOA ns.chengdu.hope.com. root.ns.chengdu.hope.com (

199802151; serial

28800; refresh

14400; retry

3600000; expire

86400); minimum

IN NS ns.chengdu.hope.com.

1 IN PTR ns.chengdu.hope.com.

5.启动DNS服务,执行/etc/rc.d/init.d/named start命令。

6.测试DNS服务器:方法与总公司的DNS服务器测试相同,这里不现赘述。

按照上面的方法,分别为其他分公司建立域名服务器。

三、总公司备份服务器的建立

1.安装服务器软件(参看实例一的步骤1)。

2.编辑/etc/named.conf文件,在该文件中添加如下内容:

zone "hope.com"{

type slave;

file "dns.hope.com";

masters {140.135.10.1;};

allow-update { none; };

};

3.修改主服务器上的/etc/named.conf文件,在其中添加如下字段:

notify-source 140.135.10.2;

并将区域"hope.com"更改为如下:

zone "hope.com"{

type master;

file "dns.hope.com";

allow-transfer {140.135.10.2;};

allow-update { none; };

};

4.重新启动服务器,即可看到/var/named目录多了文件dns.hope.com,说明从服务器配置成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: