cyberfan's blog

正其谊不谋其利,明其道不计其功

  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  15 随笔 :: 489 文章 :: 44 评论 :: 0 Trackbacks
传统上, 将域名转换成IP地址的方式主要靠查表达式, 主机的管理者需将IP地址对应的域名列在主机信息表(host table)内, 此表通常是个普通的文件, TCP/IP的应用程序会根据该表进行域名的转换, 这种方式已随着网络的扩张而显得越来越没有效率, 往往一个主机信息表内即有数以百计的主机, 例如:在Internet的网络信息中心(InterNIC)即维护一份巨大的主机信息表, 列在其中主机称为已注册主机(Registered Host)。此外, 这种方式也没有一个有效率的机制将新注册主机的信息传播到其它系统。

目前的作法是采用以分散式数据库为结构的域名系统(DNS), DNS不依赖特定的主机信息表, 所有域名信息是采用阶层性方式散布在许多域名系统(Domain Name Server)内, 其它主机可向这些域名系统查询域名对应的IP地址与相关信息。

18.1 IP地址表与NIS
在结构相对简单,入网设备数较少的局部网内,各台设备的IP地址及相应的设备名被登录在主机管理文件(或称之为IP地址表)/etc/hosts中。对于每台设备来说, 要利用设备名与其他设备交换文件信息时, 就必须将对方的设备名及其IP地址登录 在自己的主机管理文件中。主机管理文件/etc/hosts的记录格式一般为:

IP地址 设备名称 设备别名表

/etc/hosts例:

192.168.88.1 host1 loghost

..........

当局部网内增加新设备时,需要在每台设备上修改或追加这类管理信息,入网设备数越多,网络管理亦越麻烦。因此, 当局部网具有一定的规模后, 一般常采用NIS (Network Informaion Service)来进行管理。

利用NIS管理网络时,将一些共同的管理文件集中于一台计算机上,称该计算机 为NIS主服务器(NIS MasterServer)。 处于该NIS主服务器管辖下的各台设备在需 要调用外部管理信息时,向主服务器进行查询并利用查询结果。新增或删减网内设 备时,只须修改服务器上的相应管理文件即可。这样,在一定程度上可以减少管理工作量。

将局部网连入广域网时,随着设备数量之巨增, 如果仍采用单一管理文件或NIS的平面式网络管理方法,则显得相当勉强。因为,广域网内的计算机数以万计, 要将 所有关联的地址全部记录于一台计算机之一个管理文件,势必造成该文件之巨大化。 这种方法既消耗检索时间,又将增加误记的可能性。另外,采用NIS时,由于共通管理文件的尺寸增大,在网络内交换管理信息时,将占用通讯线路的大量频域, 降低实效 通讯速度。同时,这种集中管理方法又会降低整个网络的可靠性。

因此,在大规模广域网中之IP地址查询方面,需要一些不同于上诉方法的分布式处理技术。目前,在TCP/IP大规模网络中,服务最为稳定的是域名系统(DNS : Domain Name Server)。在当今网络世界中,DNS已成为一种公认的网络标准, 为 各国,各地区,各部门所采用。

1.2 DNS—域名服务管理系统 DNS具有以下一些重要特征:

(1) DNS适合于任何网络规模,它不依赖于大规模的IP地址映射表。

(2) DNS采用分布式数据系统结构,易于管理,网络运行可靠性高。

(3) 在DNS系统中,新入网的IP信息,在需要时可以自动地播放至网络的任意角落。

DNS :IP信息的传播

某一计算机A需要查询自己所不知道的IP信息时, 只需向DNS服务器提出请求,委托DNS服务器代理查询即可。DNS采用多级层次树型结构。 DNS服务器受理查询请求之后, 首先对存放于该服务器的数据库进行检索(该数据库一般被存放于cache中)。如果发现被请求地址,则将检索结果送回给计算机A;如果在该服务器上仍未能获得该地址, 该服务器则将相应的请求转送至自己的上级站,直至获得结果为止(若 查询至最终级站仍无法获得结果时,则将出错信息返回给查询者)。

在广域网中,各台入网设备均依照一定的规则被划分在相应的区段中,一般称这 种区段为域。各域内都设有一台或多台域名服务器,为所管辖范围内之计算机提供设备名与IP地址的映射服务。各部门的域名服务器必须具有统一的通讯标准及合法的处理权限, 以便使各网络间得以准确地交换IP及寻找信息。局网之域名服务器 从上级站获得检索结果后, 除将其反送给查询者外,自己还在内存中保留一份备份, 供再次查询时使用。

18.2 DNS系统概要
18.2.1 DNS的层次结构
为进行分散并行处理,与UNIX的文件系统相类似,DNS采用树型层次结构。DNS虽 被用于进行设备名与IP地址之映射,但在广域网中,并不存在保存有整个广域网之IP地址的设备, 也没有这种必要。在广域网中,IP地址信息被有规律,有计划地分散在 各子网的域名服务器中。在DNS系统内存在着一个最上级服务器,通常称之为根点服务器(root server)。 各国家,地区之根点服务器为国家,地区间网络提供IP查询之 转向服务。具体的映射是由其下属的各级服务器所实现的。

在中国,ChinaNet之根域(top domain)名为cn。世界各国,地区之根域名均依照国际标准化组织的规定, 采用双字符表示,但亦有例外。由于历史原因,在美国仍采 用着之三字符根域表示。

对于二级域名,各国有各国的规定。ChinaNet之二级域名定义如下:

edu教育科研机关 com商业性组织 gov政府机关

net网络管理机关 org非盈利性组织

在ChinaNet上,还将采用下述区域名表示法:

beijing北京地区 shanghai上海地区 tianjin天津地区

...... ........

各根点之一级域名服务器仅负责其二级域的IP地址信息。二级域名服务器则仅 为其

属性范围内的各个三级域提供服务。三级域以下的各子域则由各个入网单位自己管理。

三级域之域名一般由各个国家的网络管理中心(NIC:Netwotk Informaion Center)所统

一命名和管理。

ChinaNet亦即CNIC主服务器之域名表示则为ns.cnc.ac.cn.

在中国,ChinaNet由CNIC(China Network Information Center)统一负责IP地址分配,

及二,三级域名之命名。三级域名常常以各单位的英文缩写来命名。例如, 北京大学为

pku,清华大学为tu,东北大学为enu,大连理工大学为dlut等。因此,这些单 位的三级

域表示为: pku.edu.cn,tu.edu.cn,neu.edu.cn,dlut.edu.cn ..........

四级以下的域名由各三级域名所属单位各自命名, 一般为各个下属机关,部门, 学科之

英文名缩写,但必须唯一。 为书写方便,各子域名的字符数也不宜过多(采用双字符的

较多)。

18.2.2 DNS的动作原理
如上所述,为加入广域网,各单位在生成各子域之前,必须针对自己的属性,向各所在国之

NIC申请并获取正式的三级域名,由NIC为其指定上级域。在ChinaNet上构 筑教育,科研

部门网络时,二级域为edu。该属性下的各入网单位要委托edu域代管自己的域外信息。凡

不属于自己所在域的信息均需经edu域名服务其所获取。

在此,假定edu下afo三级域存在,afo内又分有一些相应的四级子域.以cs域下计算机panda

查询rose.cs.tu.edu.cn为例,让我们来看一下DNS的动作。

DNS的动作过程如下:

panda.cs.afo.edu.cn试图用telnet命令与rose.cs.tu.edu.cn连接。但由于不知道对方地址, 故向自己之所在域名服务器ns.cs.afo.edu.cn提出查询请求。

(1) ns.cs.afo.edu.cn受理该请求后,首先检索内存中存放的IP地址表.如发现了该地址,

则将其反送给panda.cs.afo.edu.cn。如未能发现, 则将查询请求转交给上级域服务

器。如此重复至二级域edu至服务器ns.edu.cn。

(2) ns.edu.cn检查被查询的IP信息之所在三级域,将相应的三级服务器ns.tu .edu. cn

信息(一般称之为NS记录)反送给ns.cs.afo.edu.cn,ns.cs.afo.edu.cn则利用该

信息向ns.tu.edu.cn请求查询rose.cs.tu.edu.cn。

(3) ns.tu.edu.cn将rose.cs.tu.edu.cn所在域cs.tu.edu.cn之服务器ns.cs.tu.edu.cn

信息反送给ns.cs.afo.edu.cn。

(4) ns.cs.afo.edu.cn向ns.cs.tu.edu.cn请求查询rouse.cs.tu.edu.cn。ns.cs.tu.edu.cn检索自己管理的IP地址表,将检索结果反送给ns.cs.afo.e du.cn。

(5) ns.cs.afo.edu.cn将所获得的信息(通常称之为A记录)反送给panda, 并将该信息存

入内存中的IP地址表,以供再用。

(7) panda用获得的信息与rose.cs.tu.edu.cn试连。

(以后的过程与DNS无关,在此予以省略)

在上述动作过程中应该注意的是,DNS的查询过程并非递归过程。各中间站仅向查询

服务器反送相应的NS(Name Server)记录。最终的查询是在查询服务器 与含有被查询信

息之域名服务器之间进行的.各中间站上并不缓存相应的NS记录 ,即各中间站没有必要保

存与己无关的冗余信息。这使得广域网中的所有IP地址映射信息能够分散于各个域名服

务器,以达到数据分散,控制独立之目的。

18.2.3 DNS服务器分类
一般的UNIX工作站上均配有相应的DNS软件。最常用的是BIND(Berkeley Inter net Name Domain)软件。

BIND软件在概念上由服务器(server)和解释器(resolver)两个部分所组成。服务器用于对查询请求加以应答,它一般为一个独立的进程,常驻于系统内部. 解释器 则用于向服务器进程提出查询请求。解释器一般并非为一个常驻进程, 而是作为一 些库程序(libresolv.a等)存放于系统中,以供查询者动态(或静态)调用.该程序库提供与域名服务器之连接,及信息交换方法。除服务器外,一般的计算机上仅需备有解释器代码,即可连入广域网。但应该注意的是,从系统及网络的安全性角度来考虑,一些UNIX系统原来配备的BIND软件因版本陈旧, 往往不为人们所利用。因此,在另外装入新版本时,对于一些系统(例SunOS 4.1.x等)有必要重新生成解释器用库程序, 否则,ftp,telnet,rlogin等需要与解释器库程序(libresolv.a)进行动态连接的实用程序将无法使用。

BIND的服务器由名为named的一个常驻进程所实现。根据其所起的作用之不同, 其运行方式可分类如下:

主服务器(primary server):

负责提供所管辖之域内的全部IP地址映射,保存相应的映射表,并为上级站 所认可。 一个域内只能存在一个主服务器。

二级服务器(secondary/slave server):

负责提供所管辖之域内的全部IP地址映射 ,保存来自于主服务器的IP映射表。 用于在主服务器故障,或过于拥挤时,提供代换服务,以提高网络的运行性能。

缓存服务器(cache/hint server):

在域名服务器中,为了提高检索速度,一般都在内存中开辟缓存. 在该缓存 区中保存具有一定生存期限的查寻数据. 缓存服务器即是仅具备这种缓存区,而不具备下属域处理权限的一种特殊的域名服务器.

BIND软件仍在不断的进行着版本更新,以适应新的安全性,管理性, 及IPv6等新技术之需要.BIND当前(1997年6月)之最新版本为BIND 8.1.

应该注意的是, BIND 8.1问世以后, 域名服务器的设定与维护出现了一些很大 的变化. 与BIND 4.X.X相比,BIND 8.1又纠正了一些错误,增添了以下新的功能:

(1)提供DNS之动态更新功能(RFC 2136)

(2)提供DNS更新通知功能(RFC 1996)

(3)提供更加充实的记录功能

(4)可以进行IP地址级查寻控制,及域间传送,修改权限控制

(5)改进了域间传送效率

下面,让我们以介绍一下DNS的具体生成,及管理方法.

18.2.4域名服务的数据文件
/etc/named.boot

名字服务器启动文件;当named守护进程启动时,读取named.boot文件,获得服务器的类型以及初始化数据等信息.

结构: Directory 指定Named守护进程的工作路径和数据文件的存储路径.

primary 说明一个区(zone)的第一服务器, 第三个参数说明数据文件名

域名服务器需要根域或高层域服务器的IP,通过root.cache文件将这些信息送入域名服务器的cache中.须加上cache root.cache



/etc/resolv.conf

是一个客户机和域名服务器上都要设定的解析文件,它具有如下功能:

定义缺省的域名.

用关键字domain来定义,

如: domain olm.com.cn

域名搜索列表

用关键字Search来定义,

如: search olm.com.cn

指定解析服务的次序(如:Bind .Nis.Local)

用关键字hostresorder来定义,

如hostresorder bind local

列出域名服务器的IP地址 (仅客户机需要)

用关键字nameserver来定义, (最多可以定义三个),定义的次序反映了访问的

次序.

如: nameserver 192.168.234.146

/etc/named.d/named.hosts

包含了自己域中的主机地址信息.,在第一主服务器中必须设置该文件

/etc/named.d/named.local

用来指定名字服务器的本地回送接口

$INCLUDE olm.soa

1 IN PTR localhost.olm.com

记录指定了一个指向本地的反向指针。

/etc/named.d/localhost.rev

指定本机网络回路地址127.0.0.1的域INADDR.ARPA许多网络程序使用这个域,每

一个域名服务器都要设定这个文件.

其中:1是1.0.0.127的缩写,而1.0.0.127就是本地主机127.0.0.1按字节逆转的结果

/etc/root.cache

名字和地址的初始化缓存

缺省时, root.cache文件包含关于根域名服务器的初始化cache数据.每一个域名服务器

都要设定这个文件.

/etc/named.d/named.soa

包含开始监控(Start of Authority SOA)记录

IN SOA home.olm.com. home.olm.com. (

6.1 ; Serial 版本号或序列号

10800 ; Refresh 刷新时间

1800 ; Retry 重试

3600000 ; Expire 截止时间

86400 ) ; Minimum 最小值

IN NS home.olm.com. NS记录表明了这个当前域的名字服务器被称为

Server.Anycompany.COM .

18.2.5 配置的举例:
域gzolm.com网络地址:192.168.88 网络接入Internet

第一主服务器域名是master.gzolm.com ,地址是192.168.88.1

第二主服务器域名是system.gzolm.com ,地址是192.168.88.2

客户机是:work .olm.com 地址是192.168.88.3

配置第一主服务器

以root登录

1. 创建 /etc/resolv.conf

domain gzolm.com

nameserver 192.168.88.1

nameserver 192.168.88.2

hostresorder local bind

2. 创建 /etc/named.boot

directory /etc/named.d

;type domain source host file

primary gzolm.com olm.hosts

primary 88.168.192.IN-ADDR.ARPA olm.rev

primary 0.0.127.IN-ADDR.ARPA localhost.rev

cache root.cache

3. 创建 /etc/named.d/olm.hosts

$INCLUDE olm.soa

localhost IN A 127.0.0.1

#160; IN MX 50 master.gzolm.com.

master IN A 192.168.88.1

IN MX 50 master.gzolm.com.

system IN A 192.168.88.2

IN MX 50 master.gzolm.com.

Work IN A 13.168.88.3

www.olm.com CNAME master.gzolm.com

ftp.olm.com CNAME system.gzolm.com

4. 创建 /etc/named.d/olm.rev

$INCLUDE olm.soa

1 IN PTR master.gzolm.com.

2 IN PTR system.gzolm.com.

3 IN PTR work.gzolm.com.

5. 创建 /etc/named.d/ localhost.rev

$INCLUDE olm.soa

1 IN PTR localhost.gzolm.com.

6./etc/named.d/olm.soa

@ IN SOA master.gzolm.com. system.gzolm.com.

( 6.1 ; Serial

10800 ; Refresh

1800 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS master.gzolm.com.

IN NS system.gzolm.com.

7./etc/root.cache

重新启动机器

配置第二主服务器

以root登录

1. 创建 /etc/resolv.conf 文件

domain olm.com

nameserver 192.168.88.1

nameserver 192.168.88.2

hostresorder local bind

2. 创建 /etc/named.boot文件

directory /etc/named.d

;type domain source host file

cache root.cache

secondary gzolm.com 192.168.88.1 olm.hosts

secondary 88.168.192.IN-ADDR.ARPA olm.rev

secondary 0.0.127.IN-ADDR.ARPA localhost.rev

3. 创建 /etc/named.d/localhost.rev文件

$INCLUDE olm.soa

1 IN PTR localhost.gzolm.com

4. 创建 /etc/named.d/olm.soa 文件

@ IN SOA master.gzolm.com. system.gzolm.com.

( 6.1 ; Serial

10800 ; Refresh

1800 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS master.gzolm.com.

IN NS system.gzolm.com.

5 . 创建 /etc/root.cache文件

重新启动机器

配置客户机

以root登录

1. 创建 /etc/resolv.conf 文件

domain olm.com

nameserver 192.168.88.1

nameserver 192.168.88.2

hostresorder local bind



2.修改 /etc/nsswitch.conf文件

使下行 hosts file

变为 hosts dns file

重新启动机器
posted on 2005-08-15 14:59 cyberfan 阅读(182) 评论(0)  编辑 收藏 引用 所属分类: linux/unix
只有注册用户登录后才能发表评论。