《DNS与BIND(第5版)》——1.3 DNS简述

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

本节书摘来自异步社区《DNS与BIND(第5版)》一书中的第1章,第1.3节,作者: 【美】Joseph Davies 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.3 DNS简述

域名系统是一个分布式数据库。这种结构允许对整体数据库的各个部分进行本地控制,并且在各个部分中的数据通过客户端/服务器(client/server)模式变得对整个网络都可用。通过复制和缓存等机制,DNS拥有了健壮性和充足的性能。

被称为名称服务器(nameserver)的程序构成了DNS客户端/服务器机制的服务器一端。名称服务器包含了数据库中某些部分的信息,并使得这些信息对被称为解析器(resolver)的客户端可用。解析器通常只是一组库例程(library routine),这些库例程产生查询请求并将请求通过网络发送给名称服务器。

如图1-1所示,DNS数据库的结构类似于UNIX文件系统的结构。整个数据库(或者文件系统)被描绘成一棵倒置的树,root节点在树的顶端。树中的每个节点都有一个文本标签,用来标识该节点同父节点的相对关系。这大致上类似于文件系统中的“相对路径(relative pathname)”,例如bin。空标签(null label)或“ ”被保留给root节点使用。在本书中,root节点被写成一个点号(.)。而在UNIX的文件系统中,根目录则被写成一个斜杠(/)。


8f43ed958427ec675abe50e3cd27b51ac38c9739

整棵树上的各个节点也是其所对应的新子树的根。每棵子树都代表了整个数据库的一部分:对于UNIX文件系统而言代表着一个目录(directory),而对于域名系统而言则代表着一个域(domain)。每个域或目录又可以被进一步划分为额外的部分,在DNS中这被称作子域(subdomain),而在文件系统中这被称作子目录(subdirectory)。像子目录一样,子域在图中被描绘成它们父域的孩子。

和每个目录一样,每个域都有一个唯一的名称。一个域的域名标识了它在数据库中的位置,就像一个目录的绝对路径名(absolute pathname)标识了它在文件系统中的位置一样。在DNS中,域名是从该域的root节点开始,一直回溯到整棵树的root节点的标签序列,以点号(.)分隔路径中的各个节点标签。在UNIX文件系统中,一个目录的绝对路径是从树的根节点开始标记,一直走到叶子为止,使用斜杠“/”来分隔各个名称(同DNS的方向正好相反,见图1-2)。


<a href=https://yqfile.alicdn.com/d96be8d6e2cd3c4acabc186dff8153d9627e2aef.png" >

在DNS中,每个域都可以被分解成若干个子域,这些子域可以被分派给不同的组织。比方说,一个名叫EDUCAUSE的组织管理着edu(educational)域,但是却委托加州大学伯克利分校管理berkeley.edu子域(如图1-3所示)。这就好像挂载(mount)一个远程文件系统一样。文件系统中的某些目录,实际上可能是位于其他主机上的文件系统,因为它们挂载自远程主机。例如(如图1-3所示),主机winken的管理员负责管理本地主机上以usr/nfs/winken目录出现的文件系统。

要将berkeley.edu授权给加州大学伯克利分校,需要创建一个新的区域(zone),就是在域命名空间中划分出一段可以自治的区域。berkeley.edu现在已经从edu中独立出来,它包括了所有以berkeley.edu结尾的域名。从另一方面来说,edu区域仅仅包括以edu结尾的域名,但又不包括像berkeley.edu这样已经被授权出去的域名。berkeley.edu可以被进一步划分出子域,例如cs.berkeley.edu。与此同时,如果berkeley.edu的管理员将部分子域的管理权委托给其他组织,那么这些子域也可以成为独立的区域。如果cs.berkeley.edu是一个独立的区域,那么berkeley.edu区域中将不包括以cs.berkeley.edu结尾的域名(见图1-4)。


48ee9c9b01a860557352de00541e10794b205490

域名被当做DNS数据库的索引来使用。可以把域名同DNS中的数据对应起来。在文件系统中,目录包含文件和子目录。同样,域也包含主机和子域。域中所包含的主机和子域的域名,就位于该域所属的命名空间的子树中。


<a href=https://yqfile.alicdn.com/a5b4c71a3f44c8c0aab930662b171326e681cbdd.png" >

在网络上的每台主机都有一个域名,它指向该主机的相关信息(见图1-5)。这些信息中可能包含IP地址、邮件路由信息等。此外,主机也可以拥有一个或多个域名别名(domain name aliases),这些域名别名是从某个域名(别名)指向另一个域名(正式的或规范的域名)的指针。在图1-5中,“mailhub.nv...”就是别名,而它的规范名称是“rincon.ba.ca...”。


1b810a9f925b8f8cd0fc802ad99645fb154c074b

为什么要采用如此复杂的结构呢?这是为了解决HOSTS.TXT文件所存在的问题。例如,采用层次结构的域名是为了消除名称冲突的问题。每个域都有一个唯一的域名,因而管理这个域的组织可以自由地命名该域中的主机和子域。无论管理者为他们的主机或者子域选择什么样的名称,都不会和其他组织的域名相冲突,因为这些名称会有唯一的域名附加在结尾。例如,管理hic.com的组织,可以把一台主机命名为puella(如图1-6所示),因为这个组织知道这台主机将会以hic.com结尾,从而成为一个唯一的域名。


<a href=https://yqfile.alicdn.com/563ad823c9608bed9d38b11fde84b5be8866e738.png" >
相关文章
|
5月前
|
网络协议 网络安全
基于bind软件部署DNS服务器
关于如何使用bind软件部署DNS服务器的教程,包括DNS服务器的类型、基于bind软件的部署步骤、验证DNS服务器可用性的指导,以及如何进行DNS正向解析的实现。
192 2
|
6月前
|
JavaScript 前端开发
bind原理深度解析
【8月更文挑战第1天】bind原理深度解析
68 0
|
9月前
|
Linux 调度 数据库
|
9月前
|
域名解析 网络协议 Ubuntu
【域名解析DNS专栏】搭建私有DNS服务器:从BIND到CoreDNS的选择
【5月更文挑战第26天】本文对比了两种流行的DNS服务器软件BIND和CoreDNS。BIND以其稳定性及丰富功能著称,广泛兼容各类平台,适合复杂环境;CoreDNS则以其高性能、模块化设计和易用性脱颖而出。根据需求、资源和技术水平,用户可选择适合自己的DNS服务器。安装示例包括BIND在Ubuntu上的apt安装及基本配置,以及CoreDNS的snap安装和YAML配置。
614 0
|
9月前
|
网络协议 Linux 网络安全
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
108 0
|
域名解析 缓存 运维
Linux巩固篇013-Linux BIND域名解析服务
纸上得来终觉浅,绝知此事要躬行
399 1
Linux巩固篇013-Linux BIND域名解析服务
|
网络协议 Linux 网络安全
CentOS通过bind配置DNS服务器(下)
CentOS通过bind配置DNS服务器(下)
415 0
CentOS通过bind配置DNS服务器(下)
|
网络协议 Linux 网络安全
CentOS通过bind配置DNS服务器(上)
CentOS通过bind配置DNS服务器(上)
607 0
CentOS通过bind配置DNS服务器(上)
|
存储 缓存 网络协议
RH358管理DNS和DNS服务器--使用BIND 9配置授权名称服务器
RH358管理DNS和DNS服务器--使用BIND 9配置授权名称服务器
678 0
RH358管理DNS和DNS服务器--使用BIND 9配置授权名称服务器
|
网络协议 测试技术 数据库
内建DNS服务器--BIND
参考 BIND 官网:http://www.isc.org/downloads/bind/ 1、系统环境说明 [root@clsn6 ~]# cat /etc/redhat-release CentOS release 6.
1463 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多