Hyper-V 与 VMware Workstation Pro 虚拟交换级连
坑边闲话:在前作中,我描述了如何用 Hyper-V 替代 VMware Workstation Pro 来承载 OpenWrt 虚拟机,以实现 10Gb 万兆虚拟网络。效果确实很好,而且占用更少。然而在文章最后我也提到了,这种模式有一些弊端,那就是 OpenWrt 的代理无法给 VMware 的虚拟机用。这是因为这两套虚拟平台并不互通。加上 Hyper-V 的弱鸡 Linux 桌面,我们不得不考虑让 VMware 虚拟机利用 Hyper-V 里的 OpenWrt.
其实这个问题很通用,往大了说就是如何在两套虚拟化平台间建立通信。
1. 背景知识·
首先要明白,开启了 Hyper-V 之后,你的 Windows 就不再是以前那个 Windows 了。有人说开启了 Hyper-V,你的电脑就变成了一个虚拟机,所以游戏性能什么的会大大下降。这么说也不全错,毕竟微软文档有提到过这个问题,特别是在外设的 I/O 速度方面,确实有这部分问题,但是也不至于“大大降低性能”。
2. 通信建立·
回归正题,如何让两套虚拟化平台建立通信呢?
Hyper-V 建立一个内部网络(用符号 Ethernet_LAN 表示),这时 Hyper-V 会给你的 Windows 分配一个接入了 Ethernet_LAN 的一个虚拟网卡。我们将这个虚拟网卡命名为 vEthernet_LAN,该网卡的 MAC 地址一般是 00:15:5D 开头,如图 1 所示。
给 Hyper-V 里的 OpenWrt 分配一个虚拟网卡,并连接到上述的那个内部网络 Ethernet_LAN.
在 Hyper-V 里的 OpenWrt 里,将属于 Ethernet_LAN 的那个虚拟网卡设为 LAN 口,或者桥接到 br-LAN 里。
开启 OpenWrt 的 br-LAN 的 DHCP 功能。这样你主机的 vEthernet_LAN 虚拟网卡就能获得一个来自 OpenWrt 虚拟机的 IP 地址。
【重点!】在 VMware 的虚拟网络编辑器里,创建一个桥接网络,桥接对象正是步骤 1 里主机获得的 Hyper-V 虚拟网卡 vEthernet_LAN. 这样一来,你的 VMware 就能复用这张虚拟网卡,接入了 Hyper-V 的网络~~
3. 网络测试·
让我们测试一下 VMware 的虚拟机能否上 Google~
看图:
总结·
如此一来,我们就简单地实现了网络升级,并且原有的开发环境并没有发生太多变动。
- Hyper-V 承担代理,开启自启虚拟机顺滑无比;
- VMware 承担 Linux 虚拟机托管,图形界面非常精细;
总之就是非常 nice,而且没什么瓶颈。最后,感谢 Mr. Zhao 师兄给我提的 idea,虽然那个操作比较有点不对口,不过也启发了我想到这个方法。