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

这篇具有很好参考价值的文章主要介绍了DNS域名解析协议系统的运行流程详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

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

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

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

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

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

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

Wireshark(网络过滤抓包工具) v4.0.3 完整汉化绿色便携版

  • 类型:网络监测
  • 大小:50.05MB
  • 语言:简体中文
  • 时间:2023-01-25
查看详情

首先是头部,它包含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域名解析协议系统的运行流程详解的全部内容,希望能对您有所帮助,小伙伴们 有空可以来yii666网站,我们的网站上还有许多其它的资料等着小伙伴来挖掘哦 !文章来源地址https://www.toymoban.com/news/detail-471542.html

到了这里,关于DNS域名解析协议系统的运行流程详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DNS域名解析过程详解

    目录 一、DNS系统 二、域名 三、域名服务器 根域名服务器 顶级域名服务器 授权域名服务器 本地域名服务器 四、域名解析过程  递归查询 递归查询与迭代查询结合 主机向本地域名服务器的查询是递归查询 本地域名服务器向根域名服务器的查询是迭代查询 一次完整的DNS域名

    2024年02月10日
    浏览(33)
  • 第138篇:了解HTTP协议(TCP/IP协议,DNS域名解析,浏览器缓存)

    好家伙,发现自己的网络知识十分匮乏,赶紧补一下   这里先举个我生活中的例子 欸,作业不会写了,上网搜一下 用edge浏览器上bing必应搜一下(百度广告太多了,真不想用百度举例子)   假设这是我们第一次访问bing的首页 当我向浏览器中输入https://cn.bing.com/并按下回车

    2023年04月24日
    浏览(32)
  • 6.2.1 网络基本服务---域名解析系统DNS

    6.2.1 网络基本服务—域名解析系统DNS 因特网是需要提供一些最基本的服务的,今天我们就来讨论一下这些基本的服务。 域名系统(DNS) 远程登录(Telnet) 文件传输协议(FTP) 动态主机配置协议(DHCP) 电子邮件系统(E-mail) 万维网(www) 一、域名系统(DNS) 因特网中IP单

    2024年02月13日
    浏览(71)
  • 【计网笔记06】计算机网络之应用层协议(SMTP协议、POP3协议、HTTP协议)、DNS域名系统、电子邮件系统

    这篇文章,主要介绍计算机网络之应用层协议(SMTP协议、POP3协议、HTTP协议)、DNS域名系统、电子邮件系统。 目录 一、计算机网络之应用层 1.1、应用层介绍 1.2、网络应用模型

    2024年02月08日
    浏览(40)
  • 以用户角度理解网络-静态IP和动态IP-DNS域名系统-网关- DHCP协议- 一次简单的网络请求

    本机的IP地址 子网掩码 网关的IP地址 DNS的IP地址 静态IP指的是计算机每次开机都分到相同的IP地址,动态IP指的是计算机开机后自动地分配一个IP地址,不用人为设定。 动态IP所使用的协议就是DHCP协议。 TCP/IP提供了通过IP地址来连接到设备的功能,但对用户来讲,记住某台设备

    2024年02月02日
    浏览(33)
  • DNS域名解析服务(正向、反向解析、主从域名服务器)

    在日常生活中人们习惯便用域名访问服务器,但机器间互相只认IP地址,域名与1P地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个域名只可以对应一个ip地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是

    2024年02月03日
    浏览(40)
  • DNS(域名解析服务)

    安装DNS服务; IspSrv作为DNS的的根域 创建test1.com - test100.com,并在所有正向区域中创建一条A记录,解析到本机地址。 所有无法解析的域名均解析为本机地址 步骤一 - 添加chinaskills.global正向区域和反向区域 前提条件:安装DNS服务 有时候会添加不成功,报区域名错误,退出去重

    2024年01月23日
    浏览(26)
  • Linux域名解析(DNS)

    域名系统(英文:Domain Name System,缩写:DNS),使用应用层协议,是互联网的一项服务。 它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。 每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域 名和 IP 地址的对应关系

    2024年02月09日
    浏览(54)
  • linux DNS域名解析

    目录  一、DNS概念 二、域名格式类型 三、查询类型 四、解析类型 五、配置DNS 六、dns解析实验 1.配置正向解析 2.反向解析 3.主从解析                          一、DNS概念 概念:域名和IP地址的相互映射的分布式数据库,可以更好的访问互联网。 计算机只能访问IP地址,

    2024年02月05日
    浏览(37)
  • DNS 域名解析 后续(二)-----主从复制、分离解析

    (软件名 bind , 服务名 named) bind主包 yum  install bind bind-utils -y    主软件 和 配置包管理软件(工具包) 正向解析:把域名解析成ip地址 使用192.168.246.7一台虚拟机,以域名  zzz.com  为例 可以加//注释掉,或者改成any(注意格式),二选一就可以哦 实验结束啦 两条检测命令

    2024年01月21日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包