摘要:域名解析是互联网上建立网站的重要前提之一,通过对互联网域名解析系统原理的研究分析,给出配置域名管理系统的最少条件及应用实例
关键词:域名 地址 服务器
当前,在经济全球化和全球信息化大潮中,人们不仅重视信息及其集成的作用,而且更加重视信息使用者对信息集成的反应和运用。互联网上的域名已为越来越多的人们所关注,因此,了解域名及其对应的ip地址的关系,正确地配置域名服务器,就成为设立网站、使自己在internet上注册的域名得到体现的关键。
1. ip地址
ip(internet protocol)地址就是网络协议地址,是分配给网络节点的逻辑地址。这些网络节点可以是网络中的任何一台主机,提供节点之间的交换信息服务。由于在internet网络中存在着大量的节点,为了能够在网上找到这个节点,就必须给予标识。ip地址就是一种标识方法,它独立于任何特定的网络硬件和网络配置,使用tcp/ip协议的网络在发送或接收信息时先把数据打包,然后将目标ip地址翻译成mac(medi-umaccesscontrol)硬件的物理地址,这样就可以把数据包准确地发送或接收过来。
每个ip地址是由4个字节共32位组成,每字节之间使用小数点分隔,一般用十进制数字表示。每个ip地址包括两个标识(id),即网络id和宿主机id,同一个物理网络上的所有主机都用同一个网络id,而网络上的每个服务器、路由器、计算机等都有一个主机id。wwW.133229.COM比如202.98.180.194即是云南省科学技术情报研究所的一个/english/">英文缩写。istiy.yn.cn即为我所在因特网上注册的域名,而ns.istiy.yn.cn (主机名+域名)为我所dns服务器的主机域名,对应的ip地址就是202.98.180.193。
3. 域名解析系统dns(domain name system)就是提供域名与ip地址相互映射的网络服务。事实上,dns是遍布于全世界的一个分布式数据库。它主要负责控制整个数据库中的部分段,每一段中的数据通过客户/服务模式在整个网络上均可存取。dns的数据库结构,同unix文件系统(或msdos文件系统)的结构很相似,整个数据库(或文件系统)将根放在顶端,画出来就像一颗倒转的树。在dns中,根的名字以空字符串“”表示,dns简单地称其为“根”(root)或偶而称之为“根域”(root domain),在unix文件系统中,根以反斜杠“/”表示,被称为“根目录”。如图1所示.
图1 在dns和unix文件系统中名称的读法
dns数据库 “”
cn
yn
istiy
ns ns.istiy.yn.cn
unix文件系统 /
usr
local
bin
apache
/usr/local/bin/apache
简单说来,域(domain)即为树状域名空间中的一棵子树。如istiy.yn.cn域为yn.cn域的子域。存储有关域名空间信息的程序,称为名字服务器(name servers)。通常,名字服务器具有部分域名空间----称为区(zone)----的完整信息。dns定义了两种类型的名字服务器:primary master(pm)和secondary master(sm)。pm名字服务器从它所运行的主机上的文件获得它所负责的区的数据;sm名字服务器从其他的具有该区权限的名字服务器上获得它的区数据。一般来说,管理某个域名的网段上至少有一个pm名字服务器,而sm则根据需要可有可无。
4.正向域名解析
从域名到ip地址的翻译,又称域名解析,域名解析实际上只需在域名树中走过从树中某节点(如根节点)开始到另一节点的一条自顶向下的单向路径。域名服务器的层次结构保证了父节点可以识别子节点。域名解析的查询方法主要有两种,第一种叫递归解析(recursion resolution),要求域名服务器系统一次性完成所需的域名与地址间变换;第二种叫重复解析(iteration resolution),每次请求一个服务器,不再请求别的服务器,只有当某一被访问的域名服务器不能解析指定地址时,在响应报文中指定下一个可用的域名服务器的地址。二者的区别在于前者将域名解析的主要工作交给服务器软件,而后者则将主要的工作交给请求域名服务器的主机上的称为名字解析器的软件来完成。
5. 逆向域名解析
从ip地址到域名的映射。由于在域名系统中,一个ip地址可以对应多个域名,因此从ip出发去找域名,理论上应该遍历整个域名树,但这在internet上是不现实的。为了完成逆向域名解析,系统提供一个特别域,该特别域称为逆向解析域in-addr.arpa。这样欲解析的ip地址就会被表达成一种像域名一样的可显示串形式,后缀以逆向解析域域名“in-addr.arpa”结尾。例如一个ip地址:aaa.bbb.ccc.ddd,其逆向域名表达方式为:ddd.ccc.bbb.aaa.in-addr.arpa。两种表达方式中ip地址部分顺序恰好相反,因为域名结构是自底向上(从子域到域),而ip地址结构是自顶向下(从网络到主机)的。实质上逆向域名解析是将ip地址表达成一个域名,以地址做为索引的域名空间,这样逆向解析的很大部分可以纳入正向解析中。
6. 域名查找
域名查找的过程根据不同的情况分若干步来完成。因为名字空间的结构为一棵倒转的树,所以名字服务器只需一条完整的信息就可以找到树中任何一点的路径:先查根名字服务器的名字和地址。名字服务器能够在根名字服务器中查询域名空间内的任何一个名字,然后根名字服务器就启动在该名字路径上的名字服务器。访问本地的域名服务器,所有本地的域名都可获得解析。如本地的服务器不能解析,它则会指向另一域名服务器请求解析。至于当本地域名服务器不能解析域名时指向哪一个更高级域名服务器,可由网络管理员设定。因为根域名服务器中存有所有其它国家的最高级域名的服务器地址,因此通过自上而下的查询,总可以使域名获得解析。
7. 域名服务器的配置
在这里以云南省科学技术情报研究所的域名系统为例,给出dns配置:
目前, 云南省科学技术情报研究所的dns是做在一台pⅲ机器上,操作系统采用了较流行的redhat linux 7.0。域为istiy.yn.cn, 共有32个c类ip地址(202.98.180.192---202.98.180.223)。
域名服务器是由进程named来启动的,该进程在启动时将读取有关dns配置文件,因此在建立域名服务系统过程中,需要建立或修改多个dns配置文件和目录。具体有如下几个相关文件:
a. 编辑/etc/named.boot,dns启动文件,指定了dns的结构;
; a caching only nameserver config
;
directory /var/named
cache . named.root
primary 0.0.127.in-addr.arpa named.local
primary 180.98.202.in-addr.arpa istiy.rev
primary istiy.yn.cn istiy.zone
named.root---指向根域服务器。修改named.ca文件或从相应站点下载。
named.local---用于本地解析自反地址, 指定本机作dns的ip。修改named.local文件
istiy.rev---用于映射ip到域名,反向解析文件。新建文件
istiy.zone---用于映射域名到ip, 正向解析文件。新建文件
b. 文件named.root
; this file holds the information on root name servers needed to
; initialize cache of internet domain name servers
; (e.g. reference this file in the "cache . <file>"
; configuration file of bind domain name servers).
;
; this file is made available by internic registration services
; under anonymous ftp as
; file /domain/named.root
; on server ftp.rs.internic.net
; -or- under gopher at rs.internic.net
; under menu internic registration services (nsi)
; submenu internic registration archives
; file named.root
;
; last update: aug 22, 1997
; related version of root zone: 1997082200
;
;
; 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
;
. 3600000 ns i.root-servers.net.
i.root-servers.net. 3600000 a 192.36.148.17
;
; temporarily housed at nsi (internic)
;
. 3600000 ns j.root-servers.net.
j.root-servers.net. 3600000 a 198.41.0.10
;
; housed in linx, operated by ripe ncc
;
. 3600000 ns k.root-servers.net.
k.root-servers.net. 3600000 a 193.0.14.129
;
; temporarily housed at isi (iana)
;
. 3600000 ns l.root-servers.net.
l.root-servers.net. 3600000 a 198.32.64.12
;
; housed in japan, operated by wide
;
. 3600000 ns m.root-servers.net.
m.root-servers.net. 3600000 a 202.12.27.33
; end of file
c. 文件named.local
@ in soa ns.istiy.yn.cn. adm.istiy.yn.cn. (
1997022700 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ) ; minimum
in ns ns.istiy.yn.cn.
localhost in a 127.0.0.1
loopback in cname localhost
d. 文件istiy.rev
@ in soa ns.istiy.yn.cn. adm.istiy.yn.cn. (
199802151 ; serial, todays date + todays serial
8h ; refresh
2h ; retry
1w ; expire
1d) ; minimum ttl
in ns ns.istiy.yn.cn.
193 in ptr ns.istiy.yn.cn.
e. 文件istiy.zone
; zone file for istiy.yn.cn
;
; the full zone file
;
@ in soa ns.istiy.yn.cn. adm.istiy.yn.cn. (
199802151 ; serial, todays date + todays serial
#
8h ; refresh, seconds
2h ; retry, seconds
1w ; expire, seconds
1d ) ; minimum, seconds
;
in ns ns.istiy.yn.cn. ; inet address of name server
;
localhost in a 127.0.0.1
ns in a 202.98.180.193
mx 10 ns.istiy.yn.cn.
mx 20 public.km.yn.cn.
www in a 202.98.180.194
ftp in a 202.98.180.194
elephant in cname ns
最后,使用nslookup程序可检查dns的配置情况:
$ nslookup
default server: ns.istiy.yn.cn
address: 202.98.180.193
>
返回上述结果,说明本地dns已工作。
8.小结
构建dns,以前大多采用sun公司solaris操作系统,配置比较麻烦,需要较多的unix知识。但我认为,采用开放源代码的linux操作系统配置起来更轻松,可大大减轻系统管理员的负担。更适合普通电脑爱好者构建网站。具有投入少、配置简单,系统运行安全、稳定的优点