DNS详解

news/2024/12/2 17:02:05/

2.4 DNS:因特网的目录服务

        我们首先要了解域名和IP地址的区别。IP地址是互联网上计算机唯一的逻辑地址,通过IP地址实现不同计算机之间的相互通信,每台联网计算机都需要通过IP地址来互相联系和分别。

        但由于IP地址是由一串容易混淆的数字串构成,人们很难记忆所有计算机的IP地址,这样对于我们日常工作生活访问不同网站是很困难的。基于这种背景,人们在IP地址的基础上又发展出了一种更易识别的符号化标识,这种标识由人们自行选择的字母和数字构成,相比IP地址更易被识别和记忆,逐渐代替IP地址成为互联网用户进行访问互联的主要入口。这种符号化标识就是域名。

        域名虽然更易被用户所接受和使用,但计算机只能识别纯数字构成的IP地址,不能直接读取域名。因此要想达到访问效果,就需要将域名翻译成IP地址。而DNS域名解析承担的就是这种翻译效果。

2.4.1 DNS提供的服务

主要服务

提供主机名到IP地址的转换,是DNS最重要的服务

次要服务

  • 主机别名:有的主机拥有复杂的主机名,所以会为复杂的主机名起一个或多个主机别名,复杂的主机名也称为规范主机名
  • 邮件服务器的别名
  • 负载分配

2.4.2 DNS的名字空间

1.域名结构

一个层面命名设备会有很多重名,DNS采用层次树状结构的命名方法为主机起域名。

因特网被划分成了几百个顶级域

  • 通用的顶级域:.com   .edu   .gov   .int   .mil   .net   .org   .firm   .hsop   .web   .arts   .rec 
  • 国家的顶级域:.cn   .us   .nl   .jp

每个顶级域下面可划分为若干子域,子域下面可进一步划分为若干子域,树叶是主机

域名结构:从本域往上,直到树根,中间使用“.”间隔不同的级别。例如:ustc.edu.cn auto.ustc.edu.cn。

注意:

域的域名:可以用于表示一个域

主机的域名:一个域上的一个主机

域名的管理:

  • 一个域管理其下的子域。例如,.jp管理 ac.jp  co.jp
  • 创建一个新的域,必须征得它所属域的同意

域与物理网络无关:

  • 域遵从组织界限,而不是物理网络。一个域的主机可以不在一个网络,一个网络的主机不一定在一个域
  • 域的划分是逻辑的,而不是物理的

2.4.2 DNS服务器的类型

        为了避免由于单个信息源带来的各种问题,DNS名字空间被划分为一些不重叠的区域。每个圈起来的区域包含域名树的一部分。区域边界应该放置在区域中的什么位置由该区域的的管理员来决定。(取决于需要在哪里使用多少个名字服务器)

        每个区域都与一个或多个域名服务器关联,这些服务器是持有该区域数据库的主机,通常情况下,一个区域有一个主域名服务器和一个或多个辅域名服务器。主服务器从自己磁盘的一个文件读入有关域名的信息,辅域服务器从主域名获取域名信息。为了提高可靠性,一些域名服务器可以设置在区域外面。

        DNS 使用了大量的 DNS 服务器 ,它们以层次方式组织且分布在全世界范围内,没有 DNS 服务器拥有因特网上所有主机的映射。相反,这些映射分布在所有的 DNS 服务器上。大致说来,有3种类型的 DNS 服务器:根 DNS 服务器、顶级域 (Top-Level Domain, TLD) DNS 服务器、权威 DNS 服务器。这些不同类型的DNS服务器以下图所示的层次结构组织起来。

根DNS服务器:有400 多个根名字服务器遍及全世界,这些根名字服务器由13个不同的组织管理。

顶级域DNS服务器:对于每个顶级域(如 .com .org .net .edu .gov) 和所有国家的顶级域(如 .uk .fr .ca .jp)都有 TLD 服务器 (或服务器集群)与之对应。

权威DNS服务器:在因特网上具有公共可访问主机(如 Web 服务器和邮件服务器)的每个组织机构必须提供公共可访问的 DNS 记录,这些记录将这些主机的名字映射为 IP 地址。一个组织机构的权威 DNS 服务器收藏了这些 DNS 记录。一个组织机构能够选择实现它自己的权威 DNS 服务器以保存这些记录;另一种方法是,该组织能够支付费用,让这些记录存储在某个服务提供商的一个权威 DNS 务器中,多数大学和大公司实现和维护它们自已基本和辅助(备份)的权威 DNS 服务器。

本地DNS服务器

根、 TLD 和权威 DNS 服务器都处在该 DNS 服务器的层次结构中,有另一类重要的 DNS 服务器,称为本地 DNS 服务器,一个本地 DNS 服务器并不属于DNS服务器的层次结构,但它是至关重要的。当主机发出 DNS 请求时,该请求被发往本地 DNS 服务器,它起着代理的作用,并将该请求转发 DNS 服务器层次结构中。

本地DNS服务器所处地理位置

对某机构 ISP而言 ,本地 DNS 服务器可能就与主机在同一个局域网中;对于某居民区 ISP 来说,本地 DNS 服务器通常与主机相隔不超过几台路由器。严格说来,每个ISP(如一个居民区的 ISP 或一个机构的 ISP) 都有一台本地 DNS 服务器。

2.4.3 DNS对域名解析的过程

当我们在浏览器地址栏中输入www.baidu.com时,DNS解析将会有将近10个步骤,这个过程大体大体由一张图可以表示:

整个过程大体描述如下,其中前两个步骤是在本地电脑内完成的,后8个步骤涉及到真正的域名解析服务器:

第一步

      本地电脑会检查浏览器缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等,域名被缓存的时间限制可以通过TTL属性来设置。这个缓存时间太长和太短都不太好,如果时间太长,一旦域名被解析到的IP有变化,会导致被客户端缓存的域名无法解析到变化后的IP地址,以致该域名不能正常解析,这段时间内有一部分用户无法访问网站。如果设置时间太短,会导致用户每次访问网站都要重新解析一次域名。

第二步

        如果浏览器缓存中没有数据,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。其实操作系统也有一个域名解析的过程,在Linux中可以通过/etc/hosts文件来设置,而在windows中可以通过配置C:\Windows\System32\drivers\etc\hosts文件来设置,用户可以将任何域名解析到任何能够访问的IP地址。例如,我们在测试时可以将一个域名解析到一台测试服务器上,这样不用修改任何代码就能测试到单独服务器上的代码的业务逻辑是否正确。正是因为有这种本地DNS解析的规程,所以有黑客就可能通过修改用户的域名来把特定的域名解析到他指定的IP地址上,导致这些域名被劫持。

第三步

        前两个过程无法解析时,就要用到我们网络配置中的"DNS服务器地址"了。操作系统会把这个域名发送给这个本地DNS服务器。每个完整的内网通常都会配置本地DNS服务器,例如用户是在学校或工作单位接入互联网,那么用户的本地DNS服务器肯定在学校或工作单位里面。它们一般都会缓存域名解析结果,当然缓存时间是受到域名的失效时间控制的。大约80%的域名解析到这里就结束了,后续的DNS迭代和递归也是由本地DNS服务器负责

第四步

       如果本地DNS服务器仍然没有命中,就直接到根DNS服务器请求解析

第五步

       根DNS服务器返回给本地DNS域名服务器一个顶级DNS服务器地址,它是国际顶级域名服务器,如.com、.cn、.org等,全球只有13台左右。

第六步

       本地DNS服务器再向上一步获得的顶级DNS服务器发送解析请求。

第七步

        接受请求的顶级DNS服务器查找并返回此域名对应的Name Server域名服务器的地址,这个Name Server服务器就是我要访问的网站域名提供商的服务器,其实该域名的解析任务就是由域名提供商的服务器来完成。   比如我要访问www.baidu.com,而这个域名是从A公司注册获得的,那么A公司上的服务器就会有www.baidu.com的相关信息。

第八步

       Name Server服务器会查询存储的域名和IP的映射关系表,再把查询出来的域名和IP地址等等信息,连同一个TTL值返回给本地DNS服务器。

第九步

       返回该域名对应的IP和TTL值,本地DNS服务器会缓存这个域名和IP的对应关系,缓存时间由TTL值控制。

第十步

       把解析的结果返回给本地电脑,本地电脑根据TTL值缓存在本地系统缓存中,域名解析过程结束在实际的DNS解析过程中,可能还不止这10步,如Name Server可能有很多级,或者有一个GTM来负载均衡控制,这都有可能会影响域名解析过程。

实践中,查询通常遵循上述模式。也就是从请求主机到本地DNS服务器的查询是递归的,其余的查询是迭代的。但也有查询全部是递归的模式,如下图所示:

DNS缓存

为了改善时延性能并减少在因特网上到处传输的 DNS 报文数,DNS 广泛使用了缓存技术,DNS 缓存的原理非常简单,在一个请求链中,当某 DNS 服务器接收 DNS 回答(例如,包含某主机名到 IP 地址的映射)时,它能将映射缓存在本地存储器中,当再次收到DNS请求报文时,如果缓存中有此映射,则直接返回回去。由于主机和主机名与 IP 地址间的映射并不是永久的,DNS 服务器在一段时间后(通常设置为两天)将丢弃缓存的信息。

2.4.4 DNS记录和报文

1.DNS记录

共同实现 DNS 分布式数据库的所有 DNS 服务器存储了 资源记录 (Resource Record , RR), 资源记录提供了主机名到 IP 地址的映射,每个 DNS 回答报文包含了一条或多条资源记录。

资源记录是一个包含了下列字段的四元组:

(Name, Value , Type , TTL)

TTL 是该记录的生存时间,它决定了资源记录应当从缓存中删除的时间。

如果 Type= A, Name 是主机名, Value 是该主机名对应的 IP 地址。

如果 Type= NS, Name 是个域(如 foo. com) , Value 是个知道如何获得该域中主机 IP 地址的权威 DNS 服务器的主机名。

如果 Type= CNAME,,Value 是别名为 Name 的主机对应的规范主机名。

如果 Type= MX ,则 Value 是个别名为 Name 的邮件服务器的规范主机名。

2.DNS报文

DNS只有查询报文和回答报文。并且,这二种报文具有相同的格式,如下图所示。DNS报文中个字段的含义如下所示:

首部区域 

  • 标识符字段:标识符是一个 16 特的数,用于标识该查询,这个标识符会被复制到对查询的回答报文中,以便让客户用它来匹配发送的请求和接收到的回答。
  • 标志字段:标志字段中含有若千标志。1比特的“查询/回答“标志位指出报文是查询报文 (O) 还是回答报文 (1) 。当某 DNS 服务器是所请求名权威 DNS 服务器时, 1比特的"权威的" 标志位被置在回答报文中。如果客户 (主机或者 DNS 服务器)在该 DNS 服务器没有某记录 希望 它执行递归查询,将设置特的“希望递归”标志位,如果该 DNS 服务器支持递归查询 ,在它的回答报文中会比对比特的"递归可用“标志位置位。
  • 4个有关数量的字段:这些字段指出了在首部后的4类数据区域出现的数量。

问题区域

问题区域包含着正在进行的查询信息,该区域包括:①名字字段,包含正在被查询的主机名;②类型字段,指出有关该名字的正被询问的问题类型。

权威区域

权威区域包含了其它权威服务器的记录

附加区域

附加区域包含了其他有帮助的记录。例如,对于一个 MX 请求的回答报文的回答区域包含了一条资源记录,该记录提供了邮件服务器的规范主机名,附加区域包含一个类型A记录,该记录提供了用于该邮件服务器的规范主机名的 IP 地址。

3.在DNS数据库中插入记录

当我们向某些注册登记机构注册域名 networkutopia. com 时,需要向该机构提供我们的基本和辅助权威 DNS 服务器的名字和 IP 地址,假定该名字和 IP 地址是 dnsl. networkutopia com dns2 nehvorkutopia. com 及 212. 212. 212.1 和 212.212.212.1, 对这两个权威 DNS 服务器的每个,该注册登记机构确保将一个类型 NS 个类型和一个类型A的记录输入 TLD com 服务器。特别是对于用于 networkutopia com 的基本权威服务器,该注册登记机构将下列两条资源记录插入该 DNS 系统中

(networkutopia.com,dnsl.netwokutopia.com,NS)

(dnsl.networkutopia.com,212.212.212.1,A)

你还必须确保用于 Web 服务器 www. networkutopia. com 的类型 A 资源记录和用于邮件服务器 mail.networkutopia.com的类型 MX 资源记录被输入到我们自己的权威 DNS 服务器中。直到最近,每台 DNS 服务器中的内容都是静态配置的,例如来自系统管理员创建的配置文件。最近,在 DNS 协议中添加了一个更新选项,允许通过 DNS 报文对数据库中的内容进行动态添加或者删除,[RFC 2136]和[RFC 3007] 定义了 DNS 动态更新.

一旦完成所有这些步骤,人们将能够访问我们的 Web 站点,并向我们公司的雇员发送电子邮件。


http://www.ppmy.cn/news/208587.html

相关文章

前端开发职业规划指南:如何做好职业规划与发展

引言 前端开发是目前互联网行业中最火热的职业之一,也是非常具有发展前景的职业之一。随着互联网技术的不断更新和发展,前端开发的职业规划也在不断地发生变化。本文将从几个方面来探讨前端开发的职业规划。 一、职业发展路径 1.前端初级工程师 前端初…

Lecture 5 Part of Speech Tagging

目录 POS application: Information Extraction 词性应用:信息提取 POS Open Class 开放类词性Problem of word classes: Ambiguity 词类问题:模糊性Tagsets 标记集Penn Treebank Tags:Derived Tags: 衍生标签Tagged Text Example 标记文本示例Reasons f…

android数据线接口分类,安卓手机数据线接口类型

大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。 安卓手机数据线接口类型有: 1、安卓mini接口的数据线,现在多用于按键功能手机、老年手机。分为只充电和数据充电两种。 2、安卓micro usb数据线,…

Lecture 7 Deep Learning for NLP: Feedforward Networks

目录 Deep LearningFeedforward Neural Network 前馈神经网络Neuron 神经元Output Layer 输出层OptimizationRegularization 正则化Topic Classification 主题分类Language Model as Classifiers 语言模型作为分类器Word Embeddings 词嵌入Training a Feed-Forward Neural Netw…

android 怎么看架构,怎么查看手机设备架构

手机设备架构怎么样呢,呢?有什么方法可以查看手机设备架构?下面是小编收集整理的,希望对大家有帮助~~ 查看手机设备架构的方法 工具/原料 安卓手机一台 超级终端软件 准备步骤 1在某些情况下,我们必须要对手机的设备架构进行了解&#xff0…

给十年前手机刷Linux,一台十年前的手机,竟然能刷遍市面上所有的手机操作系统 zt...

说到每一位真正的搞机者,一直以拥有一台HTC HD2为荣,以刷过、体验过无数的操作系统为荣。就像每一位搞机法老,也许不为真正能体验多好的性能,但能够看着刚刷完的HTC HD2,在不同系统开机画面亮屏的那一刻,那…

手机相机专业模式参数详解

手机相机专业模式参数详解 1. M (measure) 大写的M,是指测光图标,下边有三个子图标,第一个矩阵测光,适合广阔的风景照,第二个中央测光,适合有主体画面中间的场景,第三个…

手机当读卡器

手机当读卡器 目标:将门禁卡、考勤卡、会员卡、停车卡、电梯卡等等各种卡模拟进手机里,模拟后可用手机代替刷卡,无需root,不用电脑 背景介绍: 1、前言   目前,IC卡已被广泛应用于身份识别、金融消费、安…