头歌 DNS协议分析 第4关 NS 类型的 DNS 解析报文分析


任务描述

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

相关知识

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

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

如何捕获 NS 类型的 DNS 报文

DNS 中 NS 记录 NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个 DNS 服务器来进行解析。 在注册域名时,总有默认的 DNS 服务器,每个注册的域名都是由一个 DNS 域名服务器来进行解析的,DNS 服务器 NS 记录地址一般以以下的形式出现: ns1.domain.com、ns2.domain.com等。 简单的说,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.com域名对应的权威服务器过程中响应的报文。展开这些报文,可以看到第一个响应报文如下图所示。

该报文应答部分有多个服务器地址,其第一个地址类型为 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.com,在 Wireshark 中停止捕获报文; (2)查看报文列表,将 DNS 查询消息的目标 IP 地址,写入文件中; (3)查看查询请求报文,将该报文的 Type 值写入文件中; (4)查看响应报文,查找baidu.com的权威 DNS 服务器,将其名字写入文件中; (5)查看上述响应报文,查找其 Type ,将其值写入文件中;

测试说明

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


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

实验操作

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

查询的目标地址为:172.21.0.10

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

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

 最后的出结果

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DNS(Domain Name System)是一个用于将域名解析IP地址的协议。它对于互联网的正常运行至重要。下面是对DNS协议分析DNS协议的头部包含了一些重要的字段,用于指示和控制DNS请求和响应的行为。以下是一些常见的字段: 1. 标识字段(Identification):占16位,用于唯一标识一个DNS请求或响应。请求和响应使用相同的标识,以便进行匹配。 2. 标志字段(Flags):占16位,用于指示消息类型、递归查询和授权回答等信息。其中最重要的标志是QR位,它表示消息是一个查询还是响应,0表示查询,1表示响应。 3. 问题数(QDCount):占16位,表示DNS请求中的问题数。通常情况下,一个DNS请求只会包含一个问题。 4. 回答数(ANCount):占16位,表示DNS响应中的回答数。根据DNS请求的类型,回答数可能为0,1或多个。 5. 授权回答数(NSCount):占16位,表示DNS响应中的授权回答数。这些回答指向权威服务器,它们具有授权解析相应域名的权限。 6. 额外信息数(ARCount):占16位,表示DNS响应中的附加信息数。这些信息可能是DNS记录中的资源记录(RR)或其他信息。 除了这些字段之外,DNS协议的头部还包含了一些其他的字段,例如生存时间(TTL)等。 通过分析DNS协议头部,我们可以了解到DNS查询请求和响应的基本信息,例如查询类型、记录数以及授权回答等。这些信息对于网络管理和故障排除非常重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值