admin管理员组

文章数量:1564627

  • 任务描述
  • 相关知识
    • 如何捕获 NS 类型的 DNS 报文
    • 解析 DNS 请求报文
    • 传输层协议使用 TCP 还是 UDP ?
    • 解析 DNS 应答报文
  • 操作要求
  • 测试说明

任务描述

本关任务:分析 NS 类型的 DNS 报文 Type 字段及其请求与响应内容。

相关知识

为了完成本关任务,你需要掌握:

  1. 如何捕获 NS 类型的 DNS 报文;
  2. 如何解析 DNS 报文中的 Type 字段及应答字段。

如何捕获 NS 类型的 DNS 报文

DNS 中 NS 记录 NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个 DNS 服务器来进行解析。 在注册域名时,总有默认的 DNS 服务器,每个注册的域名都是由一个 DNS 域名服务器来进行解析的,DNS 服务器 NS 记录地址一般以以下的形式出现: ns1.domain、ns2.domain等。 简单的说,NS 记录是指定由哪个 DNS 服务器解析你的域名。

在执行 nslookup 时,可以通过指定参数 -type=NS 来查询指定域名对应的域名服务器。如下图所示。

解析 DNS 请求报文

通过 Wireshark 可以抓取执行上述操作报文列表。筛选 DNS 协议的报文,找到查询请求报文,展开如下图所示。

可以看出,请求查询报文的的 Type 字段为 NS ,即 Authorizative Name Server 。即希望得到权威的名字服务。 该请求报文是通过 UDP 协议进行传输的,端口号为 53 。

传输层协议使用 TCP 还是 UDP ?

DNS 可以使用 UDP/53 ,也可以使用 TCP/53 。当响应报文的长度小于 512B 时,就使用 UDP (因为 UDP 的最大报文长度为 512B );若响应报文的长度超过 512B ,则选用 TCP 。DNS 协议关于 UDP 和 TCP 的选择通常为以下两种情况: (1)若 DNS 客户程序事先知道响应报文的长度超过 512B ,则应当使用 TCP 连接;

注意:主域名服务器与辅助域名服务器在进行区域传送时,通常数据量都比较大,所以 DNS 规定,区域传送使用 TCP 协议。

(2)若解析程序不知道响应报文的长度,它一般使用 UDP 协议发送 DNS 查询报文,若 DNS 响应报文的长度大于 512B ,服务器就截断响应报文,并把 TC(truncated) 置为 1 。在这种情况下,DNS 客户程序通常使用 TCP 重发原来的查询请求,从而它将来能够从 DNS 服务器中收到完整的响应。

解析 DNS 应答报文

查看随后的响应报文,可以看到有多个响应报文。这些报文就是在进行解析baidu域名对应的权威服务器过程中响应的报文。展开这些报文,可以看到第一个响应报文如下图所示。

该报文应答部分有多个服务器地址,其第一个地址类型为 SOA(start of a zone of an authority),即权威区域的开始。其后的服务器地址类型为 SRV(Server selection),即服务器选择。 随后的多个报文都是对查询报文的响应。

由于前述响应报文长度大于 512B ,随后再次出现了一个查询请求报文,查看其传输层协议,可以看到换用了 TCP 协议。 同样有多个应答报文进行响应。查看这些报文的应答类型,有些是 SRV ,有些是 A(Address,内容是具体的 IP 地址)。 查看最后一个应答报文,如下图所示。

可以看出,其权威 DNS 服务器的名称为:ns.dns.cluster.local

操作要求

双击打开桌面上的工作区文件夹”workspace”,再打开实训文件夹”myshixun”中的项目文件夹,将查询的信息保存到文件message-4.txt。然后进行如下操作:

(1)打开 Wireshark ,并在过滤器中输入 DNS 。筛选出 DNS 协议报文,并开始捕获报文。然后打开终端,输入命令并执行nslookup -type=NS baidu,在 Wireshark 中停止捕获报文; (2)查看报文列表,将 DNS 查询消息的目标 IP 地址,写入文件中; (3)查看查询请求报文,将该报文的 Type 值写入文件中; (4)查看响应报文,查找baidu的权威 DNS 服务器,将其名字写入文件中; (5)查看上述响应报文,查找其 Type ,将其值写入文件中;

测试说明

平台会对你操作的结果进行测试,如果一切正确,你将顺利通关!!


开始你的任务吧,祝你成功!

实验操作

在终端输入:nslookup -ytpe=NS baidu(用来指定该域名由哪个 DNS 服务器来进行解析)

查询的目标地址为:172.21.0.10

打开 Wireshark ,并在过滤器中输入 DNS 。

打开请求报文,类型为:NS

 最后的出结果

本文标签: 报文协议类型dnsNS