在虚拟机中使用软路由进行组网

在虚拟机中使用软路由进行组网

  • 起源
    • 1. 明确目标
    • 2. 实验设备和软件
    • 3. 具体步骤
      • Step 1. 粗画拓扑
      • Step 2. 搞清楚VMware虚拟网络的实现方式(关键)
      • Step 3. 分析网络需求
      • Step 4. 配置虚拟机
        • 1. 首先创建一个Linux内核的虚拟机
        • 2. 配置虚拟网络(需要管理员权限)
        • 3. 配置网络适配器
        • 4. 装系统
        • 5. 进入软路由系统并配置网络
        • 6. WAN口测试
        • 7. LAN口测试
    • 4. 总结

起源

在学习计算机网络的过程中了解到了软路由,想整一个来玩一玩,但又不想在硬件上花钱,于是就想能不能在虚拟机中装上软路由系统,然后在虚拟机中进行组网,让其它的虚拟机通过该装有软路由的虚拟机接入网络。于是四处学习1,查阅资料,从软路由固件的选择,到VM的三种网络链接类型,到用Packet Tracer画拓扑,到软路由的安装与配置,再到虚拟机组网、测试,走了不少弯路,也踩了不少坑。最后写下这篇文章,以作记录。

1. 明确目标

这次要折腾的是软路由,由于不想整硬件,固采用虚拟机的方式实现。最终目标:在VM内创建的虚拟机都经过虚拟软路由上网,从而模拟真实环境下的软路由组网。

2. 实验设备和软件

  1. 宿主机器一台
    这里用自己的笔记本
  2. 软路由固件
    第一次接触软路由,一番查找后,决定采用openWrt。但是按照官网2的教程,需要自己动手做一次文件转换才能用于VM,但官网只给出了Linux和OS X的操作方法3。于是这里选择KoolShare的固件4
  3. 虚拟机
    VMware Workstation Pro 15.5 PRO预安装有两台虚拟主机:CentOS 8 和 Ubuntu 20
  4. Cisco Packet Tracer 用来画拓扑

3. 具体步骤

Step 1. 粗画拓扑

软路由wan口连接Internet,lan口通过一个交换机连接多台虚拟机。
在虚拟机中使用软路由进行组网_第1张图片

Step 2. 搞清楚VMware虚拟网络的实现方式(关键)

通过查阅官方文档[4]可以获取到详细信息

  1. 虚拟网络连接组件
    包括虚拟交换机、虚拟网络适配器、虚拟 DHCP 服务器和 NAT 设备。我们主要关注虚拟交换机和NAT设备
    a) 虚拟交换机
    与物理交换机相似,用于连接各种组件。虚拟交换机又称为虚拟网络,其名称为 VMnet0、VMnet1、VMnet2,以此类推。(就是用来连接我们的软路由和其它虚拟主机,让他们处于同一子网)
    需要注意的是,有三台虚拟交换机已经预先映射到了特定的网络
    b) 虚拟网络适配器
    网卡
    c) 虚拟DHCP服务器
    为子网内的虚拟机提供IP地址
    d) NAT设备
    具体介绍参考百科5,很有用。
  2. 常见网络连接配置(重要)
    主要有三种,桥接模式和NAT模式下,虚拟机均可直接上网;仅主机模式下,默认虚拟机无法上网(配置一下还是可以上的)。
    a) 桥接模式
    使用虚拟交换机VMnet0构成的网络。主要特点是虚拟机与主机处于同一子网,与主机系统相分离,且与主机系统无关,有自己的IP地址。(个人理解:此时虚拟机和主机的关系大概就像连接在同一WIFI下的你的电脑和你室友的电脑,寝室WIFI网络中多出1台电脑)
    在虚拟机中使用软路由进行组网_第2张图片
    b) NAT 模式
    使用虚拟交换机VMnet8构成的网络。使用 NAT 模式网络时,虚拟机在外部网络中不必具有自己的 IP 地址。主机系统上会建立单独的专用网 络。主要特点是虚拟机和主机系统共享一个网络标识(IP地址),此标识在外部网络中不可见。NAT 工作时会将虚拟机在专用网络中 的 IP 地址转换为主机系统的 IP 地址。DHCP服务器这里用来为该网络中的设备分配IP地址。(连接上WIFI后,寝室电脑数量没多也没少;只要主机连接上了网络,虚拟机就可以“假冒”主机的身份上网)
    在虚拟机中使用软路由进行组网_第3张图片
    c) 仅主机模式
    使用VMnet1构成的网络。主要特点是虚 拟机和主机虚拟网络适配器均连接到专用以太网络。网络完全包含在主机系统内。虚拟机无法连接上外部网络。
    在虚拟机中使用软路由进行组网_第4张图片
    d) 自定义
    可操作性最强,可以虚拟出一个单纯的交换机用于连接我们的虚拟机,构建成一个子网。
    官方给出的例子:
    在虚拟机中使用软路由进行组网_第5张图片

Step 3. 分析网络需求

了解了VMware虚拟网络的实现方式后,就可以具体来分析我们的网络需求了。首先要确定软路由的wan口和lan口分别应采用什么样的网络连接模式。WAN口要连接Internet,首先排除仅主机模式;然后,我希望我构建的虚拟机网络是对外不可见的,同时校园网有登录认证,而桥接模式下无法保证前者,同时该模式下要用软路由通过校园网登录认证有点麻烦,所以选择NAT模式作为WAN口的网络连接模式。对于lan口,我只需要有台交换机来构建成一个子网就行了,然后让软路由实现DHCP为lan口下的虚拟机分配IP地址,所以选择自定义,创建一台虚拟网络交换机VMnet2,(这里选仅主机模式的话,DHCP服务器就显得有些多余,因为软路由可以自己实现DHCP,同时我也不希望我的主机连接到该子网下(之后会有解释))。

Step 4. 配置虚拟机

1. 首先创建一个Linux内核的虚拟机

在虚拟机中使用软路由进行组网_第6张图片在虚拟机中使用软路由进行组网_第7张图片在虚拟机中使用软路由进行组网_第8张图片在虚拟机中使用软路由进行组网_第9张图片在虚拟机中使用软路由进行组网_第10张图片在虚拟机中使用软路由进行组网_第11张图片在虚拟机中使用软路由进行组网_第12张图片在虚拟机中使用软路由进行组网_第13张图片在虚拟机中使用软路由进行组网_第14张图片
在虚拟机中使用软路由进行组网_第15张图片在虚拟机中使用软路由进行组网_第16张图片在虚拟机中使用软路由进行组网_第17张图片在虚拟机中使用软路由进行组网_第18张图片
在虚拟机中使用软路由进行组网_第19张图片

2. 配置虚拟网络(需要管理员权限)

在虚拟机中使用软路由进行组网_第20张图片
先点击“添加网络”添加VMnet2,配置如下
在虚拟机中使用软路由进行组网_第21张图片我的VMnet8的配置
在虚拟机中使用软路由进行组网_第22张图片另外,在NAT设置中还可以设置DNS,我这里修改为了114.114.114.114
在虚拟机中使用软路由进行组网_第23张图片
最后别忘了确认

3. 配置网络适配器

找到刚才创建的虚拟机,打开虚拟机设置
在虚拟机中使用软路由进行组网_第24张图片添加两块网络适配器
在虚拟机中使用软路由进行组网_第25张图片一块接入VMnet8(NAT模式)
在虚拟机中使用软路由进行组网_第26张图片另一块接入刚才创建的VMnet2
在虚拟机中使用软路由进行组网_第27张图片
然后确定
在虚拟机中使用软路由进行组网_第28张图片

4. 装系统

到这里6选择一个合适的vmdk,然后将其重命名为刚才创建的虚拟机的名字,然后找到虚拟机的目录,将对应的vmdk文件替换即可。

5. 进入软路由系统并配置网络

回到Workstation,启动软路由,不出意外的话,一阵瀑布流后按下回车可看到如下画面
在虚拟机中使用软路由进行组网_第29张图片
下面开始配置网络
在这一步我们要将软路由与两个虚拟网络(虚拟交换机)VMnet8和VMnet2连接起来
WAN口连接VMnet8,通过VM的NAT连接Internet,使用VMnet8提供的DHCP服务器获取IP地址;
LAN口要连接VMnet2,需要修改软路由LAN口的IP地址和网络掩码才能接入;
在这里插入图片描述
还应注意的是,软路由LAN口和WAN口的接口名字要和虚拟机设置里面网络适配器的顺序一致
在这里插入图片描述
这里我配置的相当于WAN口在前,LAN口在后,在软路由中,ifname的值也要与之对应
命令行输入 vim etc/config/network 回车
vim命令的使用可以参考这里7
找到 config interface ‘lan’
修改ifname 项的值为 ‘eth1’
修改ipaddr 项和netmask项,使之与我们创建的VMnet2相匹配
由于我们VMnet2的子网IP是192.168.16.0,子网掩码是255.255.255.0
所以可以修改ipaddr项的值为192.168.16.254,netmask项255.255.255.0
找到 config interface ‘wan’
修改ifname 项的值为 ‘eth0’
然后保存退出
这是我修改后的效果
在虚拟机中使用软路由进行组网_第30张图片

6. WAN口测试

在虚拟机中使用软路由进行组网_第31张图片
在虚拟机中使用软路由进行组网_第32张图片OK!

7. LAN口测试

随机选取一只虚拟机,将其连接到软路由LAN口所在的子网(即VMnet2)
在虚拟机中使用软路由进行组网_第33张图片
然后启动
设置有线连接IPv4为DHCP
在虚拟机中使用软路由进行组网_第34张图片
测试
在虚拟机中使用软路由进行组网_第35张图片
在虚拟机中使用软路由进行组网_第36张图片
成功!
再来看看路由器的Web管理界面
浏览器输入网关地址,即软路由LAN口的IP地址,我这里是192.168.16.254,密码默认是koolshare
在虚拟机中使用软路由进行组网_第37张图片
在虚拟机中使用软路由进行组网_第38张图片OK!

4. 总结

  1. 至此,目标已经达成,以后想要让虚拟机通过软路由上网,就只需要配置虚拟机的网络适配器,将其连接到软路由的LAN口所在子网,即连接到我这里的VMnet2,然后配置虚拟机为DHCP,即自动获取IP地址。
  2. 在这样的网络拓扑下,所有的虚拟机处于同一子网(VMnet2),虚拟机之间可以通信,也可以通过软路由访问Internet,模拟了现实中的一般情况。同时宿主主机也可以正常上网。
  3. 本次实验最大的收获在于了解了VMware虚拟网络的实现方式,知道了三种模式的区别,以及如何运用;同时,通过网络配置,也加深了对计算机网络的理解。
  4. 软路由有很多,本实验用到的固件仅作参考
  5. 还有一些坑没填。
  6. 再补一张拓扑图
    在虚拟机中使用软路由进行组网_第39张图片在虚拟机中使用软路由进行组网_第40张图片

  1. https://blog.csdn.net/ballack_linux/article/details/81331527 ↩︎

  2. https://openWrt.org/ ↩︎

  3. https://openwrt.org/docs/guide-user/virtualization/vmware?s[]=vmware ↩︎

  4. https://firmware.koolshare.cn/ ↩︎

  5. https://baike.baidu.com/item/nat/320024?fr=aladdin ↩︎

  6. https://firmware.koolshare.cn/LEDE_X64_fw867/%E8%99%9A%E6%8B%9F%E6%9C%BA%E8%BD%AC%E7%9B%98%E6%88%96PE%E4%B8%8B%E5%86%99%E7%9B%98%E4%B8%93%E7%94%A8/ ↩︎

  7. https://www.runoob.com/linux/linux-vim.html ↩︎

你可能感兴趣的:(计算机网络,网络)