跳转至

华东师范大学数据科学与工程学院实验报告

课程名称:计算机网络与编程 年级:22级 上机实践成绩:
指导教师:张召 姓名:郭夏辉 学号:10211900416
上机实践名称:DNS报文分析 上机实践日期:2023年5月12日 上机实践编号:No.10
组号:1-416 上机实践时间:2023年5月12日

实验手册

一、实验目的

  • 了解系统命令 nslookup 的用法
  • 学习DNS协议并掌握DNS的工作原理

二、实验任务

  • nslookup 命令的简单使用
  • 使用Wireshark分析DNS协议

三、实验过程

task1

运行 nslookup 来确定一个国外大学 (www.mit.edu) 的IP地址以及其权威 DNS 服务器,请在实验报告中附上操作截图并详细分析返回信息内容。

image-20230512161916192

在终端中输入nslookup www.mit.edu可以看到如上结果,其中包括DNS服务器的信息和DNS响应的内容。

DNS服务器的信息:

权威DNS服务器:moon.ecnu.edu.cn
权威DNS服务器的IP地址:202.120.80.2

DNS响应的内容:
www.mit.edu的主机名称: e9566.dscb.akamaiedge.net
它的地址:2600:140e:6:ab3::255e
          2600:140e:6:a83::255e
          23.10.222.138
他的别名:  www.mit.edu
          www.mit.edu.edgekey.net

这个响应内容看起来是十分精简的,但是在获得来自mit的本地DNS服务器的响应内容的过程中,应该迭代了很多轮、经历了许多其他DNS服务器才得到这个结果。

task2

运行 nslookup ,使用task1中一个已获得的 DNS 服务器,来查询google服务器 (www.google.com)的 IP 地址(可直接查询),请在实验报告中附上操作截图并详细分析返回信息内容。

根据task1,我们可以看到我的本地DNS服务器是moon.ecnu.edu.cn

image-20230512162851388

由此我们可以看到www.google.com的地址是2a03:2880:f10f:83:face:b00c:0:25de(一个ipv6地址)和162.125.18.133,当然google的ip地址肯定不止这两个,DNS这么响应,推测其中可能涉及到了拥塞控制等调节因素。

task3

根据Wireshark抓取的报文信息(例下图所示示例),分别分析DNS查询报文和响应报文的组成结构,参考上面的报文格式指出报文的每个部分(如头部区域等),请将实验结果附在实验报告中。

首先我要来刷新一下DNS的缓存

image-20230512163511210

然后我在浏览器中访问github.com,接着就在wireshark中抓取相关的报文:

image-20230512163826343

DNS只有两种报文:查询报文、响应报文,两者有着相同格式,如下所示:

image-20230512163308885

各部分的一般属性如下所述:

Transaction ID (事务 ID),DNS 报文的 ID 标识,对于请求报文和其对应的应答报文,该字段的值是相
同的 ID 课题区。通过这个分 DNS 应答报文是对哪个请求进行相应的。
Flags (标志)
Questions(问题计数)
Answer RRs(回答资源记录数)
Authority RRs(权威名称能服务器计数)
Additional RRs(附加资源记录数)
Queries (查询问题区域)

查询报文

image-20230512164139907 - 副本

查询报文其实并不用特别地去说明了,上面我所说的一般属性基本全覆盖了,只用对照着查询就能了解相关的含义。

响应报文

image-20230512164208915

对比发现,虽然响应报文和请求报文差不多,就是一般的属性都有,但是在最后多了一条Answers资源部,这个是用来存放响应的内容的,让好奇的我来点开这个看一下吧:

image-20230512165220376

task4

基于task3中得到的查询和响应报文进行分析,试问这里的查询是什么“Type"的,查询消息是否包含任何“answers"?试问这里的响应消息提供了多少个“answers”,这些“answers”具体包含什么?请将实验结果附在实验报告中。

要理解结果的差异,首先来回顾一下三种类型:

类型A:A记录是用于名称解析的重要记录,提供标准的主机名到IP的地址映射。可以看到报告中包含主机名和IP地址。

类型NS:NS记录用来指定该域名由哪个DNS服务器来进行解析。注册域名时,总有默认的DNS服务器,每个注册的域名都是由一个DNS域名服务器来进行解析的。 简单的说,NS记录返回域中主机IP地址的权威DNS服务器的主机名。可以看到报告中包含域的地址和包含域中IP地址的权威DNS主机名。

类型MX:返回别名为Name对应的邮件服务器的规范主机名。可以看到报告中包含邮件服务器及其主机名。

先来看一下响应报文:

屏幕截图 2023-05-12 170012

可以看到Type是A类型的,而查询消息并不包含任何answers。

然后再来看响应报文:

image-20230512170317671

这里只有一条answer,然后具体的字段之解释我已在图中标明了。

四、总结

整体来说,这是一次简单的实验。凭借wireshark和nslookup这两个有利的工具,我对DNS的理解更进一步,希望未来能更加娴熟地掌握DNS技术,在计算机网络的世界中顺利畅游。