实验2 IP协议分析
1. 实验目的
了解IP报文格式,熟悉IP报文各个字段含义、长度
掌握基于tcpdump和wireshark软件进行数据包抓取和分析技术
2. 实验环境
硬件要求:阿里云云主机ECS 一台。
软件要求:Linux/ Windows 操作系统
3. 实验内容
3.1 tcpdump 基本用法
tcpdump是一个用于截取网络分组,并输出分组内容的工具。凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具
tcpdump 支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息
参考资料:
https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html
https://www.jianshu.com/p/d9162722f189
3.2 wireshark基本用法
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark来学习网络协定的相关知识。
参考资料:
https://www.wireshark.org/#download
https://pc.qq.com/search.html#!keyword=wireshark
https://www.cnblogs.com/csnd/p/11807736.html
https://pc.qq.com/search.html#!keyword=xshell
3.3 利用tcpdump抓包,wireshark分析包
在阿里云主机运行命令traceroute www.baidu.com ,并利用tcpdump抓包。下载文件到本地机器利用wireshark软件进行分析。
提示:
必须首先执行抓包命令,然后再执行路径追踪命令。抓包命令 tcpdump -i eth0 -w test.cap可使用scp命令或者利用xshell和xftp下载数据包到本地机器。1)利用tcpdump抓包,通过wireshark分析捕获的数据包,分析IP的报文结构,将IP协议树中各个名字字段,字段长度,字段信息填入下表。
字段名 | 字段长度 | 字段值 | 字段表达信息 |
---|---|---|---|
Version | |||
Header length IP | |||
Differentiated services Filed | |||
Total length | |||
Indentification | |||
flag | |||
Fragment offset | |||
Time to live | |||
protocol | |||
Header checksum | |||
source | |||
destination |
2) 利用wireshark分析并解读相关traceroute命令执行结果。
提示:在wireshark 过滤器工具栏设置仅显示ICMP
4. 实验结果与分析
需给出实验中相关命令、脚本或者代码以及运行截图。注意格式规范、截图清晰,大小合适;
对于中间过程和运行结果需给出必要分析说明;
4.1 利用tcpdump抓包,通过wireshark分析捕获的数据包,分析IP的报文结构,将IP协议树中各个名字字段,字段长度,字段信息填入下表。
4.1.1在阿里云运行终端安装traceroute。
yum install traceroute
如图所示,成功安装traceroute以便后续实验使用。
4.1.2 利用traceroute测量数据包到达百度网站所经过的路径。
traceroute www.baidu.com
如图所示,利用traceroute测量路由情况,显示数据包到达百度网站的所经过的路径。
4.1.3 利用tcpdump对百度网站进行抓包。
tcpdump -i eth0 -w test.cap
如图所示,利用tcpdump对百度网站进行抓包,成功抓取156个包,并且以test.cap的形式保存下来。
4.1.4在阿里云下载lrzsz,并且检查是否安装成功。
yum install -y lrzsz
安装lrzsz,用于Windows与Linux之间的文件传输,用于之后把利用tcpdump抓取的包传输到本机。
sz --v
如图所示,lrzsz已经成功安装,可以继续进行下一步实验。
4.1.5 下载Xshell,并将其连接阿里云虚拟机,将实验中保存下来的text.cap文件传输到本机。
如图所示,填写连接阿里云虚拟机主机号。
输入用户名密码,进行连接。
如图所示,成功连接Xshell。
sz text.cap
在Xshell中输入代码,将实验中获取的text.cap文件下载至本机中去。
4.1.6 下载Wireshark,并将从Linux中获取的text.cap文件在其中打开。
如图所示,此为从百度网站抓取的数据包。
4.1.7 对text.cap文件中的数据进行分析,查看数据包中的具体信息,完成表格中内容的填写。
对具体数据进行分析,分别获取字段名的字段长度,字段值以及字段表达信息,完成表格中内容的填写。表格如下:
字段名 | 字段长度 | 字段值 | 字段表达信息 |
---|---|---|---|
Version | 4 | 6 | 版本号,IPv4 |
Header length IP | 4 | 20 bytes | IP报文头长度 |
Differentiated services Filed | 8 | 0x00(DSCP:CS0,ECN Not-ECT) | 服务类型 |
Total length | 16 | 52 | 数据包总长度 |
Indentification | 16 | 0x4f42(20290) | 标识符 |
flag | 3 | 0x2 | 标识 |
Fragment offset | 13 | 0 | 分段偏移量 |
Time to live | 8 | 48 | 生存期 |
protocol | 8 | TCP(6) | 上层协议名称 |
Header checksum | 16 | 0xe2c1 | 报文头校验和 |
source | 32 | 118.31.243.243 | 源地址 |
destination | 32 | 172.16.2.157 | 目的地址 |
4.2 利用wireshark分析并解读相关traceroute命令执行结果。
提示:在wireshark 过滤器工具栏设置仅显示ICMP
4.2.1 打开Wireshark进行抓包。
4.2.2 打开阿里云虚拟机,使用traceroute命令,使wireshark抓取的包记录下来。
4.2.3 当traceroute命令执行介绍自动退出的时候,停止抓包
4.2.4 在wireshark 过滤器工具栏设置仅显示ICMP,进行过滤。
如图所示,利用wireshark过滤出了icmp。
5. 实验小结
(包括遇到的特定问题和解决办法、心得体会、意见与建议等)
问题与解决办法:
问题一:不知道如何将阿里云虚拟机中抓取的数据包传输到本机中去。
解决方法:查阅资料获得解决方法。首先,在虚拟中安装lrzsz,进行Linux与Windows系统间的文件传输;其次下载Xshell,并连接阿里云虚拟机,运行代码,将文件成功从虚拟机传输到本机中去。
问题二:无法成功将Xshell连接。
解决方法:在查阅资料后得知,连接Xshell需要输入阿里云虚拟机的主机端口,并输入阿里云虚拟机的登录名和密码,最终得以成功连接。
问题三:在运用Wireshark分析抓取数据包中的信息时,不能理解其具体数据所表达的含义,无法成功填写表格。
解决方法:通过查阅资料以及与同学之间的交流讨论,最后成功解决问题,成功填写表格。
心得体会:
1.成功的了解IP报文格式,熟悉IP报文各个字段含义、长度,但是还是过于生疏,需要在今后的学习生活中继续学习,多加巩固。
2.学习了解并初步掌握了tcpdump的基本用法,可以运用该语句完成实验的内容。
3.学习掌握了lrzsz的基本作用是进行Linux与Windows之间的传输,学习掌握了xshell的基本用法。
4.学习掌握了Wireshark的基本用法,运用其对抓取的数据包进行ip协议的分析。