• 沒有找到結果。

8.5.1 DNS 概述

在 Internet 上浏览网站时,使用的大都是便于用户记忆的称之为主机名的友好名字。例如,

搜狐的主机名为 www.sohu.com,用户在访问搜狐的时候一般用 www.sohu.com 访问,而很少 有人使用其 IP 地址去访问。用户计算机使用 www.sohu.com 访问时,要先设法找到该服务器 相应的 IP 地址,客户与服务器之间仍然是通过 IP 地址进行连接的。用于存储该 Web 域名和 IP 地址并接受客户查询的计算机,称为 DNS 服务器。

DNS 是 Internet 和 TCP/IP 网络中广泛使用的、用于提供名字登记和名字到地址转换的一 组协议和服务。DNS 服务免除了用户记忆枯燥的 IP 地址的烦恼,可以使用具有层次结构的“友 好”的名字来定位本地 TCP/IP 网络和 Internet 上的主机及其他资源。

DNS 通过分布式名字数据库系统,为管理大规模网络中的主机名和相关信息提供了一种 可靠的方法。DNS 的命名系统是一种叫做域名空间(Domain Name space)的层次性的逻辑树 形结构,其犹如一棵倒立的树,树根在最上面。域名空间的根由 Internet 域名管理机构 InterNIC 负责管理。InterNIC 负责划分数据库的名字信息,使用名字服务器(DNS 服务器)来管理域 名,每个 DNS 服务器中有一个数据库文件,其中包含了域名树中某个区域的记录信息。Internet 将所有联网主机的名字空间划分为许多不同的域。树根(也称根域)下是顶级域(或称一级),

再往下是二级、三级域。

DNS 域名是按组织来划分的,Internet 中最初规定的一级域名有 7 个,其中 com 代表商业 机构,edu 代表教育机构,mil 代表军事机构,gov 代表政府部门,net 代表提供网络服务的部 门,org 代表非商业机构,xx 代表国家或者地区。此外,ICANN 还在 2000 年新增了 7 个域名,

分别是 info(提供信息服务的单位)、biz(公司)、name(个人)、Pro(专业人士)、museum

(博物馆)、coop(商业合作机构)和 aero(航空业)。

一般情况下,域名可以向提供域名注册服务的网站进行在线申请。例如,可以到中国互 联网络信息中心(CNNIC)的网站 http://www.cnnic.net.cn 查看并注册域名。企业如果需要部 署自己的 DNS 服务器、需要安装 Active Directory,或希望 Internet 用户对企业内部计算机进 行访问时,必须架设 DNS 服务器。

DNS 客户端向 DNS 服务器提出查询,DNS 服务器作出响应的过程称为域名解析。DNS 域名的解析方式有以下两种。

(1)正向查询。正向查询就是根据域名,搜索出对应的 IP 地址,其查询方法为:当 DNS 客户机(也可以是 DNS 服务器)向首选 DNS 服务器发出查询请求后,如果首选 DNS 服务器 中不含所需的数据,则会将查询请求转发给另一台 DNS 服务器,依此类推,一直找到所需的 数据为止,如果到最后一台 DNS 服务器中也没有所需的数据,则通知 DNS 客户机查询失败。

(2)反向查询。反向查询与正向查询刚好相反,它是依据 DNS 客户端提供的 IP 地址,

来查询该 IP 地址对应的主机域名。实现反向查询,必须在 DNS 服务器内创建一个反向查询的 区域。一旦创建的区域进入 DNS 数据库中,就会增加一个指针记录,将 IP 地址与相应的主机 名相关联。换句话说,当查询 IP 地址为 192.168.1.1 的主机名时,解析程序将向 DNS 服务器 查询 1.1.168.192.in-addr.arpa 的指针记录。如果该 IP 地址在本地域之外,DNS 服务器将从根开 始顺序地解析节点,直到找到 1.1.168.192.in-addr.arpa。当创建反向查询区域时,系统会自动 为其创建一个反向查询区域文件。

8.5.2 DNS 服务器的安装

Red Hat Linux 9 自带有版本号为 9.2.1 的 BIND(Berkeley Internet Name Domain)服务器 软件,它是目前使用最广泛的域名服务器软件,使用 named 守护进程提供域名解析服务。BIND 软件是由 Nominum 公司开发,由 ISC(Internet Software Consortium)负责维护,其最新软件 包采用源代码方式发布,可访问 http://www.isc.org/products/blnd/网站下载。

第 1 张安装光盘提供了 BIND 服务的主要安装软件包 bind-9.2.1-16.1386.rpm,另一部分与 DNS 相关的实用程序(dig、host、nslookup 和 nsupdate)由 bind-utils-9.2.1-16.i386.rpm 软件包 提供。BIND 的主配置文件(named.conf)、本地域文件和根域文件(named.ca)等重要配置文 件,则由第 2 张安装光盘中的 caching-nameserver-7.2-7.noarch.rpm 软件包提供。在配置 DNS 服务器之前,应首先检查当前 Linux 系统是否安装了 BIND 软件包。

[root@rh9 root]# rpm -ivh bind/bind-utils-9.2.1-16.i386.rpm

warning: bind-utils-9.2.1-16.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e Preparing... ########################################### [100%]

1:bind-utils ########################################### [100%]

[root@rh9 root]# rpm -ivh /bind-9.2.1-16.i386.rpm

warning: bind-9.2.1-16.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e Preparing... ########################################### [100%]

1:bind ########################################### [100%]

[root@rh9 root]# rpm -ivh caching-nameserver-7.2-7.noarch.rpm warning: caching-nameserver-7.2-7.noarch.rpm: V3 DSA signature:

NOKEY, key ID db42a60e

Preparing... ###################################### [100%]

1:caching-nameserver ####################################### [100%]

[root@rh9 root]# rpm -ivh redhat-config-bind-1.9.0-13.noarch.rpm

warning: redhat-config-bind-1.9.0-13.noarch.rpm: V3 DSA signature: NOKEY, key ID db42a60e Preparing... ######################################### [100%]

1:redhat-config-bind ######################################### [100%]

BIND 软件包安装后,系统将创建名为 named 的用户和用户组,并自动设置相关目录的权 属关系。named 守护进程默认使用 named 用户身份运行。

[root@rh9 root]# grep named /etc/passwd named:x:25:25:Named:/var/named:/sbin/nologin [root@rh9 root]# grep named /etc/group named:x:25:

BIND 的主配置文件为 named.conf,默认位置在/etc 目录,默认的工作目录为/var/named,

相关的主要实用程序默认安装在/usr/sbin 目录中。bind-utils-9.2.1-16.i386.rpm 软件包提供的实 用程序默认安装在/usr/bin 目录中。

检查 BIND 的样本配置文件和区文件是否安装。检查/etc/目录下是否有 named.conf 文件,

/var/named 目录下面是否有本地域文件和根域文件,若都没有则说明软件包 caching-nameserver- 7.2-7.noarch.rpm 未安装。对于一个新的软件包,若不知其安装位置,可通过查询其安装文件 的列表来获知。

8.5.3 DNS 服务器的配置文件

BIND 的配置文件包括主配置文件/etc/named.conf、根域文件(named.ca)、区域文件以及 用于管理 BIND 守护进程的 rndc 程序的配置文件/etc/rndc.conf。根域文件 named.ca 用于提供 位于顶层根域名服务器的列表。

named.ca、rndc.conf 和用于保存密钥的 rndc.key 文件,在安装好 BIND 软件包后就已提供,

用户一般不需要编辑或修改,配置 DNS 服务器主要是对 named.conf 和区域文件进行编辑和修改。

1./etc/named.conf

/etc/named.conf 是 BIND 中最重要的配置文件,在该文件中除了设置的一些参数外,同时 也会指出该服务器管辖的区域域名和相关文件的存放位置。

该配置文件为文本文件,由若干配置段构成,每个配置段由若干语句构成,语句以分号 作为结束符,行注释可使用“#”或“//”,对一段文字的注释采用/* … */。下面是该文件的 内容以及说明。

[root@rh9 root]# more /etc/named.conf

# named.conf - configuration for bind

#

## Generated automatically by redhat-config-bind, alchemist et al.

# Any changes not supported by redhat-config-bind should be put

# in /etc/named.custom

#

controls {

inet 127.0.0.1 allow { localhost; } keys { rndckey; };

};

//controls 类型的记录,其中的“inet”表示利用 TCP/IP Socket 来访问 Internet 资源,它是由指定的 IP 地 址和端口号所产生,而此处表示可允许本机(localhost)利用 rndckey 进行访问。

include "/etc/named.custom"

//表示将文件/etc/named.custom 包含到该文件中。

include "/etc/rndc.key";

//表示将文件/etc/rndc.key 包含到该文件中。

zone "0.0.127.in-addr.arpa" { type master;

file "0.0.127.in-addr.arpa.zone";

allow-update{none; } };

//zone 类型的记录,用来定义一个 DNS 区域。其中,“0.0.127.in-addr.arpa”表示此区域是用来定义本机 所在的网域的反向解析内容,而它是属于“IN”(Internet)的区域类别(Class),同时此区域中服务器的种类 是“master”,使用 0.0.127.in-addr.arpa.zone 文件记录此区域的名称记录。“allow-update{none; }”表示不允许 客户端或服务器自己更新此 DNS 记录。

zone "localhost" IN{

type master;

file "localhost.zone";

allow-update{none; } };

//zone 类型的记录,用来定义一个 DNS 区域。其中,“localhost”表示此区域是本机所在的网域,而它是

属于“IN”(Internet)的区域类别(Class),同时此区域中服务器的种类是“master”,使用 localhost.zone 文件

记录此区域的名称记录。“allow-update{none; }”表示不允许客户端或服务器自己更新此 DNS 记录。

};

2./etc/named.custom

配置 DNS 服务器一般需要手工修改配置文件,在 Red Hat Linux 9 中,也提供了图形配置 工具(redhat-config-bind),使用该工具配置完 BIND 后系统会自动修改相应的配置文件。在该 配置文件中的相应选项不能够通过图形界面下的配置工具进行修改。

[root@rh9 root]# more /etc/named.custom

## named.custom - custom configuration for bind

#

# Any changes not currently supported by redhat-config-bind should be put

# in this file.

#

zone "." IN { type hint;

file "named.ca";

};

options 类型的记录,用来定义这台 DNS 服务器中的通用选项。“directory "/var/named/"”

表示将 DNS 服务器的资源记录保存在/var/named 目录下,包括 DNS 日志记录等。

3./etc/rndc.key

这个文件是 BIND 9.X 版的新功能,它可以用来进行区域转移或 DNS 更新时的加密处理。

以下是该文件的默认内容。

[root@rh9 root]# more /etc/rndc.key key "rndckey" {

algorithm hmac-md5;

secret "A6pglMPu7IhxspmoUcOfChpTV274wCzqOFxJlvhIyHPpR10EidcGdst9tLmp";

};

4./var/named/named.ca

在 DNS 的域名解析流程中,如果 DNS 服务器的数据库中没有包含请求的记录,那么此 服务器就会通过 Internet 的根服务器进行逐级查询。而根服务器的相关信息就记录在 named.ca

中,因此它是 DNS 中一个很重要的文件。

根服务器的地址一般不会发生多大的变化,但部分根服务器地址发生变化是有可能的,

另外也可能添加了新的根服务器,因此,更新根服务器的最新地址列表对 DNS 服务器的正常 解析是很有必要的,可以到ftp://rs.internic.net/domain/named.root下载最新的文件,改名为 named.ca 并复制到/var/named/目录下。以下是 Red Hat Linux 9 中该文件的默认内容。

[root@rh9 root]# more /var/named/named.ca

; This file holds the information on root name servers needed to

; formerly NS.INTERNIC.NET

;

. 3600000 IN NS A.ROOT-SERVERS.NET.

A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4

;

; formerly NS1.ISI.EDU

;

. 3600000 NS B.ROOT-SERVERS.NET.

B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107

;

; formerly C.PSI.NET

;

. 3600000 NS C.ROOT-SERVERS.NET.

C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12

;

; formerly TERP.UMD.EDU

;

. 3600000 NS D.ROOT-SERVERS.NET.

D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90

;

; formerly NS.NASA.GOV

;

. 3600000 NS E.ROOT-SERVERS.NET.

E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10

;

; formerly NS.ISC.ORG

;

. 3600000 NS F.ROOT-SERVERS.NET.

F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241

;

; formerly NS.NIC.DDN.MIL

;

. 3600000 NS G.ROOT-SERVERS.NET.

G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4

;

; formerly AOS.ARL.ARMY.MIL

;

. 3600000 NS H.ROOT-SERVERS.NET.

H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53

;

; formerly NIC.NORDU.NET

;

; housed in LINX, operated by RIPE NCC

;

; housed in Japan, operated by WIDE

;

(1)3600000。表示 TTL,也就是说此记录在缓存中停留的时间为 3600000 秒,相当于 1000 个小时。

(2)IN。表示此服务器记录为 Internet 的区域类型。

(3)NS。是 Name Server 的缩写,它是 DNS 资源记录的一种。

(4)A.ROOT-SERVERS.NET.。是根网域 DNS 服务器的主机名称。

虽然我们利用“NS”来指定这些根服务器的主机名(同时也表示它们都是域名服务器),

但是其他的 DNS 服务器必须知道它们的 IP 地址才可以与它们进行沟通。为了解决这个问题,

相關文件