DNS服务器

第25章 DNS服务器第25章 DNS服务器25.1 Internet的域名管理25.1.1 概述当用户与Internet 上的某个主机通信时,IP 地址的“点-分”十进制表示方法虽然简单,但当

第25章 DNS服务器

第25章 DNS服务器

25.1 Internet的域名管理

25.1.1 概述

当用户与Internet 上的某个主机通信时,IP 地址的“点-分”十进制表示方法虽然简单,但当要与多个Internet 上的主机进行通信时,单纯数字表示的IP 地址非常难以记忆,能不能用一个有意义的名称来给主机命名呢? 于是就产生了“名称-IP 地址”的转换方案,这样有助于记忆和识别。只要用户输入一个主机名,计算机就会很快地将其转换成机器能识别的二进制IP 地址。例如:Internet 或Intranet 的某一个主机,其IP 地址为192.168.0.1,按照这种域名方式可用一个有意义的名字“www .myweb .com ”来代替。

早在ARPANET 时代,整个网络仅有数百台计算机,这时使用了一个叫做Hosts 的文件,在其中列出了所有主机名和IP 地址的一个映射表。Hosts 文件是一个纯文本文件,可用文本编辑器来处理。

但Hosts 文件的应用也存在许多的不足,而且它仅适用于小型网络。因为如果是在大型网络中应用Hosts 文件,那么就必须将所有主机的IP 地址及所对应的主机名都输入到Hosts 文件中,并且还要求每一台上网的主机都要拥有这样一个Hosts 文件,可以想象,这是非常复杂的操作而且很难保证各主机的Hosts 文件统一。另外,更可怕的是更新问题,当主机与IP 地址的对应关系发生变化时,每台主机的Hosts 文件也都必须随之更改,只有这样才能保持对应关系的一致性。

Hosts文件正是由于上面所述的种种不足,从而引出另一种解决方式――域名系统(DNS),并且得到了广泛的应用。域名系统是一种基于分布式的数据库系统,并采用客户/服务器模式进行主机名称与IP 地址之间的转换。通过建立DNS 数据库,记录主机名称与IP 地址的对应关系,并驻留在服务器端为处于客户端的主机提供IP 地址的解析服务。例如,本地主机为host1.sdu.edu.cn ,要与其进行通信的目的主机为host2.sdu.edu.cn ,若两台主机处于一个网络段时,本地主机会向本网络段的DNS 服务器询问目的主机的IP 地址,DNS 服务器就可以直接从数据库中读取host2.sdu.edu.cn 的IP 地址,然后传送给本地主机。若两个主机属不同的网络段,则当本地主机向DNS 服务器询问目的主机的IP 地址时,由于该DNS 服务器中没有该目的主机的IP 地址,所以该DNS 服务器就向外网络段的DNS 服务器发出IP 地址解析请求。这样DNS 服务器使大量地址解析工作在本地进行,仅有少量的映射需要在Internet 上通信,而且DNS 服务器也是可靠的,即使某个提供DNS 服务的计算机出现故障,也不会妨碍系统的 - 389 -

,

第25章 DNS服务器

正常运行。这种主机名到IP 地址的映射是由若干个DNS 服务器程序完成的。 DNS 服务器程序在专设的结点上运行,因此,人们也把运行DNS 服务器程序的计算机称为域名服务器。

25.1.2 DNS域名结构

在广域网发展的初期,也就是在Internet 还未形成规模以前,主要是通过在网络中发布一个统一的Hosts 主机文件,就可以完成所有的主机查找,而当Internet 的规模越来越大以后,这种使用主机文件查找主机的方法就很难适应了。主要原因一个是维护和更新困难,另一个是使用非等级的名字结构,虽然其名字简短,但当Internet 网络上的用户数急剧增加时,由于要控制主机不能重名,所以用非等级名字空间来管理一个经常变化的名字集合是非常困难的。因此,Internet 后来采用了层次树状结构的命名方法――DNS 域名服务,就像全球邮政系统和电信系统一样。例如,一个电话号码是086-027-33445566,在这个电话中包含着几个层次:086表示中国,区号027表示武汉市,33445566又表示该市某一个电话分局的某一个电话号码。同样,Internet 也采用类似的命名方法,这样任何一个连接在Internet 上的主机或路由器,都有一个惟一的层次结构名字(即域名) 。这里的“域”(Domain)是名字空间中一个可被管理的划分。域名只是个逻辑上的概念,并不反映计算机所在的物理地点。

DNS 数据库的结构如同一棵倒过来的树,它的根位于最顶部,紧接着在根的下面是一些主域,每个主域又进一步划分为不同的子域。由于InterNIC 负责管理世界范围的IP 地址分配,顺理成章也就管理着整个域结构,整个Internet 的域名服务都是由DNS 来实现的,与文件系统的结构类似,每个域都可以用相对的或绝对的名称来标识,相对于父域来表示一个域可以用相对域名,绝对域名指完整的域名,主机名指为每台主机指定的主机名称,带有域名的主机名叫全称域名。

图26-1 域名机构

- 390 -

,

第25章 DNS服务器

如图26-1所示,这是整个Internet 的域结构图。最高层次是顶级域又叫主域,它的下面是子域,子域下面可以有主机,也可以再分子域,直到最后是主机。要在整个Internet 上来识别特定的主机,必须用全称域名,例如:www.microsoft.com 。

顶级域名常见的有两类:

(1) 国家级顶级域名。例如:

CN 表示中国;UK 表示英国;AU 表示澳大利亚等

(2) 通用的顶级域名。例如:

● COM:商业机构;

● EDU:美国教育机构:

● NET:网络管理机构;

● ORG:社会团体;

● MIL:美国军队部门;

● GOV:美国政府部门。

由于Internet 上用户的急剧增加,现在又增加了七个通用的顶级域名,即: ● FIRM:表示公司企业;

● SHOP:表示销售公司和企业;

● WEB:表示突出万维网活动的单位;

● ARTS:表示突出文化、娱乐活动的单位;

● REC:表示突出消遣、娱乐活动的单位;

● INFO:表示提供信息服务的单位;

● NOW:表示个人。

在国家顶级域名下注册的二级域名均由该国家自行确定。我们国家将二级域名划分为“类别域名”和“行政区域名”两大类。其中,类别域名6个,分别是:

● AC:表示科研机构;

● COM:表示工、商、金融等企业;

● EDU:表示教育机构;

● GOV:表示政府部门;

● NET:表示互联网络、接入网络的信息中心和运行中心;

● ORG:表示各种非赢利性组织。

行政区域名34个,适用于我国的省、自治区、直辖市。例如:bj 为北京市:sh 为上海市;hb 为湖北省等。

25.1.3 DNS域名解析的工作原理

在上面介绍了域的概念和域的层次结构之后,就可以进一步了解DNS 的工作原理和工作过程,DNS 的工作原理及过程分以下几个步骤:

(1)DNS客户机提出域名解析请求,并将该请求发送给本地的域名服务器。 - 391 -

,

第25章 DNS服务器

(2)当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该记录项,则本地的域名服务器就直接把查询的结果返回。

(3)如果本地的缓存中没有该记录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。

(4)本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该记录,则返回相关的下级域名服务器的地址。

(5)重复第四步,直到找到正确的记录。

(6)本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。

下面举一个例子来详细说明解析域名的过程。假设DNS 客户机如果想要访问站点www.sdu.edu.cn ,此客户本地的域名服务器是dns.1bliubing. com ,一个根域名服务器是dns.inter.com ,所要访问的网站的域名服务器是dns.sdu.edu.cn ,域名解析的过程如下所示:

(1)客户机发出请求解析域www.sdu.edu.cn 的报文。

(2)本地的域名服务器收到请求后,查询本地缓存,假设没有该记录,本地域名服务器dns.1bliubing.com 则向根域名服务器dns.inter.com 发出请求解析域名www.sdu.edu.cn 。

(3)根域名服务器dns.inter.com 收到请求后查询本地记录得到如下结果:

sdu.edu.cn NS dns.sdu.edu.cn

表示sdu.edu.cn 域中的域名服务器为:dns.sdu.edu.cn ,同时给出d ns.sdu.edu.cn 的地址,并将结果返回给域名服务器dns.1bliubing.com 。

(4)域名服务器dns.1bliubing.com 收到回应后,再发出请求解析域www.sdu.edu.cn 的报文。

(5)域名服务器dns.sdu.edu.cn 收到请求后,开始查询本地记录,找到如下一条记录:

www.sdu.edu.cn A 202.194.3.12

表示sdu.edu.cn 域中域名服务器dns.sdu.edu.cn 的IP 地址为:211. 85.192.8,并将结果返回给客户本地域名服务器dns.1bliubing.com 。

(6)客户本地域名服务器将返回的结果保存到本地缓存,同时将结果返回给客户机。

这样就完成了一次域名解析过程。

25.2 DNS服务器的启动与停止

在Red Hat Linux 9系统中,DNS 服务器采用的是BIND 域名服务器。在这节的DNS 服务器配臵中,主要完成的任务是把host.example.com 域名通过DNS 服务器转换成对应的IP 地址,其值为202.198.100.1。 - 392 -

,

第25章 DNS服务器

在进行DNS 服务器配臵之前,首先要检查系统中是否安装了BIND 域名服务器,检查的方法可使用下面的命令:

#rpm –qa|grep bind

可使用下面的命令来对BIND 域名服务器进行启动和停止。 #service named start

#service named stop

#service named restart

25.3 DNS服务器的图形化工具配置

在Red Hat Linux 9中,提供了一种Bind 配臵工具来对DNS 服务器进行相应的配臵。但要运行Bind 配臵工具必须要有X 窗口系统和根的访问权限。要启动Bind 配臵工具,可使用以下两种方法:

(1)单击面板上的“主菜单一系统设臵一服务器设臵一域名服务”,打开如图26-2所示的对话框。

(2)在Shell 提示(如XTerm 或GNOME 终端) 下,键入

redhat-config-b ind 命令。

图26-2 域名服务设置对话框

Bind 配臵工具把默认的区块目录配臵成/var/named。所有指定的区块文件都是相对于该目录所言。 Bind配臵工具还包括对输入值的基本语法检查。例如,如果一个合法的项目应该是IP 地址,那么只被允许在文本区域中键入数字和点(.)字符。

Bind 配臵工具允许添加一个正向主区,一个逆向主区和一个从区。添加了这些区块后,就可以从主窗口中编辑或删除它们,如图26-2所示。 - 393 -

,

第25章 DNS服务器

图26-3 选择设置区块的类型

添加、编辑、删除某区之后,必须单击“保存”按钮或选择“文件→保存”来写入/etc/named.conf配臵文件和/var/named目录中的每个区块文件。应用这些改变还会令named 服务重新载入配臵文件。选择“文件→退出”会在退出文件前保存所做的改变。

25.3.1 正向主区块配置

正向主区块配臵主要的作用是进行从域名到IP 地址的转换。其设臵步骤如下:

(1)单击图26-2中的“新建”按钮,打开如图26-3所示的窗口。

(2)在图26-3中,选择正向主区块,并在“域名”后的文本框中输入所需要设臵转换的域名。本书由于要实现host.example.com 到202.198.100.1之间的转换,所以此处输入的域名是“example.com ”。输入完正确的域名后,单击“确定”按钮,打开如图26-4所示的对话框。

图26-4 名称到IP 地址的转换设置

- 394 -

,

第25章 DNS服务器

(3)在图26-4中,各文本框所输入的内容说明如下:

● 名称:在前一个窗口中输入的域名。

● 文件名:DNS 数据库文件的文件名。

● 联系:主区的主要电子邮件联系地址。

● 主名称服务器(SOA):授权状态(SOA)记录,指定最适合的域信息名称服务器。

● 序列号码:DNS 数据库文件的序列号码。在每次文件发生改变时,这个号码都应该向前递增,因此该区块的次名称服务器就能够检索到最新的数据。Bind 配臵工具在每次配臵发生改变时都会递增该号码。

● 时间设臵:存储在DNS 数据库文件中的刷新、重试、过期和最小TTL 值(活跃时间) 。所有值都以秒为单位。

● 记录:增加、编辑和删除关于主机、别名和名称服务器之类的资源记录。

在本例中,在主名称服务器(SOA)后的文本框中输入“example.com. ”,特别强调,这个文本框所输入的域名名称一定要用“. ”结束。在图26-4中单击“增加”按钮,来添加computer 主机,打开如图26-5所示的对话框。

图26-5 添加一条记录

(4)在图26-56中的主机名后的文本框输入“host ”,这是本例中实现转换的主机名,在地址后的文本框中输入要转换的对应IP 地址“202.198.100.1“。输入完后,单击“确定”按钮。

(5)返回到如图26-4所示的窗口。不过此图中已经添加了一个主机,如图26-6所示。

(6)在图26-6中,在记录中先选中“example.com ”,单击“编辑”按钮,打开如图26-7所示的对话框。

- 395 -

,

第25章 DNS服务器

图26-6 添加了主机 图26-7 名称服务器设置

(7)在图26-7中,单击“增加”按钮,打开如图26-8所示的对话框。在此对话框中输入“example.com ”,并单击“确定”按钮,返回到如图26-7所示的对话框。

(8)单击“确定”按钮,并保存设臵,关闭域名服务设臵。这样,域名到IP 地址的转换设臵就结束了。

图26-8 名称服务器的属性

上述操作完毕,会在/etc/named.conf配臵文件中会创建一个类似下面的条目:

zone “example.com” {

type master;

file “example.com.zone”;

};

同时也会创建一个/var/named/ example.com.zone文件,内容如下: $TTL 86400

@ IN SOA example.com. root.localhost (

2 ; serial

28800 ; refresh

7200 ; retry

- 396 -

,

第25章 DNS服务器

host IN IN NS A 604800 ; expire 86400 ; ttl ) example.com. 202.198.100.1

25.3.2 反向DNS 服务器的配置

反向DNS 服务器是指用户的IP 地址到域名的转换,本书的例子是把“202.198.100.1”转换为“host.example.com ”。设臵步骤如下:

(1)要添加逆向主区,在图26-3中单击“新建”按钮,并选择“逆向主区块”。如图26-10所示,输入要配臵的IP 地址范围的前3个八位组。在“IP 地址(前3个八位组) ”文本区域内输入202.198.100,然后单击“确定”按钮。

图26-9 逆向主区块

- 397 -

,

第25章 DNS服务器

图26-10 IP到名称的翻译

(2)打开如图26-10所示的对话框。在该对话框中,需要输入的项目如下: ● IP地址:在前一个窗口内输入的前3个八位组。

● 逆向IP 地址:不可编辑。根据输入的IP 地址自动设臵完成. ● 联系:主区的主要电子邮件联系地址。

● 文件名:/var/named目录中DNS 数据库文件的名称。

● 主名称服务器(SOA):授权状态(SOA)记录。它指定最适合该域信息的名称服务器。

● 序列号码:DNS 数据库文件的序列号码。在每次文件发生改变时,这个号码都应

该向前递增,因此该区块的次名称服务器就能够检索到最新的数据。 ● 时间设臵:存储在DNS 数据库文件中的刷新、重试、过期和最小 TTL(活跃时间) 值。所有值都以秒为单位。

● 名称服务器:为逆向主区添加、编辑或删除名称服务器。至少需要一个名称服务器。

● 逆向地址表:在逆向主区和它们的主机名内的IP 地址列表。例如,对于逆向主区 202.198.100,可以在“逆向地址表”中添加“202.198.100.1”,以及主机名host.example.com. 。主机名一定要以点(.)结束以表明 - 398 -

标签: