!仅作为参考,不保证准确性!
实验一:Linux虚拟网络环境和Wireshark抓包软件
【实验目的】
1、熟悉Vmware软件的使用;
2、熟悉Linux操作系统的基本操作;
3、学习Linux操作系统中安装软件的方法;
4、熟悉Linux虚拟网络环境;
5、学习Linux中network namespace的基本操作;
6、学习Linux中虚拟以太网设备Tap和veth pair的基本操作;
7、学习Linux中在NS内执行命令的方法;
8、学习Linux中编写脚本程序的基本方法;
9、学习Wireshark软件的用法。
【实验步骤与结果记录】
要求:根据实验指导书中的实验内容和步骤,认真完成实验。采取截图、拍照等形式记录自己的实验步骤和结果。(可根据需要加页)
步骤1. 下载并安装VMware
(1)VMware workstation的下载安装
在官网找到VMware workstation pro或者VMware workstation player下载(下载需要登录账号)
运行安装程序,安装完成后如下
步骤二. 下载并安装centos镜像
下载镜像
按照《计算机网络实验参考资料汇编》新创建一个虚拟机
开启虚拟机并按照步骤安装系统
安装完成后重启
步骤3. 在centos中安装软件
-
验证tun模块是否已经安装
登陆后使用modinfo tun命令查看
验证tun是否已经加载:
(2)安装Epel源以及elrepo
(3) 安装wireshark(过程较长,仅截取最后部分)
步骤4
在centos中创建两个网络命名空间,并创建一对网络接口,分配给网络命名空间,并为接口配置IP地址
-
创建两个namespace
-
创建一对 veth pair,其中包含两个tap类型以太网接口,分别命名tap1、tap1_peer
-
将tap1迁移到ns1中,将tap2迁移到ns2中
-
为tap1,tap1_peer配置IP地址
-
将两个网络接口设置为up
步骤5:
从主机ns1上ping主机ns2,测试虚拟网络的连通性,同时利用Wireshark软件抓包,保存抓包结果并分析。
-
在ns1内,后台启动 Wireshark软件,参考《计算机网络实验参考资料汇编》中 Wireshark软件的用法,在接口tap1上启动抓包。
-
在ns1内,执行ping命令,测试ns1到ns2的连通性。
进行两次网络连通性测试的ping命令结果如下:
- 保存抓包文件
步骤6:
为建立虚拟网络拓扑的过程编写bash脚本,保证在重启 Linux主机后,执行脚本程序可以直接得到图1.4所示虚拟网络拓扑
编写脚本
重启后执行脚本,进行步骤五验证
验证
在wireshark中抓包成功
【问题与分析】
1、你的wireshark安装成功了么?你安装的wireshark软件的版本号是多少?使用下述命令:
yum list installed wireshark
查看你安装的wireshark软件的信息,截图说明你的分析过程。
安装的版本号为1.10.14-25.el7
使用的是北京外国语大学的镜像
2、步骤5中的网络连通性测试成功了么?实验中,你执行的ping命令得到的结果中,RTT值是多少?截图说明分析过程并填写表1.1。
表1.1 ping命令得到的RTT值
最小RTT: | 0.000034621 |
---|---|
平均RTT: | 0.000034763 |
最大RTT: | 0.000034905 |
成功了
两次ping命令的request和reply如下:
第一次ping命令的RTT为回复和请求的时间戳相减
t1 = 0.071951519 - 0.071916898 = 0.000034621
第二次的RTT
t2 = 0.070928777 - 0.070893872 = 0.000034905
平均RTT : (0.000034621+0.000034905)/2 = 0.000034763
3、在步骤5中,你一共截获了几个数据帧?其中,在wireshark软件中,源地址和目标地址显示为IP地址的有几个数据帧?在源地址和目标地址显示为IP地址的数据帧中,任选一个数据帧,分析其层次结构。截图说明分析过程并填写表1.2和表1.3。
表1.2 Wireshark抓包结果分析
一共截获的数据帧数量: 8
源地址和目的地址显示为IP地址的数据帧数量: 4
表1.3 源地址和目的地址显示为IP地址的数据帧的层次结构分析(自顶向下)
层次 协议
物理层
数据链路层 Ethernet协议
网络层 IPV4协议
运输层 ICMP协议
一共八个数据帧,其中有四个的源地址和目的地址显示为IP地址
物理层的数据帧概况
数据链路层以太网头部帧
网络层的IP包头信息,使用IPV4协议
传输层的头部信息,采用了ICMP协议
4、重新启动Linux后,你编写的脚本执行成功了么?请在你的脚本中增加命令"set -x",设置执行脚本时显式脚本中的Linux命令,截图展示你的脚本执行结果。
成功了,截图如下