一、实验步骤与结果记录
步骤一:下载并安装 Vmware
(1)下载安装 Vmware workstation pro
(2)熟悉Vmware workstation的使用
熟悉在Vmware workstation中增加、删除、复制虚拟机的操作。
学习Vmware workstation中的虚拟机连接外部网络的方法。
熟悉Vmware workstation中的虚拟网络编辑器的用法。
步骤二:下载并安装CentOS7
注意事项:
1、创建虚拟机时使用自定义安装,注意不要使用典型安装。
2、创建虚拟机时,选择稍后安装操作系统。
3、创建虚拟机时,网络类型选择网络地址转换 NAT。
4、安装CentOS时,/boot空间大于1G。
5、安装CentOS时,软件选择Server with GUI,注意不要用最小安装。
6、安装CentOS时,网络配置选择自动配置IP地址,主机名使用默认主机名localhost,不建议修改。
步骤三:在CestOS7中安装软件
(1)验证CestOS7中已经安装并加载tun模块,使用modinfo tun命令来验证tun模块已经安装
(2)在CestOS7中安装EPEL源和Wireshark软件。
利用yum install epel-release命令安装EPEL源。
利用yum install wireshark和yum install wireshark-gnome命令安装Wireshark软件。
步骤四:在CestOS7中创建2个网络命名空间,并创建一对网络接口,分配给两个网络命名空间,为两个接口配置IP地址。
(1)创建两个network namespace, 分别命名ns1和ns2
(2)创建一对veth pair,其中包含两个tap类型以太网接口,分别命名tap1、tap_peer
(3)将tap1迁移到ns1中, 将tap2迁移到ns2中
(4)为tap1、tap1_peer配置IP地址192.168.50.1和192.168.50.2
由于tap1位于ns1内,tap1_peer位于ns2内,为它们配置IP地址的命令需要分别在ns1和ns2内执行。在ns内执行命令需要在Linux命令前增加:ip netns exec [nsname]
(5)将新增加的两个网络接口状态设置为up
Linux中的网络接口可以处在down状态或up状态,只有在up状态的网络接口才能够进行网络通信。
步骤五:从主机ns1上ping主机ns2,测试虚拟网络的连通性,同时利用Wireshark软件抓包,保存抓包结果并分析。
(1)在ns1内,后台启动Wireshark软件,在接口tap1上启动抓包。后台启动Wireshark的命令:
(2)在ns1内,执行ping命令,测试ns1和ns2的连通性
(3)停止抓包,并保存抓包结果文件。
步骤六:为建立虚拟网络拓扑的过程编写bash脚本。
(1)CentOS7中安装了带有GUI的文本编辑器软件gedit,利用gedit编辑bash脚本程序。
bash脚本程序的首行必须是“#!/bin/sh”。最简单的bsh脚本是依次执行的批处理文件,仅需将步骤4中执行的Linux命令,依次输入脚本程序文件即可。
(2)保存脚本文件,并将文件权限修改为可执行。
(3)重启Linux,执行脚本文件。
二、问题与分析
问题一:你的wireshark安装成功了么?你安装的wireshark软件的版本号是多少?使用下述命令:
yum list installed wireshark |
查看你安装的wireshark软件的信息,截图说明你的分析过程。
答:wireshark已安装成功。wireshark软件的版本号是wireshark.x86_64 0:1.10.14-25.el7。截图说明如下:
问题二:步骤5中的网络连通性测试成功了么?实验中,你执行的ping命令得到的结果中,RTT值是多少?截图说明分析过程并填写表1.1。
表1.1 ping命令得到的RTT值 | |
最小RTT: | 0.063 ms |
平均RTT: | 0.117 ms |
最大RTT: | 0.189 ms |
答:网络连通性测试成功了,截图说明如下:
问题三:在步骤5中,你一共截获了几个数据帧?其中,在wireshark软件中,源地址和目标地址显示为IP地址的有几个数据帧?在源地址和目标地址显示为IP地址的数据帧中,任选一个数据帧,分析其层次结构。截图说明分析过程并填写表1.2和表1.3。
表1.2 Wireshark抓包结果分析 | |
一共截获的数据帧数量: | 12个 |
源地址和目的地址显示为IP地址的数据帧数量: | 8个 |
表1.3 源地址和目的地址显示为IP地址的数据帧的层次结构分析(自顶向下) | |
层次 | 协议 |
应用层 | ICMP(Internet控制报文协议),用于网络层的差错报告、拥塞控制和路由控制等,此数据帧中ICMP协议承载了Echo (ping) request(回显请求),用于测试网络连通性。 |
传输层 | 无明确传输层协议标识(ICMP直接封装在IP层之上,不依赖传输层的TCP或UDP协议) |
网络层 | IP(Internet Protocol) |
数据链路层 | Ethernet II(以太网协议) |
物理层 | 无特定协议名称(抓包工具主要呈现上 层及链路层信息 |
答:截图说明如下:
问题四:重新启动Linux后,你编写的脚本执行成功了么?请在你的脚本中增加命令“set -x”,设置执行脚本时显式脚本中的Linux命令,截图展示你的脚本执行结果。
答:重新启动Linux后,脚本执行成功了,截图说明如下: