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消息:如何阅读查询和响应消息】通过查看示例 , 更容易理解结构 。
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 。