`
阅读更多
一、DNS服务简介

1.基本原理

DNS(Domain Name System,域名系统)用于命名组织到域层次结构中的计算机和网络服务。DNS命名用于Internet等TCP/IP网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入DNS名称时,DNS服务可以将此名称解析为与之相关的其他信息,如IP地址。因为,用户在上网时输入的网址,是通过域名解析系解析找到相对应的IP地址,这样才能上网。其实,域名的最终指向是IP。

值得一提的是,在引入DNS之前,网络中的主机是将容易记忆的域名映射到IP地址并将它保存在一个共享的静态文件hosts(该文件路径为/etc /hosts)中,再由hosts文件来实现网络中域名的管理。最初Internet非常小,仅使用这个集中管理的文件就可以通过FTP为连入 Internet的站点和主机提供域名的发布和下载。每个Internet站点将定期地更新其主机文件的副本,并且发布主机文件的更新版本来反映网络的变化。但是,当Internet上的计算机迅速增加时,通过一个中心授权机构为所有Internet主机管理一个主机文件的工作将无法进行。文件会随着时间的推移而增大,这样按当前和更新的形式维持文件以及将文件分配至所有站点将变得非常困难。

域名系统为一个分布式数据库,它使本地负责控制整个分布式数据库的部分段,每一段中的数据通过客户,服务器模式在整个网络上均可存取,通过采用复制技术和缓存技术使得整个数据库可靠的同时,又拥有良好的性能。域名服务器包含数据库的部分段的信息,并可提供被称之为解析器的客户来访问。DNS的数据库结构形成一个倒立的树状结构,根的名字用空字符串""来表示,但在文本中用“.”来书写。树的每一个节点都表示整个分布式数据库中的一个分区(域),每个域可再进一步划分成子分区(域),每个域都有一个标签(label),标明了它与父域的关系。域也有一个域名(domain name),给出它在整个分布式数据库中的位置。在DNS中,域名全称是一个从该域到根的标签序列,以“.”分隔这些标签。该标签最多可包含63个字符。树中每一节点的完整域名为从该节点到根之间路径上的标签序列。如果根域在节点的域名中出现,该名字看起来就象以点结尾(实际上是以点和空标签作结尾)。这些以点结尾的域名被称之为绝对域名(Absolute Domain Name)。不以点结尾的域名被称之为相对域名。域(Domains)即为树状域名空间中的一棵子树,域的域名同该子树根节点的域名一样。也就是说,域的名字就是该域中最高层节点的名字。



DNS基于C/S(Client/Server,客户机/服务器)模式,因而分为Client和Server两种角色。Client扮演询问的角色,也就是向Server询问一个Domain Name,而Server必须要回答此Domain Name所对应的真正IP地址。而当地的DNS先会查自己的资料库。如果自己的资料库没有,则会往该DNS上所设的的其他DNS进行求助询问,依此得到答案之后,将收到的答案存起来,并回答客户。

DNS服务器会根据不同的授权区(Zone),记录所属该网域下的各名称资料,这个资料包括网域下的次网域名称及主机名称。在每一个名称服务器中都有一个高速缓存区(Cache),这个高速缓存区的主要目的是将该名称服务器所查询出来的名称及相对的IP地址记录在高速缓存区中,这样当下一次还有另外一个客户端到次服务器上去查询相同的名称时,服务器就不用在到别台主机上去寻找,而直接可以从缓存区中找到该名称记录资料,传回给客户端,以加速客户端对名称查询的速度。

举个例子,当DNS客户端向指定的DNS服务器查询网Internet上的某一台主机名称时,DNS服务器会在该资料库中找寻用户所指定的名称。如果没有,该服务器会先在自己的高速缓存区中查询有无该条纪录,如果找到该条名称记录后,会从DNS服务器直接将所对应到的IP地址传回给客户端;如果 DNS务器在资料记录查不到且高速缓存区中也没有时,服务器才会向别的DNS服务器查询所要的名称。例如,本地的DNS服务器会向最接近(比如属于同一个 IP地址段或者同一个ISP)的DNS服务器去要求帮忙找寻该名称的IP地址.在另一台服务器上也有相同的动作的查询,当查询到后会回复原本要求查询的服务器,该DNS服务器在接收到另一台DNS服务器查询的结果后,先将所查询到的主机名称及对应IP地址记录到高速缓存区中,最后在将所查询到的结果回复给客户端。这样就成功地完成了一次标准的DNS查询-应答过程。

2.DNS系统的组成

DNS系统基于客户机/服务器模式,从概念上说他主要由三个部分组成:

(1)域名空间:域名空间中的记录标识一组主机并提供他们的有关信息。域中的每一个节点都有它的有关信息的数据库。查询命令试图从这个数据库中提取适当的信息。简单地说,域名空间是所有不同类型信息的列表,这些信息是域名、IP地址、邮件别名和那些在DNS系统中能查到的内容。

(2)域名服务器:保持并维护域名空间中的数据的程序。每个域名服务器含有一个域名空间子集的完整信息,并保存其它有关部分的信息。一个域名服务器拥有它控制范围的完整信息。控制的信息按区进行划分,区可以分布在不同的域名服务器上,以便为每个区提供服务。每个域名服务器都知道所有负责其他区的域名服务器。如果来了一个请求,它请求给定域名服务器负责的那个区的信息,那么这个域名服务器只是简单地返回信息。但是,如果请求是不同区的信息,那么这个域名服务器就要与控制该区的相应服务器联系。

(3)解析器:解析器是简单的程序或子程序库,它从服务器中提取信息以响应对域名空间内主机的查询。

DNS是一个很复杂的概念,下表列出了常用的DNS术语。?

◆域:代表网络一部分的逻辑实体或组织。?

◆域名:主机名的一部分,它代表包含这个主机的域。它可以和域交换使用。?

◆主机:网络上的一台计算机。?

◆节点:网络上的一台计算机。?

◆域名服务器:提供DNS服务的计算机,它将DNS名字转化为IP地址。?

◆解析:把一个域名转化为与其相应的IP地址的过程。?

◆解析器:从域名服务器中提取DNS信息的程序或库子程序。?

◆反向解析:将给出的IP地址转化为其相应的DNS名字。?

◆欺骗:使网络看上去好象具有不同的IP地址或域名的行为。

3.DNS服务器的类型

DNS域名服务器是用来存储主机-域名映射信息的,这些服务器具体又可以分为3类:

(1)主DNS服务器(primary name server):它是特定域所有信息的权威性信息源。它从域管理员构造的本地磁盘文件中加载域信息,该文件(区文件)包含着该服务器具有管理权的一部分域结构的最精确信息。主服务器是一种权威性服务器,因为它以绝对的权威去回答对其管辖域的任何查询。

(2)辅助DNS服务器(secondary name server):它可从主服务器中复制一整套域信息。区文件是从主服务器中复制出来的,并作为本地磁盘文件存储在辅助服务器中。这种复制称为“区文件复制 ”。在辅助域名服务器中有一个所有域信息的完整拷贝,可以有权威地回答对该域的查询。因此,辅助域名服务器也称作权威性服务器。配置辅助域名服务器不需要生成本地区文件,因为可以从主服务器中下载该区文件。

(3)高速缓存服务器(caching-only server):可运行域名服务器软件,但是没有域名数据库软件。它从某个远程服务器取得每次域名服务器查询的结果,一旦取得一个,就将它放在高速缓存中,以后查询相同的信息时就用它予以回答。高速缓存服务器不是权威性服务器,因为它提供的所有信息都是间接信息。对于高速缓存服务器只需要配置一个高速缓存文件,但最常见的配置还包括一个回送文件,这或许是最常见的域名服务器配置。
分享到:
评论

相关推荐

    Linux图解DNS域名解析全过程

    总结起来,Linux下的DNS域名解析涉及多个层级的服务器通信和记录查找,理解这一过程可以帮助我们更好地理解网络工作原理,从而在遇到网络问题时能够快速定位和解决问题。而图解的学习方式让复杂的概念变得直观易懂,...

    使用Java实现DNS域名解析的简单示例

    以下是一个使用Java进行DNS域名解析的简单示例: ```java import java.net.*; public class DNSResolutionExample { public static void main(String[] args) throws Exception { // 基本的域名解析 ...

    05Linux网络服务DNS域名解析服务v10.pptx

    " BIND域名服务、DNS域名解析服务、缓存域名服务器、主域名服务器、从域名服务器、DNS系统的作用及类型、BIND安装和控制、BIND服务的配置文件" 本资源主要讲解了DNS域名解析服务的原理和实现,包括BIND域名服务、...

    基于Linux平台的域名解析系统.pdf

    这篇文档详细介绍了如何在Linux环境下部署一套域名解析系统,以提升系统的安全性和稳定性,减少由于Windows平台DNS系统存在的安全漏洞导致的问题。 首先,文章指出早期的DNS系统部署在Windows平台上,虽然易于学习...

    linux_dns.rar_dns linux_dns解析_linux_dns

    Linux DNS解析是网络服务中的关键一环,它负责将域名转换为对应的IP地址,以便进行网络通信。在本文中,我们将深入探讨Linux DNS解析过程,以及如何使用UDP协议自行实现这个过程。 首先,DNS(Domain Name System)...

    DynDNS95.zip_dns _linux 编程_动态域名_动态域名解析_域名解析

    DynDNS95.zip文件内容涉及了DNS(Domain Name System)在Linux环境下的编程,以及动态域名和域名解析的相关知识。以下是这些主题的详细说明: 一、DNS系统 DNS是互联网的核心组成部分之一,它将易于记忆的域名(如...

    2022年优秀-Linux网络服务DNS域名解析服务v.pptx

    Linux网络服务中的DNS域名解析服务是网络基础设施的关键组成部分,它负责将人类可读的域名转换为网络设备可以识别的IP地址。在RHEL6(Red Hat Enterprise Linux 6)环境中,DNS服务通常由BIND(Berkeley Internet ...

    linux下动态域名解析

    总的来说,Linux下的动态域名解析涉及了网络基础知识、DNS系统工作原理以及Linux系统管理。通过正确配置和使用像`gnhostlinux`这样的客户端工具,我们可以有效地管理和保持动态IP地址的域名映射,从而实现稳定的远程...

    linux下DNS服务器的配置,DNS的辅助服务器配置.doc

    Linux 下 DNS 服务器的配置是指在 Linux 操作系统中安装和配置 DNS 服务器,以提供域名解析服务。DNS(Domain Name System)是互联网上的一种域名解析系统,它可以将人类易于记忆的域名转换为计算机易于识别的 IP ...

    Linux下DNS反向解析程序C原代码

    在Linux操作系统中,DNS(Domain ...综上所述,这个Linux下的DNS反向解析程序C原代码是一个学习和实践网络编程、C语言以及多线程技术的好例子。通过不断优化,它可以成为一个高效且可靠的工具,服务于各类网络环境。

    Linux系统DNS域名服务器实验讲解

    ### Linux系统DNS域名服务器实验讲解 #### 知识点一:熟悉域名服务器的各种角色 在互联网上,域名服务器(DNS)扮演着至关重要的角色,它将人类可读的域名转换成计算机可理解的IP地址。根据功能不同,DNS服务器...

    linux中DNS配置

    Linux中DNS配置详解 Linux中DNS配置是 Linux 管理必学的内容,对于初学者来说可能会感到困惑。下面将详细讲解 Linux 中 DNS 配置的步骤和原理。 目录 1. DNS 服务器简介 2. 配置 DNS 服务器 3..named.conf 文件...

    DNS 解析协议 c 函数, 实例, 方便构造自己的非阻塞解析函数, 适用于任何平台

    DNS(Domain Name System)是互联网上的一项核心服务,它负责将域名转换为对应的IP地址,以便于用户通过易记的域名访问网站或服务。在IT领域,理解和掌握DNS解析协议对于网络编程至关重要,特别是当你需要编写自定义...

    linux下DNS配置详解

    在Linux系统中,DNS(Domain Name System)是网络服务的核心组成部分,它负责将域名转换为IP地址,使得用户可以通过易记的域名访问网络资源。本文将深入探讨Linux下的DNS配置,帮助你理解其工作原理并掌握配置方法。...

    Linux下DNS配置文件祥解

    ### Linux下DNS配置文件详析 DNS(Domain Name System)是互联网中不可或缺的服务之一,它负责将人类可读的域名转换成计算机可识别的IP地址。在Linux系统中,配置DNS服务器通常涉及到BIND(Berkeley Internet Name ...

    Linux下DNS服务器的架构

    1. 域名解析:DNS的主要功能是将域名解析成对应的IP地址,使得用户可以通过输入域名而非复杂的IP地址访问网络资源。 2. 分层结构:DNS采用分层的域名层次结构,如com、org、edu等顶级域,以及在其下的二级域和三级域...

    在linux下搭建(域名解析)DNS服务图文教程参照.pdf

    在Linux环境下搭建DNS服务是一项重要的网络管理任务,它涉及到网络中的域名解析,使得用户可以通过易于记忆的域名访问网络资源。本教程将详细讲解如何在Linux系统中安装和配置DNS服务器,实现基本的域名解析和子域...

    域名解析服务器.pdf

    BIND域名解析服务器是一款广泛使用的DNS服务软件,它能够将域名转换成相应的IP地址,从而让用户的计算机能够通过域名访问互联网上的服务器。DNS(Domain Name System,域名系统)是因特网的一项核心服务,它作为将...

Global site tag (gtag.js) - Google Analytics