中国领先的IT技术网站
|
|

如何利用 VMWare 搭建随机拓扑网络

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

作者:佚名来源:博客园|2017-09-18 15:58

开发者大赛路演 | 12月16日,技术创新,北京不见不散


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

实验任务:利用 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 为例,键入命令

  1. ifconfig -a |less 

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

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

  1. sudo ifconfig eth0 192.168.2.1 netmask 255.255.255.0  
  2. sudo ifconfig eth1 192.168.3.1 netmask 255.255.255.0 

同样在U572中设置为

  1. sudo ifconfig eth0 192.168.4.1 netmask 255.255.255.0  
  2. sudo ifconfig eth1 192.168.3.1 netmask 255.255.255.0 

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

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

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

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

  1. sudo ip route add 192.168.2.0/24 via 192.168.2.1 
  2. sudo ip route add 192.168.3.0/24 via 192.168.3.1 
  3. sudo ip route add 192.168.4.0/24 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,形如:

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

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

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

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

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

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

【编辑推荐】

  1. AT&T:47%的网络功能已经实现了虚拟化
  2. Verizon和Amazon联手部署虚拟网络服务
  3. VMware Fusion 10今年10月发布 支持High Sierra和Touch Bar
  4. VMware Photon平台在哪里?
  5. VMware将NSX与容器结合 进一步提升安全性能
【责任编辑:武晓燕 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Java Web标签应用开发

Java Web程序员直接在JSP页面中书写Java代码的做法,使得页面中混杂有JavaScript、HTML、Java等多种语言的程序代码,可读性差,可复用性也...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊