首页 > 编程知识 正文

dns解析异常,dns原理及其域名解析过程

时间:2023-05-04 20:19:33 阅读:118670 作者:1846

http://www.Sina.com/http://www.Sina.com /

由于网络通信大部分基于TCP/IP,而TCP/IP基于IP地址,因此计算机在通过网络进行通信时只能识别IP地址,如“202.96.134.133” 因为我们记不住10个以上IP地址的网站,所以在访问网站时,经常在浏览器的地址栏中输入域名,就可以看到需要的页面。 这是因为名为“DNS服务器”的计算机会自动将我们的域名“翻译”为相应的IP地址,并调用与IP地址对应的页面。

什么是DNS?

域名系统(DNS )是“域名系统”的英文缩写,是组织在TCP/IP网络使用的域层次结构中的计算机和网络服务的命名系统,主机名和域名均为IP DNS是这样的“dlc”,其基本结构可以用下图表示。

DNS域名

域名用作层次结构和分布式数据库,并包含各种类型的数据,包括主机名和域名。 DNS数据库中的名称形成一个称为域名空间的分层树。 域名包含单个标签分隔符,如im.qq.com。

完全限定域名(FQDN )唯一标识主机在DNS分层结构树中的位置,并用指定路径的中点分隔根引用的主机名称列表。 下图显示了一个称为主机和im中qq.com DNS树的示例。 主机的FQDN是im.qq.com。

DNS域的名称层次结构

DNS域名空间组织方法

有关用于在功能别名命名空间中描述DNS域名的五个类别的说明,请参见下表和每个名称类型的示例。

DNS与互联网域

internet域名系统由名称注册机构负责维护分配,由组织和国家顶级域在internet上管理。 这些域名符合国际标准3166。 一些现有的缩写用于组织内部以及两个和三个字符的国家/地区,保留的缩写如下表所示。 一些常见的DNS域名包括:

资源记录

DNS数据库中包含的资源记录(RR )。 每个RR标识数据库中的特定资源。 我们制作DNS服务器时,经常使用SOA、NS、a等记录。 维护DNS服务器时,使用MX、CNAME记录。

常见的RR请参考下图:

Dns服务的工作步骤

如果DNS客户端需要查询程序使用的名称,请联系本地DNS服务器以解析该名称。 客户端发送的每个查询消息都包含三条信息,用于指定服务应回答的问题。

指定的DNS域名显示为完全限定域名(FQDN )。

可以按类型指定资源记录或将其指定为查询操作的专业类型的查询类型。

DNS域名的指定类别。

对于DNS服务器,必须始终将其指定为internet类。 例如,指定的名称是计算机的完全限定域名,如im.qq.com,指定的查询类型用于按该名称搜索地址资源记录。

DNS查询通过多种方式进行分析。 客户端还可以使用从以前的查询中获取的缓存信息即时响应查询。 DNS服务器可以使用自己的资源日志信息缓存来响应查询,也可以代表客户端查询另一个DNS服务器以完全解析名称,然后将响应返回给客户端。 这个过程称为递归。

此外,客户端本身还可以尝试联系其他DNS服务器解析名称。 在这种情况下,客户端将使用基于服务器响应的独立查询和其他查询。 这个过程称为迭代。 这意味着DNS服务器之间的交互查询是迭代查询。

DNS查询的过程如下图所示。

1、在浏览器中输入www.qq.com域名后,操作系统首先检查自己本地的hosts文件是否存在此URL映射关系,如果有,首先调用此IP地址映射,完成域名解析

2、如果hosts中没有此域名映射,则查找本地DNS解析器缓存,查看是否存在此网站的映射关系,如果有,直接返回,完成域名解析。

3、如果主机和本地DNS解析器缓存没有正确的网址映射关系,请首先查找设置为TCP/ip参数的首选DNS服务器。 此处称为本地DNS服务器。 此服务器收到查询时,如果被查询的域名包含在本地配置本地资源中,则将解析结果返回给客户机,并完成域名解析。 这个解决是有权威的。

4、如果要查询的域名未在本地DNS服务器区域解析,且此服务器已缓存此网址映射关系,则调用此IP地址映射,完成域名解析。 这个解决没有权威。

5、本地DNS服务器本地区域文件和缓存解析均禁用时,根据本地DNS服务器设置(是否设置转发器)进行查询,未使用传输模式时,本地DNS 根DNS服务器收到请求后,确定此域名(.com)由谁授权管理,并返回到负责该顶级域服务器的IP。 本地DNS服务器收到IP信息后,会联系负责.com域的此服务器。 负责此.com域的服务器在收到请求后,如果无法自行解决,请查找管理.com域的下一级DNS

服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。 

6、如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

    从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询。

附录:
本地DNS配置转发与未配置转发数据包分析
    新建一DNS,具体怎么建我这里就不再描述了,见我的上一篇博文《在Win2003中安装bind【部署智能DNS】》
1、DNS服务器不设转发
    在192.168.145.228服务器上安装上wireshark软件,并打开它,设置数据包为UDP过滤,在192.168.145.12客户机上用nslookup命令查询一下www.sohu.com,马上可以看到本地DNS服务器直接查全球13台根域中的某几台,然后一步步解析,通过递代的方式,直到找到www.sohu.com对应的IP为220.181.118.87。
    本地DNS服务器得到www.sohu.com的IP后,它把这个IP返回给192.168.145.12客户机,完成解析。

2、DNS服务器设置转发

    因www.sohu.com域名在第一步的验证中使用过,有缓存,为了不受上步实验干扰,我们在客户机上192.168.145.12上nslookup www.baidu.com。从图上看,本地DNS把请求转发至192.168.133.10服务器,133.10服务器把得到的IP返回给本地DNS,然后本地DNS再把IP告诉DNS客户机,完成解析。

 

转载于:https://blog.51cto.com/369369/812889

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。