计算机自顶向下 Wireshark labs——DNS

如本文第2.4节所述,域名系统(DNS)将主机名转换为IP地址,在互联网基础设施中发挥着关键作用。在本实验中,我们将仔细研究DNS的客户端。回想一下,客户端在DNS中的角色相对简单—客户端向其本地DNS服务器发送查询,并收到响应。如教科书中的图2.19和图2.20所示,很多事情可以“隐藏”进行,对DNS客户端是不可见的,因为分层DNS服务器相互通信,以递归或迭代地解析客户端的DNS查询。然而,从DNS客户机的角度来看,该协议非常简单——向本地DNS服务器制定查询,然后从该服务器接收响应。

在开始本实验之前,您可能希望通过阅读本文第2.4节来复习DNS。特别是,您可能希望查看有关本地DNS服务器、DNS缓存、DNS记录和消息以及DNS记录中的TYPE字段的资料。

1. 网路资讯查询

在本实验中,我们将广泛使用nslookup工具,该工具目前在大多数Linux/Unix和Microsoft平台上都可以使用。要在Linux/Unix中运行nslookup,只需在命令行中键入nslookup命令。要在Windows中运行它,打开命令提示符并在命令行上运行nslookup。

nslookup工具在其最基本的操作中,允许运行该工具的主机在指定的DNS服务器上查询一条DNS记录。查询的DNS服务器可以是根DNS服务器、顶级域DNS服务器、权威DNS服务器或中间DNS服务器(这些术语的定义参见教科书)。为了完成此任务,nslookup向指定的DNS服务器发送DNS查询,并从同一DNS服务器接收DNS应答,并显示结果。

image-20240204115630634

上面的屏幕截图显示了三个独立的nslookup命令的结果(显示在Windows命令提示符中)。在本例中,客户端主机位于布鲁克林理工大学的校园内,其中默认的本地DNS服务器是DNS -prime.poly.edu。当运行nslookup时,如果没有指定DNS服务器,则nslookup将查询发送到默认的DNS服务器,在本例中是dnsprime.poly.edu。考虑第一个命令:

nslookup www.mit.edu

换句话说,这个命令的意思是“请给我发送主机www.mit.edu的IP地址”。如截图所示,该命令的响应提供了两条信息:(1)提供应答的DNS服务器的名称和IP地址;(2)答案本身,即www.mit.edu的主机名和IP地址。虽然响应来自理工大学的本地DNS服务器,但很有可能这个本地DNS服务器迭代地联系了其他几个DNS服务器来获得答案,如教科书第2.4节所述。

现在考虑第二个命令:

nslookup –type=NS mit.edu

在本例中,我们提供了选项“type=NS”和域“mit.edu”。这会导致nslookup向默认的本地DNS服务器发送type-NS记录的查询。换句话说,这个查询说,“请把mit。edu的权威DNS主机名发给我”。(当不使用type选项时,nslookup使用默认值,即查询A类记录。)在上面的屏幕截图中显示的答案首先指示了提供答案的DNS服务器(这是默认的本地DNS服务器)以及三个MIT名称服务器。每个服务器都是MIT校园主机的权威DNS服务器。然而,nslookup还表明答案是“非权威的”,这意味着该答案来自某些服务器的缓存,而不是来自权威的MIT DNS服务器。最后,答案还包括MIT权威DNS服务器的IP地址。(尽管nslookup生成的type-NS查询没有明确要求IP地址,但本地DNS服务器会“免费”返回这些地址,nslookup会显示结果。)

现在最后考虑第三个命令:

nslookup www.aiit.or.kr bitsy.mit.edu

在本例中,我们希望将查询发送到 DNS 服务器 bitsy.mit.edu 而不是默认 DNS 服务器 (dns-prime.poly.edu)。因此,查询 和回复事务直接发生在查询主机和 bitsy.mit.edu 之间。在 本例中,DNS 服务器 bitsy.mit.edu 提供了主机 的 IP 地址。www.aiit.or.kr 的 IP 地址,它是韩国信息技术高级研究所的网络服务器。技术高级研究所(位于韩国)的网络服务器。

现在我们已经看了一些说明性的例子,您可能想知道nslookup命令的一般语法。语法是:

nslookup –option1 –option2 host-to-find dns-server

通常,nslookup可以使用零个、一个、两个或多个选项运行。正如我们在上面的例子中看到的,dns服务器也是可选的;如果没有提供,查询将被发送到默认的本地DNS服务器。

现在我们已经提供了nslookup的概述,现在是您自己测试驱动它的时候了。做以下事情(并写下结果):

  1. 执行nslookup获取亚洲的Web服务器的IP地址。服务器的IP地址是什么?

我这里用的linux测试baidu.com的IP地址。

百度的IP的地址为 39.156.66.10 和 110.242.68.66

image-20240204121138281

  1. 运行nslookup命令确定欧洲某大学的权威DNS服务器。

image-20240204122050832

  1. 运行nslookup,以便在问题2中获得的一个DNS服务器上查询Yahoo!邮件。它的IP地址是什么?

    最开始linux中nslookup mail.yahoo.com use5.akam.net查询不到结果。
    后面那本地windows的结果。

image-20240204151226968

2.ipconfig

ipconfig(适用于Windows)和ifconfig(适用于Linux/Unix)是主机中最有用的小实用程序,特别是用于调试网络问题。这里我们只进行描述ipconfig,尽管Linux/Unix的ifconfig非常相似。ipconfig可以用来显示当前的TCP/IP信息,包括地址、DNS服务器地址、适配器类型等等。例如,如果您要获取所有关于主机的信息,只需输入

ipconfig /all

输入命令提示符,如下面的截图所示。

image-20240204132455397

ipconfig对于管理存储在主机中的DNS信息也非常有用。在2.5节中,我们了解到主机可以缓存它最近获得的DNS记录。要查看这些缓存的记录,在提示符C:>之后提供以下命令:

ipconfig /dispalydns

每个条目以秒为单位显示剩余的生存时间(TTL)。清空缓存,输入

ipconfig /flushdns

刷新DNS缓存将清除所有条目,并重新加载hosts文件中的条目。

3. 使用Wireshark跟踪DNS

现在我们已经熟悉了nslookup和ipconfig,我们准备开始一些严肃的工作。让我们首先捕获由普通网络冲浪活动生成的DNS数据包。

  • 使用ipconfig清空主机中的DNS缓存。
  • 打开浏览器并清空浏览器缓存。(使用ie浏览器,进入“工具”菜单,选择“Internet选项”;然后在常规选项卡中选择删除文件。)
  • 打开Wireshark,输入“ip”。addr == your_IP_address”输入过滤器,通过ipconfig获取your_IP_address。此过滤器将删除所有既不是发送也不是发送到您的主机的数据包。
  • 启动Wireshark抓包。
  • 使用浏览器访问Web页面:http://www.ietf.org
  • 停止抓包。

如果您无法在实时网络连接上运行Wireshark,您可以下载在作者的一台计算机上执行上述步骤时捕获的数据包跟踪文件。回答以下问题。只要有可能,在回答下面的问题时,你应该在你回答问题的过程中提交一份打印出来的包。在打印出来的材料上加上注释来解释你的答案。要打印数据包,请使用文件 - >打印,选择仅选定数据包,选择数据包摘要行,然后选择回答问题所需的最小数据包详细信息量。

  1. 定位DNS查询和响应消息。然后通过UDP或TCP发送?

UDP

image-20240204134533012

  1. DNS查询消息的目的端口是什么?DNS响应消息的源端口是什么?

目的端口和响应端口都是53

image-20240204134829377

image-20240204134842568

  1. DNS查询报文发送到哪个IP地址?使用ipconfig来确定本地DNS服务器的IP地址。这两个IP地址是一样的吗?

DNS查询报文发送到IP为114.114.114.114。

与本地DNS服务器IP地址一样

  1. 检查DNS查询消息。DNS查询的“Type”是什么?查询消息是否包含任何“answers”?

Type = A 没有任何 answers
image-20240204135740208

  1. 检查DNS响应消息。提供了多少“答案”?这些答案都包含了什么?

两个 Answers。
image-20240204135955394

  1. 考虑主机发送的后续TCP SYN包。SYN报文的目的IP地址与DNS响应消息中提供的IP地址是否对应?

我这里做了几次确实没有后续的TCP SYN包,我不知道为什么。

  1. 这个网页包含图片。在检索每个映像之前,您的主机是否发出新的DNS查询?

没有。

现在我们来看看nslookup。

  • 开始抓包。
  • 对www.mit.edu进行nslookup
  • 停止抓包。

您应该得到如下所示的跟踪:image-20240204143741646

从上面的截图中我们可以看到nslookup实际上发送了三个DNS查询并收到了三个DNS响应。出于本任务的目的,在回答以下问题时,请忽略前两组查询/响应,因为它们特定于nslookup,通常不是由标准Internet应用程序生成的。相反,您应该关注最后的查询和响应消息。

  1. DNS查询消息的目的端口是什么?DNS响应消息的源端口是什么?

目的端口和响应的源端口都是53

image-20240204144351860

  1. DNS查询报文发送到哪个IP地址?这是您的默认本地DNS服务器的IP地址吗?

发送到114.114.114.114

我本地的默认DNS服务器IP地址

image-20240204144810509

  1. 检查DNS查询消息。DNS查询的“类型”是什么?查询消息是否包含任何“答案”?
    Type 是 A。 没有任何answers

  2. 检查DNS响应消息。提供了多少“答案”?这些答案都包含了什么?
    提供了3个answersimage-20240204145002768

  3. 提供截图。

现在重复前面的实验,但是发出命令:

nslookup –type=NS mit.edu

回答以下问题:

  1. DNS查询报文发送到哪个IP地址?这是您的默认本地DNS服务器的IP地址吗?

发送到114.114.114.114和8.8.8.8(我查了下8.8.8.8 - 这是Google提供的公共DNS服务。)

这两个都是我本地的DNS服务器IP地址。

image-20240204145434532

  1. 检查DNS查询消息。DNS查询的“类型”是什么?查询消息是否包含任何“答案”?
    Type = A 没有answers

image-20240204145546680

  1. 检查DNS响应消息。响应消息提供了哪些MIT名称服务器?此响应消息是否也提供MIT命名者的IP地址?

提供了use5.akam.net等很多个名称服务器。

没有提供MIT命名者的IP地址。

image-20240204145732814

  1. 提供截图。

现在重复前面的实验,但是发出命令:

nslookup www.aiit.or.kr bitsy.mit.edu

回答以下问题:

  1. DNS查询报文发送到哪个IP地址?这是您的默认本地DNS服务器的IP地址吗?如果不是,IP地址对应什么?

image-20240204150142150

不是,IP地址为18.0.72.3.应该是bitsy.mit.edu的IP地址。

  1. 检查DNS查询消息。DNS查询的“类型”是什么?查询消息是否包含任何“答案”?

没有answers

image-20240204150334751

  1. 检查DNS响应消息。提供了多少“答案”?这些答案都包含了什么?

看到包含了应该是aiit.or.kr的IP地址

image-20240204150348185

  1. 提供截图。
  • 22
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
计算机网络自顶向下Wireshark实验Tracing DNS with Wireshark是一个很好的结合,让我来为你介绍。 首先,计算机网络自顶向下是一种从应用层开始分析计算机网络的方法。这种方法强调理解应用层协议,因为它们是用户直接与之交互的,而且它们的行为直接影响网络性能和可用性。这种方法认为,理解各种应用层协议是如何交互的,可以更全面地了解网络是如何工作的。 Wireshark是一款网络协议分析工具,可以用于分析网络流量,帮助用户理解网络行为。 现在,让我们来看一下如何使用Wireshark来追踪DNS(Domain Name System)的实验DNS是互联网的基础部分,它允许用户通过主机名(例如,“google.com”)查找对应的IP地址。当你在浏览器中输入一个网址时,你的设备就会向DNS发出一个请求,以获取该网址的IP地址。 使用Wireshark追踪DNS的方法如下: 1. **安装和配置Wireshark**:首先,确保你已经在你的设备上安装了Wireshark,并且已经配置好了网络接口。 2. **捕获网络流量**:使用Wireshark的过滤器功能,你可以捕获特定于DNS的流量。例如,你可以使用过滤器“dns”来捕获所有DNS流量。 3. **分析流量**:一旦你捕获了DNS流量,你可以使用Wireshark的详细信息来查看每个请求和响应的详细信息。这括源和目标IP地址、查询类型(如A记录或CNAME)、响应状态码等。 4. **追踪特定活动**:如果你想追踪某个特定的活动,例如某个特定的主机名或IP地址,你可以使用Wireshark的过滤器功能来限制你的视图。 5. **记录和分析结果**:记录和分析你的结果可以帮助你理解DNS系统的运作方式,以及可能存在的任何问题。 通过这个实验,你将能够更深入地了解DNS系统是如何工作的,以及Wireshark如何帮助你分析和记录网络流量。这对于理解和解决网络问题,以及在开发、测试和故障排除中都非常有用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tian Meng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值