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

实验任务:利用 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. FarmCraft[POI2014]

    题目描述 In a village called Byteville, there are   houses connected with N-1 roads. For each pair of ho ...

  2. ASP.NET在母版页或内容页上获取控件ID

    原本想给一个button添加一个confirm,不同的分数提示不同的信息(大于80合格,小于80不合格,提示是否提交),最开始用了button.Atribute.Add();但是它每次获取到的是lab ...

  3. Django 1.9 admin 使用suit 小记

    最近项目做到了后台管理的部分.Django虽然提供了后台管理,但是界面不咋好看.所以我使用了suit.官网http://djangosuit.com/ 步骤: 1,安装suit 项目settings. ...

  4. java8之lambda表达式(1)-基本语法

    lambda表达式,即带有参数的表达式,为更清晰地理解lambda表达式,先看如下例子: (1) class Student{ private String name; private Double ...

  5. [HEOI2015]兔子与樱花 树规+贪心

    鬼能想到是个贪心.明明觉得是树规啊..又完美爆零.. 从叶子节点往上更新,能保证最优解(这块想了半天). 证明:当你的子树上有能删的点而你不删时,可能会对子树的根节点有利,最好的情况是使子树根节点由不 ...

  6. HDU 1513 Palindrome:LCS(最长公共子序列)or 记忆化搜索

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1513 题意: 给你一个字符串s,你可以在s中的任意位置添加任意字符,问你将s变成一个回文串最少需要添加 ...

  7. localStorage与sessionStorage区别

    localStorage与sessionStorage区别:浏览器正常模式下:    关闭浏览器或该窗口标签时,localStorage数据依然保存,但是sessionStorage数据会被清除.   ...

  8. js版贪吃蛇

    之前没有写博客的习惯,这是我的第一个博客,有些的不好的地方,希望大家多多提意见 js版的贪吃蛇相对比较简单,废话不多说直接上代码,有需要注意的地方我会标红,github源码地址https://gith ...

  9. c和fortran混编(基于GNU/Linux,转自 linzch)

    网 上说要分c为主程序和fortran为主程序两种情况讨论,其实我觉得不用,只要你了解生成可执行文件的机制.这个机制就是:不论是单一语言模块之间的 链接还是不同语言之间的混合链接,本质目的都是要链接器 ...

  10. ES2017异步函数现已正式可用

    欢迎大家持续关注葡萄城控件技术团队博客,更多更好的原创文章尽在这里~~​ ES2017标准已于2017年6月份正式定稿了,并广泛支持最新的特性:异步函数.如果你曾经被异步 JavaScript 的逻辑 ...