一、实验目的

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. 验证tun模块是否已安装的命令:

modinfo tun

验证命令示例如下图所示:

2. 安装EPEL源的命令:

yum install epel-release

验证命令示例如下图:

3. 安装Wireshark软件的命令:

yum install wireshark

yum install wireshark-gnome

验证命令示例如下图:

4. 创建两个network namespace,分别命名ns1和ns2。
(1) 创建ns1和ns2的命令:

ip netns add ns1

ip netns add ns2

(2) 创建一对veth pair的命令:

ip link add tap1 type veth peer name tap1_peer

(3)迁移两个tap设备到相应ns的命令:

ip link set tap1 netns ns1

ip link set tap1_peer netns ns2

(4)为tap1、tap1_peer配置IP地址的命令:

ip netns exec ns1 ip addr add local 192.168.50.1/24 dev tap1

ip netns exec ns2 ip addr add local 192.168.50.2/24 dev tap1_peer

5. 后台启动Wireshark软件命令:

ip netns exec ns1 wireshark &

验证命令示例如下图:

6. 在ns1内,执行ping命令,测试ns1到ns2的连通性命令:

ip netns exec ns1 ping -c 2 192.168.50.2

验证命令示例如下图:

7. 编写bash脚本,保存脚本文件并将文件权限修改为可执行,如下所示:

8. 重启Linux,执行脚本文件,验证脚本正确性,如下图所示:

 问题分析

执行的ping命令得到的结果中,RTT值如下表所示:

ping命令得到的RTT值

最小RTT:

2毫秒

平均RTT:

6.75毫秒

最大RTT:

11毫秒

 任选一个数据帧,分析其层次结构如下表所示:

Wireshark抓包结果分析

一共截获的数据帧数量:

16个

源地址和目的地址显示为IP地址的数据帧数量:

8个

 

 源地址和目的地址显示为IP地址的数据帧的层次结构分析(自顶向下)

层次

协议

最顶层

Ping命令基于ICMP,可看作简易应用

中间层

源IP地址和目的IP地址在IP协议下进行标识和传输

底层

在数据链路层传输IP数据包,需要通过ARP协议将IP地址解析为MAC地址

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐