本实验利用Wireshark工具对DNS协议进行深入分析,旨在帮助学生理解DNS的工作原理及其在网络通信中的作用。通过实际操作,掌握如何捕获和解析DNS数据包,识别各种类型的查询与响应,并学习常见的优化技巧。
### 实验3 利用Wireshark分析DNS协议
#### 一、实验目的
本实验旨在通过实际操作,深入理解域名系统(DNS)的工作原理,并掌握使用Wireshark这款强大的网络包捕获与分析工具来解析DNS通信过程的方法。通过对DNS查询和响应的捕捉及解析,了解DNS数据包结构、查询类型以及服务器如何处理请求并提供相应的回应。
#### 二、实验环境
本实验在一台连接至互联网的计算机上进行,操作系统为Windows,并且安装了Wireshark与Internet Explorer等软件。其中,Wireshark是一款开源网络流量分析工具;而IE浏览器则用于模拟用户访问互联网的行为。
#### 三、实验步骤详解
1. **nslookup工具使用**
- **命令格式**: `nslookup [选项] [主机名] [DNS服务器]`
- **示例**:
1. 输入`nslookup www.usst.edu.cn`: 此命令询问默认的DNS服务器以获取`www.usst.edu.cn`的IP地址。屏幕上会显示两个关键信息:
- DNS服务器的名字和IP地址:这是处理请求并提供答案的DNS服务器的信息。
- 主机名和IP地址:即被查询主机及其对应的IP地址。
2. 输入`nslookup –type=NS usst.edu.cn`: 请求查询USST域名下的名称服务器信息。屏幕上将显示多个USST DNS服务器的名字及它们各自的IP地址,这些通常是校园内部默认的DNS服务提供者。
3. 输入`nslookup www.google.com dns2.edu.cn`: 指定使用特定的DNS服务器(如dns2.edu.cn)查询`www.google.com`的IP地址。结果将显示该网址对应的IP信息。
- **效果**: 上述命令展示了如何通过指定不同的选项和参数来获取所需的信息,包括主机名到IP地址映射以及域名下的名称服务列表等。
2. **ipconfig命令使用**
- **功能说明**: `ipconfig`用于查看TCP/IP配置详情,如本地主机的IP信息、默认DNS服务器地址及网络适配器状态等。
- **示例**:
1. 输入`ipconfig all`: 展示所有相关的配置细节;
2. 使用`displaydns`: 查看当前存储在系统缓存中的DNS记录;
3. 利用`flushdns`: 清空本地的DNS解析缓存。
3. **利用Wireshark捕获DNS信息**
- **准备步骤**: 先通过执行`ipconfig flushdns`命令清空DNS缓存,并清理浏览器的历史数据。
- **操作流程**:
1. 启动Wireshark,设置过滤器以只关注特定IP地址的网络流量;
2. 在浏览器中输入网址(如http://www.google.com)开始捕获过程;
3. 完成后分析捕捉到的数据包。
#### 四、实验报告分析
1. **DNS查询与响应消息使用的传输层协议**: DNS请求和回应通常通过UDP进行。
2. **端口信息**:
- 查询:目的端口号为53(标准的DNS服务端口);
- 响应:源端口号同样为53,而客户端使用的是临时分配的一个特定端号如60044。
3. **IP地址对比**: DNS查询消息发送到本地DNS服务器的IP。通过`ipconfig all`命令可以找到这个信息;实验中两个地址是一致的。
4. **DNS查询类型**:
- 示例中的请求是递归查询,要求得到精确的目标主机IP地址;
5. **DNS响应结构**:
- 包含了域名、对应的IP地址、生存时间(TTL)、数据长度以及资源记录类别代码等信息。
6. **TCP SYN包验证**: 从客户端发出的SYN包目标地址与DNS回应中的IP一致,表明成功解析出目标主机的IP。
通过实验操作和分析,学生可以深入理解DNS的工作机制,并掌握Wireshark在DNS协议研究中的应用技巧。这对于解决网络通信问题具有重要的参考价值。