服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - DNS服务器 - DNS消息:如何阅读查询和响应消息

DNS消息:如何阅读查询和响应消息

2023-11-22 16:57小技术君 DNS服务器

如果DNS服务器无法识别域名,它会将查询传递给下一个DNS服务器。然后,在收到响应后,将响应传递给浏览器。有兴趣了解DNS解析工作原理吗?希望这篇文章可以帮助。

DNS消息:如何阅读查询和响应消息

DNS消息相对简单:浏览器查询一个域名并获取一个IP地址。

如果DNS服务器无法识别域名,它会将查询传递给下一个DNS服务器。然后,在收到响应后,将响应传递给浏览器。

有兴趣了解DNS解析工作原理吗?希望这篇文章可以帮助。

查询消息

DNS消息:如何阅读查询和响应消息

这是查询消息的结构。

  • 事务ID:用于将响应与查询匹配
  • 标志:指定所请求的操作和响应代码
  • 问题数:查询部分中的条目数
  • 答案RR数:答案部分中的条目数(RR代表“资源记录”)
  • 授权RR数:授权部分中的条目数
  • 附加RR数:附加部分中的条目数
  • 查询:查询数据

需要关注的是问题数,答案RR和查询。

DNS消息:如何阅读查询和响应消息

以下是针对image.google.com的查询消息的示例。

  • 问题数:1表示此消息在查询部分中有一个条目。•
  • 答案RR数:0表示没有答案。这是因为查询消息只包含问题,没有答案。

接下来,让我们深入查询的条目结构,仅包括3个部分。

DNS消息:如何阅读查询和响应消息

  • 名称:域名
  • 类型:DNS记录类型(例如A,CNAME和MX)
  • 类:允许域名用于任意对象

通过查看示例,更容易理解结构。

DNS消息:如何阅读查询和响应消息

  • 名称是请求的域名image.google.com。
  • 类型:A表示它是一个A记录。A记录是最基本和最常用的DNS记录类型。
  • 类:IN是“互联网”的缩写。在浏览器上下文中没有太大意义。

DNS消息:如何阅读查询和响应消息

有趣的部分是消息如何编码名称字段。

使用.作为分隔符,示例域名可以分为3个组。

  • image
  • google
  • com

在蓝色标记的示例中,第一个字节是05,表示接下来的5个字节是域名的第1组。

在屏幕截图中,字节以ASCII码呈现。我们可以轻松将其解码为字符。

  • 69 → i
  • 6d → m
  • 61 → a
  • 67 → g
  • 65 → e

我们得到了image。

按照相同的规则,我们可以找到域名的其余部分——google和com。

最后,在域名的末尾,00标志着该部分的结束。

这就是查询的全部内容。通过查询提供的所有必要信息,DNS服务器将发送一个响应消息。

响应消息

DNS消息:如何阅读查询和响应消息

响应消息与查询消息共享相同的标题和查询部分,另外还有一个额外的答案部分。

为什么响应消息包括原始的查询部分?这是供参考的。我们将很快了解它。

以下是查询image.google.com的响应示例。

DNS消息:如何阅读查询和响应消息

在消息中,我们在答案部分收到3个条目。因此,答案RRs设置为3。

  • 在第一个条目中,DNS服务器为初始查询返回了一个CNAME images.google.com。
  • 然后,发送了一个新的查询以获取images.google.com,在第二个条目中返回了另一个CNAME images.1.google.com。
  • 最后,通过查询images.1.google.com,客户端在最后一个条目中收到了IP地址172.217.1.14。

除了查询条目中找到的相同的3个部分外,答案条目还有3个额外的部分。

  • 存活时间(TTL):记录可以存在的秒数
  • 数据长度:数据的长度
  • 数据:返回的数据,例如IP地址或CNAME

让我们来看看名称部分,它只有两个字节:c0 0c。

域名如何在两个字节中编码?

原来,这些字节是偏移量,指向查询部分中编码的域名。

c0是一个开始标记,而0c是实际的偏移量,为12。

我们从消息的开始字节17(在屏幕截图中以红色标记)开始数12个字节。最后,我们到达第13个字节05,这是image.google.com的开头,用黄色标记。

不复杂,对吧?接下来是一个复杂的例子。

DNS消息:如何阅读查询和响应消息

在答案的第二个条目中,名称偏移量为2e,即46个字节。

通过计算46个字节,我们找到了前一个条目的CNAME中编码的images。

  • 06 → 接下来的6个字节属于同一组
  • 69 → i
  • 6d → m
  • 61 → a
  • 67 → g
  • 65 → e
  • 73 → s

在images的末尾,我们看到另一个偏移量引用c0 12。这是18个字节。

同样,通过计算18个字节,我们到达了绿色标记的引用部分——在前一个条目的名称中的google.com。

偏移量的想法是一个令人鼓舞的设计。有了它,消息可以节省大量空间。

DNS消息:如何阅读查询和响应消息

最后,我们可以解码最后一个答案条目中的地址。

  • ac → 172
  • d9 → 217
  • 01 → 1
  • 0e → 14

要点

  • DNS消息中需要注意的是问题数、答案RR数、查询和答案。前两者是计数,而其他两者是实际数据。
  • 通过理解名称的编码方式,您可以轻松地读取消息的字节。

原文地址:https://mp.weixin.qq.com/s?__biz=MzU0NDMzMjY5Ng==&mid=2247488476&idx=1&sn=d370104c55d74acadd67f13a3901c3fd

延伸 · 阅读

精彩推荐
  • DNS服务器dns该如何设置(dns网速慢怎么解决)

    dns该如何设置(dns网速慢怎么解决)

    你知道最好的DNS是哪一个吗?你知道如何正确设置DNS,解决上网慢的问题吗?一文给你说的明明白白。在上互联网时,选择正确的DNS非常重要,很大程度上会...

    资知通鉴9652022-07-16
  • DNS服务器网络知识:DNS 访问原理详解

    网络知识:DNS 访问原理详解

    DNS服务器是用来做URL与IP地址解析的,帮助用户找到要访问服务器的IP。从DNS服务器的结构来说大致分为三层:根域名服务器,顶级域名服务器,本地域名服...

    IT技术分享社区7812021-05-05
  • DNS服务器如何选择适合的公共DNS

    如何选择适合的公共DNS

    DNS 是互联网的基石之一,之前我在博客的 DNS 标签下写了不少关于权威 DNS 的文章,这次写一篇关于递归 DNS(也就是公共 DNS)的文章。...

    奇妙的Linux世界6402022-08-10
  • DNS服务器详解Linux搭建DNS服务器

    详解Linux搭建DNS服务器

    这篇文章主要介绍了Linux搭建DNS服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编...

    风语夜蝶7562022-09-02
  • DNS服务器DNS的工作原理图解说明

    DNS的工作原理图解说明

    前段时间暴风影音的DNS攻击事件导致大量用户无法上网,闹得沸沸扬扬,至今网上仍然有人讨论。DNS到底是什么呢?为什么DNS挂了就不能上网?...

    网络4122019-06-10
  • DNS服务器最新Windows Server 2012 搭建DNS服务器的详细步骤

    最新Windows Server 2012 搭建DNS服务器的详细步骤

    这篇文章主要介绍了Windows Server 2012 搭建DNS服务器,记录Windows Server配置DNS服务的方法,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参...

    _老杨_33952023-02-08
  • DNS服务器DNS是干什么的?什么是DNS域名服务器?

    DNS是干什么的?什么是DNS域名服务器?

    DNS是域名服务器,其全名是 Domain Name Server,它是一个程序,其中包含一个域名(domain name)表和一个 IP地址(IP address),用于解析消息的域名。...

    服务器知识网12992021-02-24
  • DNS服务器DNS消息:如何阅读查询和响应消息

    DNS消息:如何阅读查询和响应消息

    如果DNS服务器无法识别域名,它会将查询传递给下一个DNS服务器。然后,在收到响应后,将响应传递给浏览器。有兴趣了解DNS解析工作原理吗?希望这篇文...

    小技术君3332023-11-22