计算机自顶向下 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. 提供截图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/372119.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

探索设计模式的魅力:从单一继承到组合模式-软件设计的演变与未来

设计模式专栏:http://t.csdnimg.cn/nolNS 在面对层次结构和树状数据结构的软件设计任务时,我们如何优雅地处理单个对象与组合对象的一致性问题?组合模式(Composite Pattern)为此提供了一种简洁高效的解决方案。通过本…

使用 PyTorch 构建 NLP 聊天机器人

一、说明 聊天机器人提供自动对话,可以帮助用户完成任务或寻求信息。随着深度学习的最新进展,聊天机器人正变得越来越具有对话性和实用性。这个全面的教程将利用 PyTorch 和 Python 从头开始构建聊天机器人,涵盖模型架构、数据准备、训练循环…

【动态规划】【状态压缩】【2次选择】【广度搜索】1494. 并行课程 II

作者推荐 视频算法专题 本文涉及知识点 动态规划汇总 状态压缩 广度优先搜索 LeetCode1494. 并行课程 II 给你一个整数 n 表示某所大学里课程的数目,编号为 1 到 n ,数组 relations 中, relations[i] [xi, yi] 表示一个先修课的关系&am…

nginx slice模块的使用和源码分析

文章目录 1. 为什么需要ngx_http_slice_module2. 配置指令3. 加载模块4. 源码分析4.1 指令分析4.2 模块初始化4.3 slice模块的上下文4.2 $slice_range字段值获取4.3 http header过滤处理4.4 http body过滤处理5 测试和验证 1. 为什么需要ngx_http_slice_module 顾名思义&#…

配置Jenkins自动构建打包项目

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 需求说明 1、给A项目配置jenkins每2小时无条件自动构建一次,无论是否有代码提交。 2、给B项目配置jenkins每15分钟检…

FPGA高端项目:IMX327 MIPI 视频解码 USB3.0 UVC 输出,提供FPGA开发板+2套工程源码+技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的 MIPI 编解码方案 3、本 MIPI CSI-RX IP 介绍4、个人 FPGA高端图像处理开发板简介5、详细设计方案设计原理框图IMX327 及其配置MIPI CSI RX图像 ISP 处理图像缓存UVC 时序USB3.0输出架构 6、vivado工程详解FPGA逻辑设计 7、工…

ChatGPT辅助编程,一次有益的尝试

如果大家想学习PCIe,搜索网上的信息,大概率会看到chinaaet上Felix的PCIe扫盲系列的博文 Felix-PCIe扫盲 每次看这个系列博文的时候,我都在想有没有什么方法可以把这个系列的博文都保存到一个pdf文件中,这样方便阅读。于是有了下…

异地办公必不可缺的远程控制软件,原理到底是什么?

目录 引言远程桌面连接软件的作用与重要性 基本概念与架构客户端-服务器模型网络通信协议 核心技术组件图形界面捕获与传输输入转发会话管理 性能优化策略带宽优化延迟优化 引言 远程桌面连接软件的作用与重要性 在当今这个高度数字化和网络化的时代,远程桌面连接软…

R语言学习case10:ggplot基础画图Parallel Coordinate Plot 平行坐标图

step1: 导入ggplot2库文件 library(ggplot2)step2&#xff1a;带入自带的iris数据集 iris <- datasets::irisstep3&#xff1a;查看数据信息 dim(iris)维度为 [150,5] head(iris)查看数据前6行的信息 step4&#xff1a;利用ggplot工具包绘图 plot5 <- ggparcoord(…

Linux目录:traceroute命令

目录 traceroute1、简介2、探测原理3、traceroute说明4、实例设置每跳探测数设置跳数探测包使用的基本UDP端口设置6789把对外发探测包的等待响应时间设置为3秒 总结 traceroute 1、简介 traceroute的主要功能是跟踪从IP网络发送到指定主机经过的网关的工具。它利用IP协议的生…

npm淘宝镜像源换新地址

新的淘宝npm镜像源地址&#xff1a;https://registry.npmmirror.com 切换新的镜像源 npm config set registry https://registry.npmmirror.com然后再执行以下操作查看是否成功 npm config list如果没安装过淘宝镜像源的&#xff0c;则直接安装 npm install -g cnpm --regi…

机器学习 - 梯度下降

场景 上一章学习了代价函数&#xff0c;在机器学习中&#xff0c;代价模型是用于衡量模型预测值与真实值之间的差异的函数。它是优化算法的核心&#xff0c;目标是通过调整模型的参数来最小化代价模型的值&#xff0c;从而使模型的预测结果更接近真实值。常见的代价模型是均方…

哪些因素会影响游戏服务器开发的性能?

在游戏开发中&#xff0c;服务器性能是一个关键因素&#xff0c;它影响着游戏的运行速度、稳定性以及玩家的游戏体验。游戏服务器需要处理大量的数据和请求&#xff0c;因此其性能受到多种因素的影响。本文将探讨影响游戏服务器开发性能的几个关键因素。 ​1、硬件资源 服务器…

互联网加竞赛 基于深度学习的目标检测算法

文章目录 1 简介2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 1 简介 &#x1f5…

PySpark(二)RDD基础、RDD常见算子

目录 RDD RDD五大特性 RDD创建 RDD算子 常见的Transformation算子 map flatMap mapValues reduceByKey groupBy filter distinct union join intersection glom groupByKey groupByKey和reduceByKey的区别 ? sortBy sortByKey 常见的action算子 countByKey…

Zoho联合知了标讯,为CRM系统加入智能招投标功能

随着我们在国内合作伙伴的名单不断扩充&#xff0c;CRM管理系统也在持续上线新功能。去年&#xff0c;Zoho联合知了标讯发布了智能招投标功能&#xff0c;集成在自己的CRM系统中&#xff0c;对有招投标需求的企业来说提供了莫大的便利。接下来&#xff0c;让我为您介绍&#xf…

【粉丝福利社】一书读懂物联网:基础知识+运行机制+工程实现(文末送书-完结)

&#x1f3c6; 作者简介&#xff0c;愚公搬代码 &#x1f3c6;《头衔》&#xff1a;华为云特约编辑&#xff0c;华为云云享专家&#xff0c;华为开发者专家&#xff0c;华为产品云测专家&#xff0c;CSDN博客专家&#xff0c;CSDN商业化专家&#xff0c;阿里云专家博主&#xf…

On the Spectral Bias of Neural Networks论文阅读

1. 摘要 众所周知&#xff0c;过度参数化的深度神经网络(DNNs)是一种表达能力极强的函数&#xff0c;它甚至可以以100%的训练精度记忆随机数据。这就提出了一个问题&#xff0c;为什么他们不能轻易地对真实数据进行拟合呢。为了回答这个问题&#xff0c;研究人员使用傅里叶分析…

vue3 + vite:打包部署后,动态组件渲染404问题解决

问题描述&#xff1a; 当需要渲染动态组件&#xff0c;动态的组件路径配置在数据库中时&#xff0c;如下图&#xff0c;本地运行能正常访问&#xff0c;用vite打包部署后&#xff0c;生产上改路径为404. 起初认为是&#xff0c;vite打包后的文件都是.js, 当页面加载后从数据库…

chisel之scala 语法

Chisel新手教程之Scala语言&#xff08;1&#xff09; Value & variable Value是immutable的&#xff0c;当它被分配一个数据后&#xff0c;无法进行重新分配。用 val 表示。 Variable是mutable的&#xff0c;可以重复赋值。用 var 表示。示例如下&#xff1a; val a …