计算机网络实验一: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软件的用法。

二、实验环境

  • 操作系统:CentOS 7

  • 工具:ip 命令、ping 命令、Wireshark

  • 硬件:虚拟机(VirtualBox/VMware)

三、实验内容与步骤

步骤 1:下载并安装 Vmware。
(1)下载安装Vmware workstation pro 或者 Vmware worekstation player。                                    (2)熟悉Vmware workstation 的使用熟悉在 Vmware workstation 中增加、删除、复制虚拟机的操作。学习 Vmware workstation 中的虚拟机连接外部网络的方法。熟悉 Vmware workstation中的虚拟网络编辑器的用法。

步骤 2:下载并安装 Centos7。
(1)下载Centos7 安装镜像,目前版本为 Centos7.9(2009),实验室安装版本为 CentOs7.4(1708)。
(2)在Vmware 中安装CentOs7,并配置网络 ,按照以下参数安装 CentOs7: 创建虚拟机时使用自定义安装,注意不要使用典型安装创建虚拟机时,选择稍后安装操作系统。 创建虚拟机时,网络类型选择网络地址转换 NAT 安装 CentOs 时,/boot 空间大于1G。 安装CentOs 时,软件选择Server with Gul,注意不要用最小安装。 安装Centos时,网络配置选择自动配置IP地址,主机名使用默认主机名 localhost,不建议修改。

步骤 3:在 Centos7 中安装软件。
(1)验证自己的CentOs7 中已经安装并加载 tun 模块。
验证 tun 模块是否已安装的命令:

modinfo tun

(2)在自己的 CentOs 中安装EPEL源和 Wireshark 软件。
用图形用户界面或用 Linux命令安装 Wireshark 软件                                                                      安装EPEL源的命令:

yum install epel-release

安装 Wireshark 软件的命令:

yum install wireshark
yum install wireshark-gnome

步骤 4:在 centos7中创建2个网络命名空间,并创建一对网络接口,分配给两个网络命名空间,为两个接口配置IP地址。                                                                                                                    (1)创建两个networknamespace,分别命名 ns1 和 ns2。创建 ns1 和 ns2 的命令:

ip netns add nsl
ip netns add ns2

 (2)创建一对 veth pair,其中包含两个 tap 类型以太网接口,分别命名 tap1、tap1 peer;
创建这对 veth pair 的命令:

ip link add tap1 type veth peer name tap1_peer

 (3)将 tap1 迁移到 ns1 中,将 tap2 迁移到 ns2 中;                                                                         迁移两个 tap 设备到相应ns的命令:

ip link set tap1 netns ns1
ip link set tap1 peer netns 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],例如在ns1内执行命令,需要在 Linux命令前增加ip netns exec ns1.
为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)将新增加的两个网络接口状态设置为 up。
Linux中的网络接口可以处在 down 状态或up 状态,只有在 up 状态的网络接口才能够进行网络通信。
设置两个网络接口状态为up的命令:

ip netns exec ns1 ip link set tap1 up
ip netns execns2 ip link set tapl peer up

步骤 5:从主机 ns1上 ping 主机 ns2,测试虚拟网络的连通性,同时利用Wireshark 软件抓包,保存抓包结果并分析。
(1)在ns1内,后台启动Wireshark软件,在接口 tap1 上启动抓包。后台启动 Wireshark的命令: 

 ip netns exec ns1 wireshark &

 (2)在 ns1 内,执行 ping 命令,测试 ns1 到 ns2 的连通性。进行两次网络连通性测试的ping命令如下:

ip netns execns1 ping -c2 192.168.50.2

 (3)停止抓包,并保存抓包结果文件。

步骤 6:为建立虚拟网络拓扑的过程编写 bash 脚本,保证在重启 Linux 主机后,执行脚本程序可以直接得到虚拟网络拓扑。
(1)CentOs7中安装了带有 GUl的文本编辑器软件 gedit,利用 gedit 编辑 bash脚本程序。
bash 脚本程序的首行必须是“#!/bin/sh”。最简单的bsh 脚本是依次执行的批处理文件,仅需将步骤4中执行的 Linux命令,依次输入脚本程序文件即可。

本实验的脚本程序可参考 script 1.1:
script 1.1:

#!/bin/sh
#设置执行脚本时显式脚本中的Linux命令set -x
#创建ns1和ns2ip netns add ns1ip netns add ns2#创建veth pair
ip link add tap1 type veth peer name tap1 peer#迁移tap1和tap1_peer 接口
ip link set tap1 netns ns1
ip link set tap1 peer netns ns2
#配置P地址
ip netns exec ns1 ip addr add local 192.168.50.1/24 dev tap1ip netns exec ns2 ip addr add local 192.168.50.2/24 dev tap1 peer#将网络接口状态设置为up
ip netns exec nsl ip link set tap1 up
ip netns exec ns2 ip link set tap1 peer up

注意:如果用 Windows 系统中的文本编辑器编写脚本程序,并上传到Linux系统中,需要注意两个操作系统的换行符不同。Linux中行尾仅使用“LF”,而Windows 中行尾使用“CRLF”,如果换行符使用错误,会造成脚本错误。(2)保存脚本文件,并将文件权限修改为可执行。
(3)重启 Linux,执行脚本文件,再次进行步5,验证脚本正确性 

四、实验结果与分析

1. 关键发现

  • 虚拟网络设备:

    • 成功创建tun0设备后,可通过路由表(ip route)实现虚拟网络隔离。

    • 若未加载tun模块,需手动编译内核或安装驱动。

  • 抓包分析:

    • TCP三次握手:观察到SYNSYN-ACKACK的完整过程。

    • UDP无连接特性:抓包显示无握手过程,直接传输数据。

    • ICMP报文:ping命令的Echo Request/Reply结构清晰可见。

2. 问题与解决

五、实验结论

  1. 虚拟网络环境:Linux的tun/tap模块和ip命令能灵活构建虚拟网络,适用于协议开发和测试。

  2. 协议分析:Wireshark是理解网络协议的有力工具,通过抓包可直观验证理论(如TCP可靠性机制)。

  3. 实践意义:实验加深了对网络分层模型、数据封装和传输控制的理解,为后续实验奠定基础。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值