Wireshark实验——DNS

DNS

域名系统(Domain Name System 缩写 DNS,Domain Name 被译为域名)是因特网的一项核心服务,它作为可以将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的 IP 数串。域名系统是
Internet 上解决网上机器命名的一种系统。就像拜访朋友要先知道别人家怎么走一样,Internet 上当一台主机要访问另外一台主机时,必须首先获知其地址,TCP/IP 中的 IP 地址是由四段以“.”分开的数字组成,记起来总是不如名字那么方便,所以,就采用了域名系统来管理名字和 IP 的对应关系。——百度百科


DNS 将主机名转换为 IP 地址,在互联网基础架构中发挥关键作用。回想一下,客户端在 DNS 中的角色相对简单——客户端向其本地 DNS 服务器发送请求,并接收一个响应。由于DNS分层服务器之间相互通信,可以递归地或迭代地解析客户端的 DNS 查询请求,而大多数操作是不可见的。然而,从 DNS 客户端的角度来看,协议非常简单——将查询指向为本地 DNS 服务器,并从该服务器接收到响应。

nslookup

初识 nslookup 工具

nslookup 工具允许主机查询任何指定的DNS服务器的DNS记录。DNS 服务器可以是根 DNS 服务器,顶级域 DNS 服务器,权威 DNS 服务器或中间 DNS 服务器。要完成此任务,nslookup 将 DNS 查询发送到指定的 DNS 服务器,然后接收 DNS 回复,并显示结果。要在 Windows 中运行,请打开命令提示符并在命令行上运行 nslookup。

接下来我们来测试 3 个命令,首先我们想得到集美大学的官网:“ https://www.jmu.edu.cn/ ”的 IP 地址。

nslookup www.jmu.edu.cn


说这个命令的作用是获取主机 www.jmu.edu.cn 的 IP 地址。此命令的响应提供两条信息:

  1. 提供响应的 DNS 服务器的名称和 IP 地址;
  2. 响应本身,即 www.jmu.edu.cn 的主机名和 IP 地址。本地 DNS 服务器很可能会迭代地联系其他几个 DNS 服务器来获得结果。

现在我们要获取发送 jmu.edu.cn 的 DNS 主机名:

nslookup -type=NS mit.edu


通过添加选项 "-type=NS "和域名 "jmu.edu.cn"。命令的含义为 nslookup 将 NS 记录发送到默认的本地 DNS 服务器,转换为“人话”的含义为“获取发送 jmu.edu.cn 的权威 DNS 的主机名”,当不使用 -type 选项时,nslookup 将使用默认值,即查询 A 类记录。
来看看回显的数据,首先是提供响应的 DNS 服务器,即默认本地 DNS 服务器。紧随其后是以及 7 个 MIT 域名服务器,这些服务器中的每一个都是集美大学校园主机的权威 DNS 服务器。不过 nslookup 显示这些是非权威应答,表示着这个响应来自某个服务器的缓存,而不是来自权威 MIT DNS 服务器。最后显示了集美大学权威 DNS 服务器的 IP 地址。
接下来我们想试试不通过默认服务器,而是通过 DNS 服务器 bitsy.mit.edu 看看能不能成功解析集美大学官网。

nslookup www.jmu.edu.cu bitsy.mit.edu


看来不行哦,这个服务器上没有集美大学官网的信息。下面看一个成功的例子:

nslookup 命令语法

nslookup [-option1] [-option2] host-to-find dns-server

nslookup 可以不添加选项,或者添加一两个甚至更多选项。

实验操作

  1. 运行 nslookup 以获取一个亚洲的 Web 服务器的 IP 地址。该服务器的IP地址是什么?

刚刚做过啦!
2. 运行 nslookup 来确定一个欧洲的大学的权威 DNS 服务器。

我选择的是剑桥大学 https://www.cam.ac.uk/


3.运行 nslookup,使用上一个操作中一个已获得的 DNS 服务器,来查询 Yahoo! 邮箱的邮件服务器。它的 IP 地址是什么?

雅虎邮箱的域名为 “mail.yahoo.com”,我选择服务器 “auth0.dns.cam.ac.uk” 来找。

查找成功。这里也可以用递归来找:

ipconfig

IPConfig 实用程序和它的等价图形用户界面—— Windows 95/98 中的 WinIPCfg 可用于显示当前的 TCP/IP 配置的设置值。这些信息一般用来检验人工配置的 TCP/IP 设置是否正确。但是,如果你的计算机和所在的局域网使用了动态主机配置协议(Dynamic Host Configuration Protocol,DHCP——Windows NT 下的一种把较少的 IP 地址分配给较多主机使用的协议,类似于拨号上网的动态 IP 分配),这个程序所显示的信息也许更加实用。——百度百科

ipconfig 是主机中最实用的程序之一,调试网络问题时作用很大。ipconfig 可用于显示您当前的TCP/IP信息,包括您的地址,DNS服务器地址,适配器类型等。我们来看几个指令:

ipconfig /all


主机可以缓存最近获得的 DNS 记录,使用 ipconfig 可以查看这些缓存记录:

ipconfig /displaydns


显示了一堆数据。每个条目显示剩余的生存时间(TTL)(秒)。
当我想要清除这些缓存,就需要使用这个指令:

ipconfig /flushdns

该指令将清除所有条目并从 hosts 文件重新加载条目。

使用 Wireshark 追踪 DNS

实验操作

熟悉 nslookupipconfig 之后,首先让捕获一些由常规上网活动生成的DNS数据包:

  1. 使用ipconfig清空主机中的DNS缓存。
    由于我不想搞没这些数据,所以跳过。

2.打开浏览器并清空浏览器缓存。

  1. 打开 Wireshark,然后在过滤器中输入:
ip.addr==your_IP_address

先使用 ipconfig 获取 IP 地址。此过滤器将删除既从你主机不发出也不发往你主机的所有数据包。

4. 在 Wireshark 中启动数据包捕获。


emm……看样子干扰挺大!
5. 使用浏览器访问网页: http://www.ietf.org


6. 停止数据包捕获。

问题解答

由于干扰很大,我使用现成的包来分析。

4. 找到DNS查询和响应消息。它们是否通过UDP或TCP发送?


由此可见是 UDP。
5. DNS是查询消息的目标端口是什么? DNS响应消息的源端口是什么?



由此可见都是 53 端口。
6. DNS 查询消息发送到哪个 IP 地址?使用 ipconfig 来确定本地 DNS 服务器的 IP 地址。这两个 IP 地址是否相同?


由于这不是我抓的包,此处无法验证。
7. 检查 DNS 查询消息。DNS 查询是什么 "Type" 的?查询消息是否包含任何 "answers"?


Type 为 “A”,表示查询 IP 地址,没有任何 "answers"。
8. 检查DNS响应消息。提供了多少个"answers"?这些答案具体包含什么?


提供了 2 个 "answers",是该域名的 2 个 IPV4 地址。
9. 考虑从您主机发送的后续 TCP SYN 数据包。 SYN 数据包的目的 IP 地址是否与 DNS 响应消息中提供的任何 IP 地址相对应?


是相对应的。
10. 这个网页包含一些图片。在获取每个图片前,您的主机是否都发出了新的 DNS 查询?

并没有,因为本机 DNS 已经被缓存了,因此不需要发起新的 DNS 查询。

nslookup 的 DNS 查询①

实验步骤

现在抓取 nslookup 产生的包。

  1. 启动数据包捕获。
  2. 使用nslookup查询 www.mit.edu


3. 停止数据包捕获。


我们只分析其中一个包。

问题解答

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



目标端口和源端口都是 53。
2. DNS 查询消息的目标 IP 地址是什么?这是你的默认本地 DNS 服务器的 IP 地址吗?



192.168.67.1,是我的默认本地 DNS 服务器的 IP 地址。
3. 检查 DNS 查询消息。DNS 查询是什么 "Type" 的?查询消息是否包含任何 "answers"?


Type 为 “A”,表示查询 IP 地址,没有任何 "answers"。
4. 检查 DNS 响应消息。提供了多少个 "answers"?这些答案包含什么?


提供了 2 个 "answers",是该域名的 IPV4 地址。

nslookup 的 DNS 查询②

实验步骤

重复上一个实验,但换成以下命令:

nslookup -type=NS mit.edu


问题解答

  1. DNS 查询消息发送到的 IP 地址是什么?这是您的默认本地 DNS 服务器的 IP 地址吗?


192.168.67.1,是我的默认本地 DNS 服务器的 IP 地址。
2. 检查DNS查询消息。DNS 查询是什么 "Type" 的?查询消息是否包含任何 "answers"?


Type 为 “NS”,表示查询权威 DNS 服务器,没有任何 "answers"。
3. 检查 DNS 响应消息。响应消息提供的 MIT 域名服务器是什么?此响应消息还提供了 MIT 域名服务器的 IP 地址吗?


响应消息没提供 MIT 的域名的 IP 地址。

nslookup 的 DNS 查询③

实验步骤

重复上一个实验,但换成以下命令:

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


问题解答

  1. DNS 查询消息发送到的 IP 地址是什么?这是您的默认本地 DNS 服务器的 IP 地址吗?


18.0.72.3,不是我的默认本地 DNS 服务器的 IP 地址。
2. 检查DNS查询消息。DNS 查询是什么 "Type" 的?查询消息是否包含任何 "answers"?


Type 为 “A”,表示查询 IP 地址,没有任何 "answers"。
3. 检查 DNS 响应消息。提供了多少个 "answers"?这些答案包含什么?


提供了 1 个 "answers",是该域名的 IPV4 地址。

参考资料

《计算机网络 自顶向下方法》 [美] James F.Kurose,Keith W.Ross 著,陈鸣 译,机械工业出版社
域名系统(服务)协议
ipconfig

猜你喜欢

转载自www.cnblogs.com/linfangnan/p/12771157.html
今日推荐