美文网首页网络安全实验室系统运维专家程序员
不同虚拟化平台的虚拟机之间进行网络通信

不同虚拟化平台的虚拟机之间进行网络通信

作者: 王一航 | 来源:发表于2018-01-25 20:49 被阅读202次

需求分析:

实现 VirtualBox 与 VMware 两者虚拟机之间的互相交流

情况一:

VirtualBox 与 VMware 的虚拟机在同一个物理机上

情况二:

VirtualBox 与 VMware 的虚拟机在不同物理机, 但是物理机在同一个网络, 要求两者能互相访问

情况三:

VirtualBox 与 VMware 的虚拟机在不同物理机, 但是物理机在同一个网络, 要求单向联通


情景分析:

情况三:

用于模拟外部网络访问内部网络的情况
可以在内网渗透的时候模拟内部网络与外部网络单向联通的情况

解决方案:

情况一:

首先介绍一个不太合适的方法, 这个方法确实能够实现需要, 但是却有可能带来潜在的威胁和问题, 该方法为将 VirtualBox 的虚拟机与 VMware 的虚拟机同时桥接到物理机所在的网络 (DHCP / 手动配置IP, 本文之后的叙述中假设默认在网络中都存在 DHCP 服务器, 不需要受手动配置 IP, 但是要知道手动配置 IP 是可行的), 带来的潜在威胁就是物理机所在的网络中的其他主机也可以直接访问已桥接的虚拟机, 不能排除有恶意攻击者的情况
另一个方法是让一个虚拟机接入虚拟机软件的 Host-Only 网络, 另一个虚拟机桥接入这个 Host-Only 网络,
比如说, VirtualBox 虚拟机接入 VirtualBox 软件在物理机上虚拟化出来的 Host-Only 网络, 然后在 VMware 中配置虚拟机接入 VirtualBox 的 Host-Only 网卡中
这种情况由于不存在和外部网络交流的功能, 因此并不存在受到来自外部攻击的可能
网络拓扑如下:


image.png
情况二:

两个虚拟机直接桥接至物理机的网络即可, 两者即可通过物理机上层的路由器/(交换机?)进行交流

网络拓扑如下:


image.png
情况三:

假设 VirtualBox 虚拟机需要放置于内部网络(VirtualBox 虚拟机上运行着一个 Web 服务), 需要让这个 VirtualBox 虚拟机隐藏在内网, 通过端口转发将这个端口暴露出来, VMware 虚拟机作为攻击者去攻击内部网络, 但是 VirtualBox 虚拟机是可以访问外部网络的
因此可以 VMware 桥接到物理网络, 而 VirtualBox 使用 NAT 网络, 将虚拟机隐藏在内网, 并配置端口转发, 将 WEB 服务转发到物理机的某个端口
网络拓扑如下:


image.png

具体操作:

情况一:
  1. 将 VirtualBox 虚拟机的网络模式配置为 Host-Only
image.png
  1. 将 VMware 虚拟机的网络模式配置为桥接, 桥接到 VirtualBox 虚拟机软件虚拟出来的 Host-Only 网卡

VMware 默认桥接模式是自动桥接模式, 因此需要新添加一个虚拟机的网络并指定桥接的网卡
菜单栏->编辑->虚拟网络编辑器
将其桥接到 VirtualBox Host-Only

image.png

然后将需要桥接的虚拟机的网络模式设置为桥接


image.png

由于 VirtualBox 的 Host-Only 会通过 DHCP 自动分配 IP , 因此配置好之后就可以互相 ping 通了

image.png
情况二:

配置 VirtualBox 虚拟机桥接到笔记本的无线网卡

image.png

配置 VMware 虚拟机桥接到笔记本的无线网卡

image.png image.png
情况三:
  1. 配置 VirtualBox 虚拟机的网络模式为 NAT (注意 VirtualBox 有 NAT 和 NAT network 这两种网络模式, 存在区别, 参考: VirtualBox 网络配置官方文档), 并配置端口转发规则, 将 WEB 服务转发到物理机的 80 端口
image.png image.png
  1. 配置 VMware 虚拟机的网络模式为桥接
image.png
  1. 测试效果


    image.png

参考文章:

http://www.sysprobs.com/setup-network-virtualbox-vmware-virtual-machines
https://www.virtualbox.org/manual/ch06.html

相关文章

  • 不同虚拟化平台的虚拟机之间进行网络通信

    需求分析: 实现 VirtualBox 与 VMware 两者虚拟机之间的互相交流 情况一: VirtualBox...

  • 使用 Azure PowerShell 管理 Azure 虚拟网

    Azure 虚拟机使用 Azure 网络进行内部和外部网络通信。 本教程介绍了如何在虚拟网络中创建多个虚拟机 (V...

  • 虚拟化技术

    虚拟化技术 分类 按虚拟对象 操作系统虚拟化 平台虚拟化 按方案 软件虚拟化 硬件虚拟化 虚拟机管理器 虚拟化技术...

  • 使用 Azure CLI 管理 Azure 虚拟网络和 Linu

    Azure 虚拟机使用 Azure 网络进行内部和外部网络通信。 本教程将指导读者部署两个虚拟机,并为这些 VM ...

  • 第1章 容器技术和Docker简介

    容器技术。docker。 到底什么是docker? 虚拟机和容器的区别。创建虚拟机,不同应用在不同虚拟机内进行隔离...

  • Java虚拟机 ——初见

    首发于公众号: DSGtalk1989 1.1 虚拟机定义与分类 虚拟机的作用是将相关语言在不同的平台上进行执行的...

  • java学习1-1

    java特点 平台无关性可运用于不同平台 引进虚拟机原理并运行于虚拟机,实现不同平台的java接口 适宜于互联网的...

  • Class文件

    Java的跨平台特性建立在Java虚拟机之上。 Java虚拟机在不同平台上有不同的版本,但是他们都能执行同一cla...

  • 玩转 OpenStack(一)基本概念和安装KVM

    虚拟化可以使一台物理机上跑多台虚拟机,虚拟机共享物理机的CPU、内存、IO硬件资源,但是逻辑上虚拟机之间是相互隔离...

  • Java类的加载和初始化

    为什么说Java是跨平台语言 Java语言的运行环境是在Java虚拟机中。 Java虚拟机消除了各个平台之间的差异...

网友评论

    本文标题:不同虚拟化平台的虚拟机之间进行网络通信

    本文链接:https://www.haomeiwen.com/subject/xitbaxtx.html