1.1.1 主机名和I P地址
D N S的数据文件中存储着主机名和与之相匹配的I P地址。从某种意义上说,域名系统类似于存储着用户名以及与此相匹配的电话号码的电话号码服务系统。虽然D N S记录中除了主机名和I P地址外还有一些其他的信息, D N S系统本身也有一些较复杂的问题要讨论,但D N S最主要的用途和对用户来说最重要的价值是,通过它可以从主机名找到与之匹配的I P地址,并且在需要时输出相应的信息。
1.1.2 主机名的注册
主机名和I P地址必须注册。注册就是将主机名和I P地址记录在一个列表或者目录中。注册的方法可以是人工的或者自动的、静态的或者动态的。过去的D N S服务器都是通过人工的方法来得到原始的主机注册,也就是说,主机在D N S列表中的注册是要由人工从键盘输入的。最近的趋势是动态的主机注册。更新是用D H C P服务器触发完成的,或者直接由具有动态D N S更新能力的主机完成。D H C P是Dynamic Host Configuration Protocol的缩写,即动态主机配置协议。
除非使用动态D N S,D N S注册通常是人工的和静态的。Windows 2000中就提供了动态D N S的功能。当主机的信息有所变化时,主机记录的更新通常由人工来完成。图1 - 1表示了若干主机在D N S服务器中的注册。在D N S服务器中,最主要的信息只是主机名和I P地址(某些重要的例外见第4章)。
图1 - 1并没有表示出主机名是如何注册的,因为注册的方法并不是只有一种。当然人工注册是最常见的,但也有若干自动注册的方法。自动注册的方法之一就是让D N S服务器去查阅W I N S服务器。本书中将不断提到D N S和W I N S的交互。通过W I N S服务器的自动注册方法将在第1 6章中介绍。
另一种自动注册的方法是通过D H C P服务器向具有动态D N S能力的D N S服务器注册名字。也就是D H C P服务器在客户机上网时自动给它分配一个I P地址。因为该方法经过完整的测试并受到广泛的支持,所以它是使用各种D N S服务器最容易的方法。该方法几乎在任何情况下都能正常工作。当注册完成以后(尤其是当已被提醒成功时),所有的D N S服务器都收到了主机的注册信息。
大多数的计算机由人工向一台D N S服务器进行注册,这台服务器一般是和这些计算机在同一个大楼或者同一个校园,或者至少在同一个企业内。一般来说,中型或大型企业都有自己的D N S服务器。这时编辑和修改服务器的主机列表将比求别人―如I n t e r n e t服务供应商―注册主机的变化既迅速又容易。当使用UNIX 或Windows 2000时,如果有一个内部环境,就很有可能需要自己在内部运行D N S。
主机名必须在D N S服务器中注册,这台服务器称为主服务器。辅D N S服务器自动地从主D N S服务器获得所有的数据。管理员对这种备份很感兴趣,因为这可以让他们在几个不同的地方安置具有相同数据库的服务器。例如,中心办公室可以有一台主D N S服务器,而远地的机构可以有本地的辅服务器,以便加速地址的查找,也可防止因网络失效而找不到D N S服务器。主、辅D N S服务器的搭配使得所有的服务器都能找到已注册的主机,客户机能从离它最近的服务器获得回答。如果本地网络中的D N S服务器失效,无论安装的是Windows 2000还是其他操作系统,对主机的可用性都是一场灾难。而且如果一些主机通过辅服务器解析域名,还可以获得一定的负载平衡。
1.1.3 主机地址的资源记录
无论主机注册是如何完成的,这种注册的主要目的是在某个列表中记录下其他计算机在需要时可以被查到的主机名及其源地址,这种记录称为资源记录。资源记录可以有多种格式,第4章中将做详细介绍。
图1 - 2显示了在Windows 2000 DNS管理器上显示的几个计算机的主机记录。
如果使用的是UNIX DNS服务器和文本方式的配置文件,其条目就很像主机在这些记录中的注册( I N代表I n t e r n e t,A代表地址A d d r e s s ):如果使用的是Windows 2000 DNS,则可以将记录信息记录在同样的文件中,但也可以不必这样做。第一列为主机名(如h o s t 1),第二列为记录的类型(本例中为I n t e r n e t),第三列为资源记录的类型( A代表地址),第四列为I P地址。
host1 IN A 207.33.46.51
host2 IN A 207.33.46.52
host3 IN A 207.33.46.53
host4 IN A 207.33.46.54
1.1.4 主机名的解析
只要进行了注册,主机名就可以被解析。解析是一个客户端过程,目的是查找已注册的主机名或者服务器名以便得到相应的I P地址。客户端得到了目标主机的I P地址后,就可以直接在本地网上通信,或者通过一个或几个路由器在远程网上通信。显然,一个D N S服务器可以有许多已注册的主机。解析注册在同一台D N S服务器上的其他主机名应该是比较快的。一个具有上千主机的企业只需要少数几台D N S服务器。
图1 - 3显示了D N S客户机如何解析另一个在同一台D N S服务器注册的主机名。
图1-3 一个D N S客户机查询D N S服务器以解析另一个主机名
1. 解析器
本章对主机名查询的解释似乎意味着D N S服务器担当了所有的主机名解析工作。对此,必须有所澄清。实际上,主要的角色是一种称为解析器的程序,解析器运行在所有使用T C P / I P协议的有D N S能力的计算机上。解析器将包含网络主机域名的路径描述转换为查询请求。解析器甚至还可以缓存已定位的主机,以加速接通的过程。
解析器几乎无所不在,可以是本地的或者远程的,可以在客户机上也可以在D N S服务器上。D N S服务器可以在需要时通过解析器查询另一台D N S服务器,这种情况是经常发生的。当一台D N S客户机作为客户机时,它的解析器就处于工作态,当一台D N S服务器作为客户机时,它的解析器也处于工作态。当一台D N S服务器作为服务器使用时,它的作用就是响应客户机的解析器的查询,而这台客户机也可能是另一台D N S服务器。
R F C文件国际标准化机构和志愿管理机构共同管理Internet。这些管理机构通过工作委员会使用R F C文件来评估一些有可能成为标准的新思想。R F C文件可以由个人提出,也可以是出于某种商业利益的考虑。有不少R F C文件变成了正式的标准。要查阅R F C文件,可以通过h t t p : / / w w w.dns.net/dnsrd/ 访问其中的域名服务资源目录,即d n s r d目录(Domain Name Services Resource Dictionary)。对D N S、I n t e r n e t协议以及I n t e r n e t本身的标准制定有影响的机构有:
• Internet体系结构组(IAB , Internet Architecture Board)。
• Internet授权地址分配组(IANA, Internet Assigned Number Authority),www.iana.org。
• Internet工程指导组(IESG, Internet Engineering Steering Group),www.ietf.org/iesg.html。
• Internet工程任务组(IETF, Internet Engineering Task Force),www.ietf.org。
• Internet 协会(ISOC, Internet Society),www.isoc.org。
• Internet网络信息中心(InterNIC),www.internic.net。
RFC 1034“域名:概念和设备”中指出,解析器至少要访问一台域名服务器来直接得到所需信息,或通过其他的域名服务器来继续跟踪查询。在RFC 1034的第5、6页中说:“从解析器的角度来说,域名系统是由数目不详的域名服务器组成的,每台域名服务器具有整个域名树中的一个或几个分支的数据。”
经过查询后,返回给解析器的结果可能是下列结果中的一种(见RFC 1034第2 9页):
• 给出所需数据的一个或几个资源记录。在这种情况下,解析器将以适当的格式返回得到的回答。
• 主机名错误。当所查询的名字不存在时给出这种错误。例如,可能是用户在键入主机名时出错。
• 数据未找到错误。当存在所查询的主机名,但找不到相应的数据时出现这种错误。
2. 逆向查找
到目前为止,我们的讨论都是围绕着D N S如何从主机名查到I P地址。但也可以由I P地址来查找主机名,因为, D N S服务器中的数据文件是自动排序或者自动索引的,以便快速由名字查找,从I P地址出发的逆向查找还需要数据库按I P地址进行排序或索引。逆向查找也称为反向查询。
D N S服务器用来进行逆向查找的数据库称为i n - a d d r. arpa区或者称为A R PA域中的I n t e r n e t地址区。如果仔细观察图1 - 2,可以看到属于2 0 7 . 3 3 . 4 6 . 9域名服务器的46.33.207. in-addr. a r p a区。这个i n - a d d r区包含一个从I P地址到主机名的数据库,以便服务器执行从I P地址出发而不是从主机名出发的查找。第4章在讲述反向地址记录( P T R)时将讨论这种反向映射是如何建立的。
逆向查找的使用并不像正向查找那样普遍,但也不时有所使用。大多数的逆向查找是在用户(如系统管理员)已经知道本地主机的I P地址,但需要查找它的主机名时进行的。逆向查找的一种实际用途是查找一个已知I P地址的主机的全域名。F T P服务器有时也通过逆向查找来证实所连接的主机是否为它所宣布的主机。另外,一些工具如n s l o o k u p也使用逆向查找的特性(见第1 2章)。这种技术提供了另一种验证所连接的主机是否为假冒的方法,这可以减少但不能消除攻击。
3. DNS服务器的搜索顺序
可以设置D N S客户机为解析主机名搜索D N S服务器的顺序。图1 - 4显示了Windows 95客户机搜索D N S服务器的顺序。列表中的第一个D N S服务器地址为1 9 2 . 1 6 8 . 1 . 2 4,这台客户机就是在这台服务器中注册,并成为e x a m p l e . n e t域的一个成员。如果客户机通过查询第一台服务器不能得到答案,它将继续查询第二台、第三台服务器。Windows 2000 客户端的设置允许列表中有更多的服务器