这篇文章是计算机网络上机实验课的作业。

实验任务:利用 VMWare 搭建一个由 5 个主机组成的随机拓扑的网络。要求该网络中至少有 2 个子网,两个路由器 。实验的网络拓扑图如下:

网络中有两个路由器,三个终端,组成三个局域网络。路由器和终端均为VMWare的的虚拟机。VMWare软件下载就在百度下载就可以了。这里我收藏了八台虚拟机ubuntu12,需要的同学可以下载使用哦。下载链接:https://pan.baidu.com/s/1miMIM9q (每台虚拟机的用户名和密码都是user,三台有图形界面,四台没有图形界面。)关于怎么导入和使用虚拟机自行百度哈~这里就不赘述了。

1. 虚拟机的网络配置

1.1 导入多个虚拟机

除需运行图形界面软件的虚拟机外,其它默认采用字符界面。在字符界面下可以选用普通用户或根用户(root)登录。用普通用户登录时,命令提示符为$,在执行需要 root 用户权限的命令时可通过在命令前加 sudo,或用 su 命令提升为 root 用户完成。用 root 用户登录时,命令提示符变为#。从字符界面启动图形界面时用命令 startx,为使图形界面运行正常,请先确保虚拟机内存达到 256M。
我这次实验导入了5台虚拟机,571和572是路由器,573到575是终端。

1.2 连接多个虚拟机

VMWare 提供了十个虚拟交换机 VMnet0—VMnet9。其中 VMnet0、 VMnet1 和 VMnet8为专用设备,分别以 default Bridged、 Host-only 和 NAT 三种方式为虚拟机提供宿主机器原网络服务。另外七个虚拟交换机未被定义,可以用它们进行连接,配制虚拟网络。

下面介绍怎么配置各个虚拟机的网络:

U571 对应于网络中的route0,负责两个子网之间的交换路由。打开U571的虚拟机设置:

打开网络适配器,右侧选择自定义网络,选择VMNET2,这样虚拟机U571便与虚拟交换机VMNET2相连,与VMNET2相连的都在一个局域网内。VMWare 没有提供虚拟路由,我们需要用虚拟机来模拟出一个路由器,这样用来模拟路由器的虚拟机至少需要两张网卡,
所以你可能看到你的网络适配器只有一个,点击下方的添加按钮就可以为虚拟机添加多张网卡。

这样变又加入了一张网卡。现在U571就是一个链接了VMNET2和VMNET3的路由器了,同样的配置U572为链接VMNET3和VMNET4的路由器。U573和U574为连接VMNET2的终端。U575为链接VMNET4的终端。

为了理清网络结构和后面的内容,我给前面出现的图加一些注释方便理解:

标注了每个交换机和终端的网卡的IP地址,通过ping操作来检测是否网络链接正常。目标是任意的两个IP之间都能PING通。

2. 设置IP与路由规则

ip 地址是计算机进行网络通讯的基础,每一台联网计算机都至少具有一个 ip 地址。在日常使用中,我们通常能自动获取 ip,这是由于 DHCP 协议的作用。在本次实验中我们需
要手动为配置好的虚拟网络分配 ip 地址。
首先使用 ifconfig 命令查看网络配置,以虚拟机 U-571 为例,键入命令       

ifconfig -a |less

用"q"键退出。刚开始的虚拟机还没有IPV4地址。

然后使用ifconfig命令分别为两个网络设备eth0和eth1设置IP.(U571)

sudo ifconfig eth0 192.168.2.1 netmask 255.255.255.0
sudo ifconfig eth1 192.168.3.1 netmask 255.255.255.0

同样在U572中设置为

sudo ifconfig eth0 192.168.4.1 netmask 255.255.255.0
sudo ifconfig eth1 192.168.3.1 netmask 255.255.255.0

U573--U575的IP按照的上述的方法设置成上图中每个节点的IP就可以了。这里要仔细联系上面的图理清楚网络关系。

配置好之后我们可以用ifconfig -a 查看:

IP设置好后,就可以根据IP在路由上设置路由规则。这个也是本次实验的核心部分,路由器是根据路由表来进行数据包的转发的,如果没有路由表,数据包就不知道往哪里发,这个就跟写信不写地址就发不了一样。

在这里我们以路由器U571为例来说明,U572配置的方法是一样的。配置路由规则的命令如下:

sudo ip route add 192.168.2.0/ via 192.168.2.1
sudo ip route add 192.168.3.0/ via 192.168.3.1
sudo ip route add 192.168.4.0/ via 192.168.3.2

其中 ip route add 192.168.2.0/24 via 192.168.2.1 命令添加的规则,告诉路由目的 ip 在192.168.2.0/24(192.168.2.1~192.168.2.255)网段内的封包经由 ip 地址为 192.168.2.1 的设备转发出去,即下一跳的 ip 为 192.168.2.1。而 192.168.2.0/24 是 Linux 中常用的掩码表示方式。24 表示掩码字长为 24 即掩码为 255.255.255.0, 192.168.2 为网络号, 1~254 为网络中的主机号。 此外还有其他形式用于添加路由规则的命令。

这里要好好体会路由器转发的是下一跳的IP,我当时实验的时候翻了一个错误就是在转发192.168.4.0/24的时候,把他的下一跳IP设置成了192.168.3.1,这里可以看到这样是不行的,如果有U575(192.168.4.2)的数据包的话,那么转发给192.168.3.1,路由器并不知道下面该把包发送给谁。所以应该设置成192.168.3.2,然后路由器U572中,再添加路由规则sudo ip route add 192.168.4.0/24 via 192.168.4.1,这样便可以把包转发给U575了。这里需要好的体会下是怎么实现的。

最后我们要让虚拟路由允许转发,置虚拟机 U-571 的 ip_forward 标志为 1。 这里我们需要把/proc/sys/net/ipv4/目录下的文件 ip_forward 值置为 1。 使用命令 echo,形如:

echo  > /proc/sys/net/ipv4/ip_forward 

在运行上述代码会出现permission denied,这时运行  sudo su,然后再执行上述代码就可以了。

然后同理的配置好路由器U572后就可以愉快的相互ping通了。

实验下从U572(192.168.2.2)  ping u575(192.168.4.2)结果如下:

这就ping通啦~说明网络配置成功了。

我也是才开始学计算机网络,文章中出现了哪些专业术语不正确的地方还望大家指正~纯手打,看完点个赞吧(●'◡'●)!!!

利用 VMWare 搭建随机拓扑网络的更多相关文章

  1. Hadoop4 利用VMware搭建自己的hadoop集群

    前言:       前段时间自己学习如何部署伪分布式模式的hadoop环境,之前由于工作比较忙,学习的进度停滞了一段时间,所以今天抽出时间把最近学习的成果和大家分享一下.       本文要介绍的是如 ...

  2. 利用 Docker 搭建 IPFS 私有网络

    利用 Docker 搭建 IPFS 私有网络 本文原始地址:https://sitoi.cn/posts/40630.html 下载项目 项目地址:https://github.com/Sitoi/p ...

  3. 利用vmware 搭建分布式集群

    前言:      我们需要至少3台服务器来实现分布式,鉴于没那么多钱买真机器,从学习和开发的角度看,只有虚拟机一条路了. 软件选择:     虚拟机使用VMware软件,因为主流而且资料比较多,学习成 ...

  4. 利用vmware搭建分布式集群

    背景:      我们需要至少3台服务器来实现分布式,鉴于没那么多钱买真机器,从学习和开发的角度看,只有虚拟机一条路了. 软件选择:     虚拟机使用VMware软件,因为主流而且资料比较多,学习成 ...

  5. Ubuntu利用ROS搭建手机移动网络摄像头(Android)

    所需设备 PC -> Ubuntu 16.04 - > ROS Kinetic Android系统手机 1.Android移动端APP下载安装 配置手机端:(一般默认即可RTSP) 2.源 ...

  6. ZooKeeper1 利用虚拟机搭建自己的ZooKeeper集群

    前言:       前段时间自己参考网上的文章,梳理了一下基于分布式环境部署的业务系统在解决数据一致性问题上的方案,其中有一个方案是使用ZooKeeper,加之在大数据处理中,ZooKeeper确实起 ...

  7. Kafka1 利用虚拟机搭建自己的Kafka集群

    前言:       上周末自己学习了一下Kafka,参考网上的文章,学习过程中还是比较顺利的,遇到的一些问题最终也都解决了,现在将学习的过程记录与此,供以后自己查阅,如果能帮助到其他人,自然是更好的. ...

  8. VMware的三种网络连接方式区别

    关于VMware的三种网络连接方式,NAT,Bridged,Host-Only ,在刚接触的时候通常会遇到主机Ping不通虚拟机而虚拟机能Ping得通主机:主机与虚拟机互不相通等等网络问题.本文就这三 ...

  9. VMware中三种网络连接的区别

    1.概述 大家在安装完虚拟机后,默认安装了如下图的两块虚拟网卡——VMnet1和VMnet8,其中VMnet1是host网卡,用于host方式连接网络:VMnet8是NAT网卡,用于NAT方式连接网络 ...

随机推荐

  1. POJ2236 Wireless Network 并查集简单应用

    Description An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have ...

  2. 设计模式(二) 策略模式Strategy

    策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理,我个人的理解是,具有相同行为不同的行为模式,比如走路,有人速度3m/s,有人100m/s,把他们的具体行走和对象本身 ...

  3. 为Tornado框架加上基于Redis或Memcached的session 【第三方】

    Tornado 没有session,只有cookie_secret,这在一些情况下是不利于开发的.所有我们可以给Tornado加上session的功能. 这篇文章讲解的是依靠第三方包来实现.以后的文章 ...

  4. Java学生成绩

    import java.util.*; public class guanlixiton { public static void main(String[] args) { Scanner in = ...

  5. poj-2287---Tian Ji -- The Horse Racing

    #include<iostream> #include<algorithm> using namespace std; bool cmp(const int,const int ...

  6. Http跨域时的Option请求

    写这篇文章时,我们碰到的一个场景是:要给R系统做一个扩展小应用,前端的html.js放在R系统里,后端需要做一个单独的站点N.B.com.这就导致了跨域问题,而且要命的是,后端同学没有权限向招聘的系统 ...

  7. 给View添加手势,防止点击View上其他视图触发点击效果

    在开发过程中,我们可能会遇到这个问题. 当我们给一个view添加了手势,但是我们又不想点击view上面的视图也触发手势.如下图: 我们在红色view上添加了手势,但是又不想点击黄色view也触发.其实 ...

  8. uiautomator +python 实现安卓自动化

    很多人看到这个题目我相信他们可能会说,uiautomator不是java开发的吗?python怎么用呢,其实呢 ,一开始我也是这么想的,看了金阳光老师的视频,也是用java写的,我表示不服,我要科学上 ...

  9. HDU 3001 Travelling:TSP(旅行商)【节点最多经过2次】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3001 题意: 有n个城市,m条双向道路,每条道路走一次需要花费路费v.你可以将任意一个城市作为起点出发 ...

  10. 关于java中用itext导出word的一点想法

    这几天在项目组只做了很少的事情,主要还是自己不认真地说.我的部分是要负责用itext导出word文档这一块,之前看到大佬们做出了EXCEL部分觉得很是惊奇,就像刚刚接触HTML一样的感觉.但是毕竟自己 ...