DNS服务的配置与管理(2) DNS的理论知识

简介:

1. DNS域名空间

如果网络规模较小,那么使用hosts文件是一个非常简单的解决方案,但对于目前已经包括有几十亿台主机的Internet,hosts文件很明显无法满足要求。所以在Internet中才又引入了DNS系统,它的工作机制相比hosts要复杂、高效得多。

DNS系统采用的是分布式的解析方案,整个DNS架构是一种层次树状结构,这个树状结构称为DNS域名空间。

 在这个树状结构的最顶层称为根域,根域用“·”表示,相应的服务器称为根服务器,互联网管理委员会规定,整个域名空间的解析权都归根服务器所有,也就是说根服务器对互联网上所有的域名都享有完全的解析权!同时为了减轻根服务器的压力,又采用了一种“委派”机制,将位于根域下一层的顶级域分别委派给不同的顶级域服务器进行解析。
如根服务器把com域的域名解析权委派给com域服务器,以后凡是接收到以com结尾的域名解析请求,根服务器都会转发给com域服务器,由它对域名进行解析。
由根服务器委派的域名主要有:net、org、edu、gov、cn、uk……,这些被根服务器委派的域名称为顶级域名。
每个顶级域名都有预设的用途,例如com域名用于商业公司,edu域名用于教育机构,gov域名用于政府机关等等,这种顶级域名也被称为顶级机构域名。根服务器还针对不同国家进行了域名委派,例如把所有以cn结尾的域名委派给中国互联网管理中心,以uk结尾的域名委派给英国互联网管理中心,cn、uk这些顶级域名被称为顶级地理域名。
每个被委派的域名服务器再同样使用委派的方式向下发展,例如中国互联网管理中心在.cn顶级域名下面又设置了一些二级域名:.com.cn、.net.cn、.edu.cn……,并将这些二级域名的解析权委派给相应的服务器。

当一个公司或个人要申请域名时,就得去这些顶级或者二级域名服务器那里进行注册。例如新浪公司想申请使用sina.com.cn域名,这时新浪就要向负责.com.cn域名的DNS服务器提出申请,只要sina.com.cn还没有被其他公司或个人使用,而且申请者按时足额缴纳了费用,负责.com.cn域名的服务器就会把sina.com.cn这个域名委派到新浪公司自己的DNS服务器上。
这样通过层层委派,就逐步形成了现有的这种分布式的域名空间架构。这种架构把域名解析权最终下放到各公司自己的DNS服务器上,这样既有利于及时更新记录,同时对平衡流量压力也很有好处。
对于有些公司虽然注册了域名,但是并不希望花费财力来架设DNS服务器进行域名解析,这时可以将域名解析权委托给一些域名服务提供商,由其代为解析。如万网就是一家国内著名的域名服务提供商。

2. DNS域名结构

 
在DNS这种层次树状域名空间中,每一层都有不同的含义和相应的表示方法。
(1)对于最顶层的根域(root),一般用一个“.”表示。
(2)顶级域,直接处于根域下层,由根域对其进行委派,一般代表一种类型的组织机构或国家地区。
按使用范围不同,顶级域分为三种类型:
     国际通用的顶级域名,包括net、com、org。
     美国专用的顶级域名,包括edu、gov、mil等
     国家或地区顶级域名,包括cn、jp、hk、uk等
世界上所有国家的组织或个人都可以在国际通用顶级域名下面注册,而美国专用的顶级域名则只有美国的组织或个人可以使用,国家顶级域名则为每个国家所专有,只有该国的组织或个人可在其下面注册。
(3)二级域,在顶级域下面,由顶级域对其进行委派,用来标明顶级域内的一个特定的组织。
在Internet中,顶级域和二级域都由ICANN(互联网名称与数字地址分配机构)负责管理和维护,以保证它们的唯一性。国家顶级域名下面的二级域名则是由所在国家的网络部门统一管理的。
(4)子域,在二级域的下面所创建的域,可以由各个组织或用户自由申请注册。
(5)主机,是域名空间的最下面一层,也就是一台具体主机的计算机名。
如上图中的www、mail都是具体的计算机的名字,我们可以用 www.xxx.com、mail.xxx.com来表示它们,这种表示方式称为FQDN名(完全合格域名),也就是这台主机在域中的全名。我们平时上网时所输入的网址也都是一些FQDN名,如 www.sina.com.cn,这其实是表示我们要访问“sina.com.cn”域中一台名为“www”的计算机。DNS的作用就是将每个域中的FQDN名解析为这些计算机所对应的IP地址,以使用户可以通过名字访问它们。
 
3. DNS名称解析的方式
 
在DNS这种分布式的体系结构中,DNS服务器如何进行域名解析呢?比如一台客户机想要访问网站 www.benet.com.cn,整个DNS解析的过程如下图所示。

客户机首先把解析请求发送到自己的本地域名服务器上,如果这台DNS服务器中正好有这个名字所对应的IP,那就可以直接将结果发回给客户机。如果服务器中没有相关记录,那就得展开下面的一系列求助过程。
首先他要把这个域名发送到根服务器去请求解析,根服务器发现这个域名是以cn结尾的,于是告诉查询者这个域名应该询问负责cn的DNS服务器。这时查询者会转而向负责cn的域名服务器发出查询请求,负责cn域名的服务器发现域名是以com.cn结尾,就将负责com.cn的DNS服务器发给查询者。查询者只能再向com.cn服务器发出查询请求,com.cn服务器回答说“www.benet.com.cn”是以benet.com.cn结尾的域名,以benet.com.cn结尾的域名已经被委派到DNS服务器benet.com.cn了,因此这个域名的解析应该去问他。于是查询者最后向benet.com.cn服务器发出查询请求,这次应该可以如愿以偿了,benet.com.cn服务器会告诉查询者所需要的答案,查询者拿到这个答案后,会把这个查询结果放入自己的缓存中,如果在缓存的有效期内有其他DNS客户再次请求这个域名,DNS服务器就会利用自己缓存中的结果响应用户,而不用再去根服务器那里跑一趟了。

在上面的名称解析的过程中,分别用到了两种不同类型的查询,分别是客户机和本地DNS服务器之间的递归查询以及DNS服务器与服务器之间的迭代查询。
  • 递归查询:客户端计算机和DNS服务器之间都是采用递归查询,客户端得到结果只能是成功或失败 。 
  • 迭代查询:DNS服务器与服务器之间进行的查询。从根服务器开始逐级往下查询,直至找到最佳结果。
在迭代查询的过程中,根服务器非常重要,从理论上来讲,如果根服务器全部崩溃,那么整个互联网也将瘫痪。在已安装好的DNS服务器的属性设置中有一项“根提示”,即是一项允许本地DNS服务器查询根DNS服务器的功能,其中列出了13台根服务器的地址。对于Internet,这13台根服务器至关重要,所以为了提高安全性,这些根服务器分别部署在不同的国家,其中10台设置在美国,另外分别各有一台设置于英国、瑞典和日本。

本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1158218


相关文章
|
2天前
|
Linux 编译器 调度
xenomai内核解析--双核系统调用(二)--应用如何区分xenomai/linux系统调用或服务
本文介绍了如何将POSIX应用程序编译为在Xenomai实时内核上运行的程序。
17 1
xenomai内核解析--双核系统调用(二)--应用如何区分xenomai/linux系统调用或服务
|
4天前
|
运维 安全 API
Elasticsearch 悬挂索引解析与管理指南
Elasticsearch 悬挂索引解析与管理指南
21 7
|
5天前
|
缓存 测试技术 Android开发
深入了解Appium:Capability 高级配置技巧解析
Appium 提供多种进阶配置项以优化自动化测试,如 deviceName 作为设备别名,udid 确保选择特定设备,newCommandTimeout 设置超时时间,PRINT_PAGE_SOURCE_ON_FIND_FAILURE 在错误时打印页面源,以及测试策略中的 noReset、shouldTerminateApp 和 forceAppLaunch 控制应用状态和重启。这些配置可提升测试效率和准确性。
16 2
|
6天前
|
存储 弹性计算 固态存储
阿里云服务器配置选择指南,2024年全解析
阿里云服务器配置选择涉及CPU、内存、带宽和磁盘。个人开发者或中小企业推荐使用轻量应用服务器或ECS经济型实例,如2核2G3M配置,适合网站和轻量应用。企业用户则应选择企业级独享型ECS,如计算型c7、通用型g7,至少2核4G起,带宽建议5M,系统盘考虑SSD云盘或ESSD云盘以保证性能。阿里云提供了多种实例类型和配置,用户需根据实际需求进行选择。
|
11天前
|
分布式计算 DataWorks 调度
DataWorks操作报错合集之DataWorks配置参数在开发环境进行调度,参数解析不出来,收到了 "Table does not exist" 的错误,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
24 0
|
12天前
|
分布式计算 大数据 数据处理
MaxCompute操作报错合集之在开发环境中配置MaxCompute参数进行调度,但参数解析不出来,如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
13天前
|
前端开发 API UED
AngularJS的$http服务:深入解析与进行HTTP请求的技术实践
【4月更文挑战第28天】AngularJS的$http服务是核心组件,用于发起HTTP请求与服务器通信。$http服务简化了通信过程,通过深入理解和实践,能构建高效、可靠的前端应用。
|
13天前
|
JavaScript 前端开发 UED
AngularJS路由管理:深度解析$routeProvider的应用与实践
【4月更文挑战第28天】本文深入解析AngularJS的$routeProvider,它是AngularJS路由系统的关键,用于定义应用的视图和路径。通过routeProvider,开发者能根据URL变化动态加载内容,实现单页应用效果。配置$routeProvider涉及导入angular-route.js,注入"ngRoute"依赖,并使用when方法定义路由规则。ng-view指令用于显示路由打开的页面,而otherwise方法处理未定义路由,提供默认响应。$routeProvider使导航体验优化,助力构建高效Web应用。
|
14天前
|
监控 安全 网络协议
|
15天前
|
移动开发 数据可视化 Linux
Linux 中的文件与目录管理解析
当谈到Linux系统,文件与目录管理是其中最基本和重要的部分之一。Linux提供了一种强大而灵活的方式来组织和管理文件和目录,让用户能够轻松地访问和操作系统中的各种数据。上一节我们说到文件的属性,本文将详细介绍Linux中的文件与目录管理的各个方面。

相关产品

  • 云解析DNS
  • 推荐镜像

    更多