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操作系统配置起来更轻松,可大大减轻系统管理员的负担。更适合普通电脑爱好者构建网站。具有投入少、配置简单,系统运行安全、稳定的优点