DNS的运行机制(一)
域命名空间
DNS的分布式数据库通过域名来进行索引。每个域名本质上就是一颗大型逆向树的一条路径,而这棵逆向树又被称为域名空间(domain namespace)。DNS树可以在每个交叉点(或称为节点)上分出任意数量的分支。树的深度最多可达127层(实际上一般不会达到这个深度)
1.1域名
树中的每个节点都有一个最长为63个字符的文本标签(不包括“.”号),空格签(长度为0)是为root保留的。树中的任何一个节点的完整域名是从该节点到root的路径上所有标签的顺序组合。
1.2域
一个域就是一个命名空间的一颗子树。一个域的名称也就是该域最顶端节点的域名。
顶级域是root的子域,
一级域也是root的子域(一级域和顶级域是同一个概念)
二级域是一级域的子域(依次类推)
1.3资源记录
与数据相关的数据都包含在资源记录(resource record,RR)中。记录按照所关联的网络或软件的类型(type)被分为不同的类(class)。
在同一个类中,记录可以划分成好几种类型。划分依据是放在域名空间中数据种类的不同。不同的类可以定义不同的记录类型,而这些类型在很多类中都通用
1.4授权
设计域名系统的一个主要目的是分散管理,通过授权来实现。
授权:指将管理子域的责任交给另一个组织。对域的授权就像工作中对任务的派遣,管理者可以将一个大项目分解成更小的任务,然后将这些任务交给不同的员工负责。管理域的组织可以将进一步划分成子域。每个子域都可以被授权给其他组织来管理,这意味着这些被授权的组织得负责维护子域中的所有数据。
1.5名称服务器和区域
存储命名空间信息的程序被称为名称服务器(nameserver).名称服务器通常只拥有域命名空间某一部分的完整信息(zone),区域内容是从文件或另一个名称服务器加载而来。加载过后,这个名称服务器便可以宣称对该区域具有权威(authority)。一个名称服务器可以同时对多个区域具有权威。
1.5.1授权子域
授权就是将一部分域的责任分派给另一个组织。而实际的工作就是将子域的权威分配给不同的名称服务器
1.5.2名称服务器的类型
DNS规范定义了两种类型的名称服务器:primary master和secondary master。区域的primary master名称服务器从其主机上的文件中读取区域数据,而区域的secondary master名称服务器则从该区域的权威名称服务器(称为master名称服务器)上读取区域数据。
1.5.3区域数据文件
primary master名称服务器从本地主机中加载区域数据的文件被称为区域数据文件(zone datafile),也常常称为数据文件(datafile),数据文件包括了描述区域的资源记录。资源记录描述了区域内所有的主机,并标记了子域的授权情况。BIND还允许使用特殊的指令来将其数据文件引入到一个区域数据文件(.include)中,就像C语言编程中使用的#include语句
1.6解析器
解析器就是访问名称服务器的客户端程序。当运行在主机上的程序需要从域名空间中获取信息时就会使用到解析器。解析器处理的任务有以下几个:
1)查询名称服务器
2)解释响应信息(可能是资源记录或者是错误)
3)将信息返回给查询它的程序
在BIND中,解析器是连接到诸如ssh和ftp等程序的一组库例程。它甚至不是一个独立的进程。解析器几乎完全依赖于名称服务器:它收集查询命令,向名称服务器发送查询并等待应答,如果没有应答就再次发送查询,这就是全部。为查询寻找答案的大部分工作都是域名服务器来完成的。在DNS规范中把这种类型的解析器称作sub解析器。
1.7解析
名称服务器不仅能够提供以自己为权威的区域的数据,还能在域名空间中搜索找到不以自己为权威的区域的数据,这个过程称为名称解析。
1.7.1名称服务器
root名称服务器知道每个顶级区域的位置
- 点赞
- 收藏
- 关注作者
评论(0)