DNS:域名服务,他是一个分层次的分布式数据库,整个是一个类似树状结构,在最顶层是root,是统一管理的。在root下面为顶级域名,包括了像:com,net(用于计算机),org(用于飞盈利组织),edu(用于教育)等之类的域名,顶级之下是第二级域名,在每个顶级域名下都可以分成多个二级域名,二级域名如:com(用于商业)之下就可以有:sina,cctv,hp等商业组织;又如:cn下可以有:hk,bj,com,gov等;第三级在第二级之下,如:edu下就可以有:pku,fudan,qinghua等高校,接下去每座高校又可以分到每一台主机上。整个域名可以这样解释:www.scut.edu.com,从左到右依次是按低级到高级的排列,com为顶级域名,edu为com下的二级域名,scut为三级域名,www为客户机,此时客户机已经不能再分下去了。
DNS的功能是将客服端的域名解析请求映射成相应的IP地址。实际中,我们使用主机名来标示主机,而非IP,但计算机只能通过IP来识别主机,所以需要这样的机制来将主机名映射成IP。DNS的工作流程大概是这样的:
首先,用户(即客户端)输入URL(包含目标主机名),客户机发出解析域名请求,本地的域名服务器收到请求后, 查询本机的高速缓存记录,如果找到则返回IP给主机;若找不到答案,解析程序继续检查本机文件hosts.txt,看是否有相应文件;如果依然没找到,则向本地域名服务器请求查询,域名服务器先检查此域名是够在管辖的范围内,若不是,则再去检查高速缓存,检查是否有相应的记录(每个域名服务器都有一定的管辖范围,高速缓存记录着之前一段时间内的查询记录),如果找到则返回给主机;如果找不到就向根域名服务器请求查询,根域名服务器查询本地记录,找到记录就返回IP地址给域名服务器,域名服务器在高速缓存中记录后再发给主机;如果根域名服务器找不到相应的记录,也会返回给域名服务器一个记录有请求的主机信息的地址,这样,域名服务器就又和新的域名服务器建立连接,这样一直找到目的主机IP,如果真的找不到,则会返回找不到的信息。
客户机和域名服务器之间的查询请求属于堆栈式查询,即但域名服务器找不到目的主机记录时,则向跟高一层请求查询,找到时则立即返回信息给主机;域名服务器之间的查询请求属于循环式查询,即当域名服务器找不到目的主机的记录时,该域名服务器会向向他发送查询请求的域名服务器发送记录有该目的主机记录的最近域名服务器地址,接着发送请求的域名服务器会直接和新的域名服务器建立连接,如此循环直到找到目的主机的Ip,如果所有的域名服务器都找不到目的主机的主机名和Ip之间的映射关系,则会发送一条找不到目的主机的信息给客户机。
为什么进行域名分区(即分层分布式)?主要是为了方便管理,随着网络的迅速拓展,需要对网络进行有效管理。DNS 数据库可分成不同的相关资源记录集。其中的每个记录集称为区域。区域可以包含整个域、部分域或只是一个或几个子域的资源记录。管理某个区域(或记录集)的 DNS 服务器称为该区域的权威名称服务器。每个名称服务器可以是一个或多个区域的权威名称服务器。采用这样的分布式结构,当域名称空间不断扩展时,各个域的管理员可以有效地管理各自的子域。区域和域有时难以辨认,如:Microsoft 名称服务器可以同时是“microsoft.com”区域“msdn.microsoft.com”区域和“marketing.microsoft.com<wbr>”区域的权威名称服务器,如果msdn.microsoft.com的资源记录包含整个域,则区域与域的范围是相同的。
主 DNS 服务器和辅 DNS 服务器为保证服务的高可用性,DNS 要求使用多台名称服务器冗余支持每个区域。某个区域的资源记录通过手动或自动方式更新到单个主名称服务器(称为主 DNS 服务器)上。主 DNS 服务器可以是一个或几个区域的权威名称服务器。其它冗余名称服务器(称为辅 DNS 服务器)用作同一区域中主服务器的备份服务器,以防主服务器无法访问或宕机。辅 DNS 服务器定期与主 DNS 服务器通讯,确保它的区域信息保持最新。如果不是最新信息,辅 DNS 服务器就会从主服务器获取最新区域数据文件的副本。这种将区域文件复制到多台名称服务器的过程称为区域复制。
以上仅为个人学习时笔记。
---kahg