|
|
的知识
什么是DNS
DNS全称是Doma
in Name System,域
名系统。它的作用是
将一个域名转换成
IP地址。
早期的时候大家
使用IP地址通信,那
个时候Web 技术还没
有出现,Internet还
只是一个小圈子里的
玩意儿。在相互通信
的时候使用IP地址也
没有什么问题。不过
IP地址不方便记忆,
人们还是使用了一种
叫做主机名(HostNa
me)的方式来代替IP
地址。这种机制很简
单,就是在本机存放
一个Hosts文件,该
文件以文本方式存放
IP地址和主机名之间
的对应关系。当一个
TCP/IP命令使用了主
机名作为参数的时候
,系统会自动在Hos
ts文件中查找相应的
记录。如果找到则将
对应的IP地址传递给
实际通信的程序。在
WindowsNT/2000的操
作系统中这个文件存
放在System32\driv
ers\etc目录下,而
Windows9X或
WindowsMe则存放在
Windows目录下。大
家可以打开这个文件
看一下,默认情况下
该文件只有一项:
127.0.0.1 Localho
st。所以大家访问
LocalHost实际上就
是访问127.0.0.1,
即本机。当时为了方
便Internet上的用户
使用主机名访问计算
机,每个网络管理员
每天必须将本地的
Hosts文件上传给
Internet的网管
(实际上当时还没有
Internet这个专有名
词,这里仅仅是为了
方便描述,熟悉
Internet历史的朋友
不要死抠),然后
Internet网管将各地
的Hosts文件合并,
排除名字冲突。然后
将合并的Hosts 文件
传送给各地的网管,
然后各地网管再将这
些文件分发给本地的
用户,用户更新自己
的Hosts文件。经过
这些复杂的过程后用
户才能够使用主机名
访问Internet上的其
他主机。当Interne
t的主机数逐渐增加
的时候Hosts文件也
不断增加,后来的
Hosts文件足足有几
十兆,维护和管理都
十分麻烦。于是技术
人员开发了DNS,完
全抛弃了落后的
Hosts文件方式,并
且使得名字可以增加
许多新的属性。
新的名字解释系
统(DNS),允许每个
网络的管理员自行决
定如何为自己的计算
机命名,并保证这些
命名不会发生冲突,
从而省去了繁琐的
Hosts文件合并过程
。通过一种服务器/
客户机的机制让网络
上的服务器合作共同
解释所有的域名。其
核心的设计思想就是
将服务器的命名权集
中到一个分层管理的
体系中,每个管理层
次只能有自己的名
字空间。这样的同时
也就将用户为自己的
计算机命名的权利剥
夺了。实际上你的计
算机在网络上叫什么
名字是由控制名字服
务器的管理员决定的
。域名管理员通过配
置DNS服务器的解释
文件决定了一个Ip地
址对应的域名是什么
,或者反过来决定了
一个域名对应的IP地
址是什么。当你希望
别人通过域名来访问
你的计算机的时候,
你必须要求域名管理
员为你的IP地址分配
一个名称。当然域名
管理员只能为IP分配
自己授权域名根下的
名称。
现在让我们来
看一下整个DNS 的名
字管理系统是怎么运
作的。
域名的解释体制
我们现在看到的
域名是一个以小数点
来分段的一串字符,
每个小数点分段代表
名字管理层次。域名
的根掌握在Interne
tNIC手中,顶级域名
(.com.net.org等)则
委托Networksoluti
ons以及一系列顶级
域名注册商维护。
二级域名(如:
Oray.net、microso
ft.com等)则由每个
域名注册人自行维护
。用户如果希望获得
某个域名,则首先必
须获取对应域名的管
理授权。方法就是向
顶上的一个层次注册
自己的名字服务器。
比如:你想获得一个
叫www.myDomain.co
m的域名。你就必须
获得myDomain.Com的
域名管理授权,于是
你必须向上一级域名
管理机构申请
(注册),
即必须向.com管理机
构注册,就是
Networksolutions
或其他顶级域名注册
商(如万网、厦门精
通等)。一旦你获取
了这个域名的授权,
你就可以在该域名前
面加上任何名称了。
当然为了行使你的命
名权利,你还必须拥
有至少一台(按标准
是两台)名字服务器
来管理你的域名,这
些服务器必须24小时
连接在Internet上,
不能中断,必须拥有
固定有效的
Internet IP地址。
也就是说,你必须拥
有至少一台托管主机
。这样提第一个问题
的朋友也许会觉得有
些失望。别急,继续
看下去,我们有相应
的解决方法。
上面描述的仅仅
是域名的管理体制,
它保证了域名在
Internet上不会重复
,因为每一级的管理
层次都保证自己底下
的域名不会重复。
所以整个Internet
的域名都不会重复。
当然这样的代价就是
你必须向上一级管理
机构交钱才能够使用
域名。以下我们介
绍一下域名的解释
机制。
首先,每个域名
服务器(DNS Domain
Name Server)仅需
要保存所管理的域名
底下的名字解释。比
如Oray.net的名字服
务器只保存以
Oray.net
结尾的所有名字解释
记录,包括名字与
IP地址的对应关系;
邮件地址和邮件服务
器的对应关系;
还有,很重要的,
下一级域名和对应的
名字服务器的关系。
这些名字解释记录在
DNS 的术语中称为资
源记录
(Resourse Record,
缩写为RR)。每一个
名字服务器还存放了
Internet域名根服务
器的地址。当你向任
何一台Internet名字
服务器查询
www.oray.net
的名字的时候,其过
程如下:
由于Internet上
只有Oray.net的名字
服务器才存放着
www.oray.net
的资源记录。所有除
非你刚好使用我们的
名字服务器作为你的
名字解释服务器,否
则当你向他们查询的
时候这些服务器都不
能直接回答这个问题
。但是大家都有根服
务器的资料,所以,
当不能解释的时候都
会将这个查询转发给
根服务器。当然,根
服务器也没有相应的
名字解释。不过,根
服务器会根据查询的
名字给出一个能够接
近这个答案的名字服
务器地址,接下来的
操作也是这样,直到
最后找到我们的名字
服务器,由我们的名
字服务器做出授权解
释。
从上面的过程我
们可以看到,实际上
我们只要知道了
Internet上任意一台
DNS服务器的地址就
可以让他为我们解释
所有的域名了。虽然
这台服务器不一定保
存了我们申请解释的
域名的数据,它也可
以通过根服务器,一
级一级地找到保存这
个域名解释记录的服
务器,最后给出答案
。看上去这个过程非
常麻烦,但是实际域
名解释的速度是非常
快的,因为根名字服
务器和顶级域名服务
器(.net
.com等)
都在Internet的
高速主干上。一个二
级域名的查询一般在
2-3 秒钟之内就可以
解决。另外为了加快
查询速度,所有的
DNS服务器都会将查
询到的结果和中间的
结果缓存下来。比如
在上面的过程中,负
责处理客户请求的
DNS服务器会保存了
.net名字服务器的地
址、oray.net的服务
器地址和wwww.oray
.net的结果。如果下
次要查的是ftp.ora
y.net,那么这台
DNS服务器就会直接
找oray.net的服务器
解决,不再重复步骤
2-5 的过程。这样就
省去了两个查询过程
。不过缓存是一把双
刃剑,它加快了域名
查询的速度,但是会
导致域名信息变化需
要花一定的时间才能
生效。这点我在后面
会详细介绍。