DNS原理及其解析过程
为什么需要DNS将域名解析为IP地址?
大多数网络通信都是基于TCP/IP的,而TCP/IP又是基于IP地址的。 因此,计算机在网络上通信时,只能识别“202.96.134.133”等IP地址,而不能识别域名。 我们无法记住超过10个IP地址的网站,所以当我们访问一个网站时,我们通常会在浏览器地址栏中输入域名来看到我们需要的页面。 这是因为有一个“DNS服务器”计算机自动将我们的域名“翻译”成对应的IP地址,然后调用该IP地址对应的网页。
DNS到底是什么?
DNS(Name)是“ Name ”的英文缩写。 它是组织成域层次结构的计算机和网络服务命名系统。 它用于 TCP/IP 网络。 它提供的服务是主机名和域名的转换。 适用于 IP 地址。 DNS就是这样一个“翻译器”,它的基本工作原理可以用下图来表示。
DNS进程?
关于DNS获取过程:
DNS 是一个应用层协议。 事实上,它适用于其他应用层协议,包括但不限于 HTTP、SMTP 和 FTP。 它用于将用户提供的主机名解析为IP地址。
具体流程如下:
① DNS客户端运行在用户主机上,也就是说我们的PC或者手机客户端运行着DNS客户端。
②浏览器从接收到的URL中提取域名字段,即访问的主机名,如
http://www.baidu.com/
,并将该主机名传送给DNS应用程序的客户端
③DNS客户端向DNS服务器发送查询报文,其中包含要访问的主机名字段(包括一系列缓存查询和分布式DNS集群工作)
④DNS客户端最终会收到回复消息,其中包含主机名对应的IP地址。
⑤浏览器从DNS收到IP地址后,就可以向该IP地址所在的HTTP服务器发起TCP连接。
DNS服务的架构是怎样的?
DNS名称的主要作用是将主机域名转换为IP地址。
假设用户主机上运行的某个应用程序(例如 Webl 浏览器或邮件阅读器)需要将主机名转换为 IP 地址。 这些应用程序将调用 DNS 客户端并指定需要转换的主机名。 (在许多基于 UNIX 的机器上,应用程序需要调用 () 才能执行此转换。)收到用户主机的 DNS 客户端后,它会向网络发送 DNS 查询消息。 所有DNS请求和回复报文中使用的UDP数据报都是经过几毫秒到几秒的延迟后通过53端口发送的(至于为什么使用UDP,请看为什么只有13个域名根服务器? - 郭无心的回答)最后,用户主机上的 DNS 客户端收到一条提供所需映射的 DNS 回复消息。 该查询的结果将传递给调用 DNS 的应用程序。 因此,从调用用户主机上的应用程序的角度来看,DNS是一个黑匣子,提供简单直接的翻译服务。 但事实上,实现这项服务的黑匣子非常复杂。 它由分布在世界各地的大量 DNS 服务器和定义 DNS 服务器如何与查询主机通信的应用层协议组成。
为什么DNS不采用单点集中式设计方式,而是采用分布式集群工作方式?
DNS 的一种简单设计模式是仅使用 上的一台 DNS 服务器,其中包含所有映射。 在这种集中式设计中,客户端直接将所有查询请求发送到单个 DNS 服务器。 DNS 服务器直接响应所有查询客户端。 虽然这种设计方法很诱人,但它并不适合当前的互联网,因为当今的互联网拥有庞大且数量不断增长的主机。 这种中心化的设计会有单点故障(一个打嗝,全世界都担心)、通信能力(亿万台主机发送DNS查询消息请求,包括但不限于所有HTTP请求、电子邮件消息服务器、TCP长连接)服务)、长距离时延(例如从澳大利亚到纽约)、高维护开销(因为所有主机名-IP 映射必须在服务站点更新)等问题
DNS服务器一般分为三类:根DNS服务器、顶级DNS服务器和权威DNS服务器。
使用分布式分层数据库模型和缓存方法解决单点中心化问题。
DNS域名
域名系统充当分层分布式数据库,其中包含各种类型的数据,包括主机名和域名。 DNS 数据库中的名称形成了称为域名称空间的分层树结构。 域名包含单个标签分隔符,例如:
im.qq.com
完全限定域名 (FQDN) 唯一标识 DNS 分层树中主机的位置,由从根引用的主机名列表中的指定路径中点分隔。下图显示了名为 im 的主机
qq.com
DNS 树示例。主机的 FQDN 是
im.qq.com
DNS 域的名称层次结构
DNS 域名空间是如何组织的
下表描述了用于按功能描述 DNS 域名的五个类别,以及每种名称类型的示例。
例如:
www.uestc.edu.cn
DNS 和域
互联网域名系统由名称注册机构维护,这些机构按组织和国家分配顶级域名。 这些域名符合国际标准 3166。下表列出了保留供组织内部使用的许多现有缩写以及国家/地区使用的两字母和三字母缩写。 一些常见的DNS域名如下:
资源记录
DNS 数据库中包含的资源记录 (RR)。 每个 RR 标识数据库中的一个特定资源。 我们在搭建DNS服务器的时候,经常会用到SOA、NS、A等记录。在维护DNS服务器的时候,我们会用到MX和CNAME记录。
常见的RR如下所示:
DNS服务工作流程
当 DNS 客户端需要在查询程序中使用名称时,它会查询本地 DNS 服务器来解析该名称。 客户端发送的每条查询消息包含3条信息,用于指定服务器应该回答的问题。
● 指定的DNS 域名,表示为完全限定域名(FQDN)。
● 指定查询类型,按类型指定资源记录或作为查询操作的专门类型。
● 指定DNS 域名类别。
对于 DNS 服务器,应始终将其指定为类别。例如,指定的名称可以是计算机的完全限定域名,例如
im.qq.com
,并且指定的查询类型用于搜索按该名称的地址资源记录。
DNS 查询可以通过多种不同的方式解决。 客户端有时还可以使用从先前查询获得的缓存信息就地回答查询。 DNS 服务器可以使用自己的资源记录信息缓存来回答查询,也可以代表请求客户端查询或联系其他 DNS 服务器以完全解析名称,然后将答案返回给客户端。 这个过程称为递归。
或者,客户端本身可以尝试联系其他 DNS 服务器来解析名称。 如果客户端这样做,它将根据服务器的响应使用独立的附加查询。 这个过程称为迭代,即DNS服务器之间的交互查询是迭代查询。
DNS查询的流程如下图所示。
1、在浏览器中输入www..com域名。 操作系统首先会检查其本地的hosts文件是否有这个URL映射关系。 如果有,就会先调用IP地址映射来完成域名解析。
2. 如果hosts中没有该域名的映射,则搜索本地DNS解析器缓存,看是否有该URL的映射关系。 如果有则直接返回完成域名解析。
3、如果主机与本地DNS解析器缓存没有对应的URL映射关系,则首先查找TCP/ip参数中设置的首选DNS服务器。 这里我们称之为本地DNS服务器。 当本服务器收到查询时,如果本地配置区资源中包含查询到的域名,则将解析结果返回给客户端,完成域名解析。 这个决议具有权威性。
4、如果要查询的域名不是本地DNS服务器区域解析的,但服务器缓存了URL映射关系,则会调用这个IP地址映射来完成域名解析。 这个决议并不具有权威性。
5、如果本地DNS服务器的本地区域文件和缓存解析无效,则按照本地DNS服务器的设置(是否设置转发器)进行查询。 如果不使用转发模式,本地DNS会将请求发送到13个根DNS服务器。 DNS服务器收到请求后,会判断谁授权管理这个域名(.com),并返回一个负责顶级域名服务器的IP。 本地DNS服务器收到IP信息后,会联系负责.com域的服务器。 负责.com域的服务器收到请求后,如果无法解析,就会找到管理.com域的下级DNS服务器地址(),交给本地DNS服务器。 当本地DNS服务器收到这个地址后,就会寻找域服务器,重复上述动作,进行查询,直到找到www..com主机。
6、如果采用转发方式,DNS服务器会将请求转发给上级DNS服务器,由上级服务器进行解析。 如果上层服务器无法解析,则要么查找根DNS,要么将请求转发给上层。 ,如此循环。 无论本地DNS服务器使用转发还是根提示,最终结果都会返回到本地DNS服务器,然后DNS服务器返回给客户端。
客户端向本地DNS服务器的查询是递归查询,而DNS服务器之间的交互查询是迭代查询。
附录:
本地DNS配置转发和未配置转发报文分析
创建新的 DNS。 这里我不会描述如何创建它。 请参阅我的上一篇博文“安装bind[部署智能DNS]”
1、DNS服务器不转发
在192.168.145.228服务器上安装软件,打开,将数据包设置为UDP过滤,在192.168.145.12客户端上用命令查询。 您立即可以看到本地 DNS 服务器直接检查世界上 13 个根域中的一些。 站,然后逐步解析,通过迭代,直到找到对应的IP,即220.181.118.87。
本地DNS服务器获取搜狐的IP后,将IP返回给192.168.145.12客户端,完成解析。
2. DNS服务器设置转发
因为第一步验证时已经使用了搜狐域名,并且被缓存了,为了不受到上一步实验的干扰,我们在客户端电脑上192.168.145.12去百度一下就知道了。 从图中可以看出,本地DNS将请求转发给192.168.133.10服务器,133.10服务器将获取到的IP返回给本地DNS,然后本地DNS将IP告诉DNS客户端,完成解析。
部分内容参考以下博客
http://369369.blog.51cto.com/
http://369369.blog.51cto.com/319630/812889
扫一扫在手机端查看
-
Tags : 域名互联是什么_DNS解析的过程是什么,求详细的?
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。