DNS域名解析协议系统的运行流程详解

所属分类: 网络 / 网络其他 阅读数: 1508
收藏 0 赞 0 分享

DNS协议的运转需要客户端和服务器进行交互。由于服务器端需要存储大量的域名信息,同时每天需要应答海量的解析请求,因此它的设计必须遵循分布式系统。客户端向一台服务器请求解析服务时,对方可能没有相应的域名信息,于是它会向上一层查询,获得拥有给定域名信息的服务器,然后把对应服务器的信息归还给客户端,然后客户端再重新发起请求。

我们还需要关注域名信息如何在服务器上存储。在域名服务器上,信息存储有两种方式,一种是域名信息以二进制格式存储,这种格式对应的名称叫Resource Record Filed Format,同时为了方便管理员管理,这些信息又通过文本形式展现出来,对应的格式称为Master File Representation,管理员通过修改后者就能使得对应的二进制信息进行相应变换:

Resource Record 是一种特定数据结构,专门用于存储域名解析相关信息,例如域名对应的服务器IP,域名解析服务器地址等,在后面我们解析数据包时再深入探讨。

域名解析其实有三种形式,第一种是我们熟悉的,将域名发给服务器然后获得域名对应IP;第二种叫反向解析,将IP发给服务器然后获得对应域名;第三种叫电子邮件解析,将邮件地址发给服务器然后获得邮件的接收对象IP。我们将主要关注第一种形式的原理和实现。

当我们执行第一种域名解析时,首先要做的是获得域名服务器地址。这个过程并非一撮而就,有可能我们查询第一个服务器时,它给我们返回另一个服务器的地址,然后我们继续查询;第二步是确定服务器后,我们要解析它返回来的数据内容。在这个过程中,第二步相对容易,而第一步则比较棘手。

在查询对应域名服务器时有两种方式,一种是循环式,第一个域名没有对应信息,但返回另一个它认为有对应信息的服务器,接着客户端向第二个服务器请求,第二个服务器又返回另一个服务器信息,该过程依次循环直到找到对应服务器为止:

第二种叫递归式,它与一种的区别在于,服务器承担起客户端查找对应服务器的职责,服务器会反复向其他服务器查询,直到拿到对应域名信息后,直接返回给客户端:

接下来我们看看DNS数据包的基本格式,首先第一部分叫头部,用于描述消息类型,以及后续数据结构的相关信息;第二部分叫”问题“,它用来包含客户端想向服务器查询的信息;第三部分叫”答案“,是服务器用于回复客户端查询;第四部分叫Authority,如果请求没有得到全部答复,这部分内容告诉客户端向哪个服务器进行查询;第五部分叫Additional,这部分包含客户端查询信息的附加说明,它并非必须,所以数据包的基本结构如下:

我们用wireshark抓取dns有关的消息包后,对照上面描述的条目进行解析。启动wireshark,然后使用关键词dns过滤,然后在浏览器里输入一个你以前没有访问过的网址,如果输入已经访问过的,浏览器会有缓存,因此不会走dns协议。以下是我抓取到的一个DNS解析请求包:

首先是头部,它包含12字节,从Transaction ID 到 Additional RRs,每个字段2字节。ID用来标志一次会话,一个会话内的数据包拥有相同ID。Flags分为两部分,第一部分一字节叫做QR,用来表示该数据包是查询还是回答,如果是查询就设置为0,如果是回答就设置为1.如果是查询,那么第二个字节就是OpCode,进一步表明具体查询,它分为若干部分,前四个比特位用于表明查询类型,0表示查询域名对应IP,1不再使用;2表示查询域名服务器状态;3目前不使用,4用于服务器之间的交互;5也是用于服务器之间的交互。

第五个比特位叫AA,它只在回复包中设置,用于表明回复的权威性,它的具体内容我们暂时忽略。第六个比特位叫TC,它用于表明数据是否被截断,用于DNS支持UDP和TCP,但使用UDP时数据包不能超过512字节,如果超过数据包就得截断成多个小数据包,如果该位设置成1,它表明双方需要通过TCP来建立连接。第8位叫RD,如果设置成1,它意味着客户端请求递归式查询,也就是让服务器帮忙向其他服务器询问,得到最终消息后再返还给客户端。

接下来字节的比特位是RA,如果设置为1表示服务器支持递归式查询,也就是服务器把所有累活都承担了,0则是不支持。接下来三个比特位必须设置为0,接着4个比特位表示返回码,如果值为0表示返回数据正常,非0表示出现错误,其中取值1表示查询数据包格式错误;2表示服务器自身故障;3表示解析错误;4表示不支持所要求的查询;5表示拒绝查询请求;其他值我们暂时忽略。

接下来用于表示相应条目的数量,Questions表示有几个查询条目,Answer RRs表示有几个回复条目,Authority RRs表示有几个权威信息条目,所谓“权威”是指真正能够解析域名的服务器,如果当前服务器不能解析域名请求,它需要把请求转发给其他服务器时,它自己就不是Authoritive,我们家用路由器其实承担域名解析服务器的职责,但是它本身不可能包含所需要的域名信息,它会把请求转发给上一层服务器,因此路由器就不是”权威“域名解析服务器。由此一个DNS域名解析数据包的轮廓如下:

接下来我们看看问题段数据结构,它结构如下:

首先是问题名字,这个字段长度可变,存储的是要查询的域名,以0作为结尾。第二个是问题类型,它是2字节,用于表明查询的类型,取值1表示查询域名对应IP,取值2查询服务器名称,具体类型在后面我们用到时再详细讨论。最后是问题类别,一般而言写死为1。

这里我们讲解一下Question Name对应的字符串结构,例如对于字符串:www.baidu.com,它的对应格式为[3]www[5]baidu[3]com,其中[]内表示接下来字符个数,例如[3]表示后面跟着3个字符www,[5]表示接下来跟着5个字符,注意到这些数字所在位置正好对应字符串中符号点所在位置。

接下来我们看Answer Resource Records 的结构,服务器收到客户端请求,完成解析工作后,把解析信息存储在该结构里发回给客户端。它的结构如下,第一个是名字字符串,可变长,它对应要解析的域名或服务器名称。接着是资源类型,2字节,表明资源的类型,如果取值是5,那么接下来对应着域名服务器对应的字符串名称,接着是资源类别,2字节,一般设置成1;接着是TTL(Time To Live),4字节,表明这些信息能在缓存中存储多久;接着是RDLength,2字节,用于表明接下来内容的长度;最后是相应内容,如果资源类型是5,那么内容就是字符串,如果是1,那么内容就是4字节的IP地址,该数据类型对应的格式轮廓如下:

这里值得提到的是,如果资源类型5,那么对应的字符串才是“真正”域名,例如下面显示内容:

它显示的是,一开始我们使用域名“pan.baidu.com”去进行域名解析,此时解析服务器没有直接返回该域名对应的IP,而是返回另一个域名yiyun.n.shifen.com,前面”pan.baidu.com”其实是一个别名,打个比方,一个人可以使用假名和真名,假名可以随时变,真名则要跟身份证绑定。同样的道理,pan.baidu.com这个域名可以根据需要随时变化,例如以后它可以变成pen.baidu.com,但是第二个域名就唯一绑定一台服务器,我们只有拿这个域名去查询才能找到对应的IP。

以上就是小编为大家带来的DNS域名解析协议系统的运行流程详解的全部内容,希望能对您有所帮助,小伙伴们 有空可以来脚本之家网站,我们的网站上还有许多其它的资料等着小伙伴来挖掘哦 !

更多精彩内容其他人还在看

紫光展锐荣获5G突出贡献奖 5G芯片可支持SA和NSA

在17日举行的2019 IMT-2020(5G)峰会上,紫光展锐荣获5G技术研发试验突出贡献奖。5G技术研发试验是5G发展过程中的关键环节,对推动5G关键技术研发、验证5G技术方案、支撑全球统一5G标准具有重要意义
收藏 0 赞 0 分享

5G网络技术有哪些?20种5G关键技术详解

5G网络技术主要分为三类:核心网、回传和前传网络、无线接入网,本文中为大家介绍了20种5G的关键技术,感兴趣的朋友可以阅读参考一下
收藏 0 赞 0 分享

服务器常见的11种基本故障及排查方法汇总介绍

本文中为大家带来了服务器常见的11种故障排查方法,需要的朋友可以阅读本文参考一下
收藏 0 赞 0 分享

如何加密U盘文件防止复制,怎样实现U盘文件防拷贝?

现在我们经常会用U盘存储一些重要的文件,有时候不想随意让别人查看。同时,U盘也非常容易丢失,也需要防止U盘丢失后文件泄密,如何实现呢?跟随小编一起看看吧
收藏 0 赞 0 分享

大势至服务器文件备份软件、文件服务器自动备份系统使用说明

为了防止某些重要的数据文件丢失,通常会将它们进行备份,如备份到U盘、硬盘、云盘等一些存储设备中或者直接存在现有的计算机中,大势至公司研发了一款大势至服务器文件备份系统,感兴趣的可以了解一下
收藏 0 赞 0 分享

微软域和AD域的计算机统一安装 域用户安装软件域客户端PC批量分配自动安装教程

本文介绍的是微软域和AD域的计算机统一安装软件 域用户安装软件域客户端PC批量分配自动安装软件,需要的朋不妨阅读本文进行参考
收藏 0 赞 0 分享

2018中小企业终端管理行业趋势报告

近年来,我国中小企业如雨后春笋般迅猛发展。随着企业不断加强信息化建设和 IT 安全管理,对于企业云服务的需求也越来越多,本文分析介绍了2018中小企业终端管理行业趋势报告,感兴趣的可以了解一下
收藏 0 赞 0 分享

浅析无线网络数据窥探技术的介绍

记得几年前,蓝牙一时兴起,当时在十几米的范围内,就可覆盖了很多个蓝牙接入点,那个时候还在上学,上课时无聊,就会找一些蓝牙接入点来恶作剧
收藏 0 赞 0 分享

usb无线网卡如何使用 usb无线网卡使用设置步骤

 由于台式电脑与一些上网本内部并未安装有无线网卡,但不少这类用户就选用USB无线网卡来实现台式电脑以及部分未自带无线网卡的上网本。
收藏 0 赞 0 分享

大势至电脑文件防泄密系统 企业数据防泄密系统 公司数据防泄漏软件 企业信息防泄密软

网络版包含管理端和客户端,不能安装在同一台电脑上,网络版只需在管理端注册(试用版无需注册)。管理端用于设置策略,无法控制本机。安装正式版软件前,须将试用版全部卸载。这篇文章主要介绍了大势至电脑文件防泄密系统(网络版),需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多