所以说计网实验三没必要搞得这么复杂

type
status
date
slug
summary
tags
category
icon
password
请注意,进行本实验需要你的电脑至少有16G内存、至少有160G磁盘空间。
不知道的还以为我要玩某款3A级游戏大作,至少这个对内存和磁盘空间的要求已经超过了GTA5或者地平线5。
notion image
为了一个实验开了8台虚拟机,什么含金量?
说的就是你,泥工的计网实验三:IP 数据报的转发及收发。

3.1 使用虚拟机实现多主机间的 UDP 数据报收发及转发

notion image
notion image
话不多说,配虚拟机吧。
上次配虚拟机还是上学期的计算机系统,当时还是第一次配,好在有保姆级教程,不过也折腾了半天。这学期的操作系统也需要虚拟环境,但老师把配好的虚拟机打包好发给了我们。
起初想直接用操作系统的虚拟环境做计网实验,但感觉10多个G的文件有点大(后来验证了其实差不了多少),自己配正好还能锻炼动手能力(嗯,确实锻炼了,还能拿来水一篇博客)。
notion image
我下载的是最新的Ubuntu 24.04 LTS桌面版。
notion image
  1. 默认分配2G内存,20G硬盘,网络适配器改成自定义(VMnet8(NAT)),不然连不上网。
  1. 安装VMware Tools,以便能在虚拟机和宿主机之间使用剪贴板。注意不要点击VMware虚拟机选项卡下的安装选项,这不仅不能直接安装,需要在宿主机下载Linux.iso挂载到虚拟机上(可能是Ubuntu版本的原因),即使挂载了在安装时也会出现segmentation fault(core dumped),给虚拟机重新分配大内存和多个处理器都没用。
    1. 需要安装open-vm-tools,命令如下:
  1. 配置共享文件夹,在宿主机的VSCode上改代码,再在虚拟机上运行程序。
    1. 共享文件夹的名称不要有空格。
      notion image
      确保 /mnt/hgfs 目录存在,如果不存在,可以先创建:
      然后挂载共享文件夹:
      如果挂载失败,可以尝试以下命令:
      输入以下命令查看共享文件夹是否成功挂载:
      如果希望共享文件夹在每次开机时自动挂载,可以编辑 /etc/fstab 文件,添加以下行:
      在桌面添加快捷方式:
好了,环境配置差不多了,克隆虚拟机(克隆后打开共享文件夹,默认是禁用的),可以通过ip a指令查看虚拟机的IP地址和MAC地址(建议保存在一个txt文档里),也可以虚拟机之间互相ping一下,虚拟机和宿主机之间也可以ping,但记得关闭宿主机的Windows网络防火墙。
在共享文件夹里粘贴代码,依次在三个虚拟机里执行程序,再按要求改进代码,详见实验报告。

3.2 基于单网口主机的IP 数据报转发及收发

notion image
notion image
这个实验的变态之处在于要将三台虚拟机扩展到五台虚拟机,可惜我的轻薄本(一千块不到的翻新富士通U939)只有8G内存。尝试给Ubuntu分配的内存降到1G,发现开机输入用户密码后灰屏,进不到桌面。尝试安装无图形化界面的Ubuntu Server,安装系统时总是卡在某一步,而且如果安装完了,已经做完的第一部分还要重来一遍,放弃,改用游戏本(华硕天选4,内存16G)继续实验。同时开五台虚拟机风扇呼呼响,光标移动也变得卡卡的,不过实际上没有那么占内存,分配的2G内存实际用不上那么多,切换的时候不用的虚拟机可能系统给挂起了。

3.3 基于双网口主机的路由转发

notion image
notion image
这个实验不能在之前实验的基础上进行,因此需要再另开三台虚拟机。
  1. 先趁着能连接网络时安装WireShark:
    1. 安装过程中可能询问是否允许非root用户抓包,如果选择“是”然后再把当前账户加入 wireshark 组:
      似乎可以直接运行,不过我在后续使用的都是sudo wireshark指令。
  1. 需要打开VMware编辑选项卡的虚拟网络编辑器,配置VMNet2和VMNet3
    1. notion image
      然后更改虚拟机的网络适配器,sender连接VMNet2,router需要新增一个网络适配器,分别连接VMNet2和3,receiver连接VMNet3。
  1. 然后分别开机配置,详见readme.txt,配置完运行ip a指令和ip route指令验证一下,可能需要重复运行几次。

最后就是吐槽,这个实验非要开五台虚拟机吗?能不能分组进行实验,使用其他同学的电脑当做终端?这个实验的精髓在于代码,为什么不把重点放在理解代码上?实验指导书的代码和文字说明AI味很重,估计也没有哪个学生不使用AI,自己改代码的。
最最重要的是,实验只占15分,一共5个实验,一个实验只有3分,甚至不如一道期末考试的选择题。
Man, what can I say?
Prev
计算机系统
Next
计算机网络C
Loading...