如何将虚拟机桥接至远程网络?

如何将虚拟机桥接至远程网络?

我有一个运行 QEMU/KVM(通过 libvirt)的系统。其中一个虚拟机需要在虚拟机主机本地以外的子网上存在。我在远程子网上有一个 Linux 系统。有没有办法设置某种隧道桥,使虚拟机出现在远程系统上?这将是一个暂时的情况(希望只是直到虚拟机所有者可以配置他们的系统),网络性能和长期可维护性并不是真正的问题。

提供一些更具体的信息:

我的 VM 主机的 IP 地址为 192.168.54.155/24。VM 的 IP 地址为 192.168.65.71/24。我的远程系统位于 192.168.65.254/24。VM 主机和远程系统均运行 Scientific Linux 6.5。我无法控制 VM 主机和远程系统之间的网络或路由。我无法访问 VM 上的客户操作系统。我希望到 VM IP 地址的流量最终到达 VM,即使其主机未直接连接到相应的网络。

我尝试过使用 的iproute2隧道技术,但 Linux 不允许我向网桥添加隧道。我考虑过使用某种类型的iptables修改来通过隧道路由流量,并让虚拟机认为它在正确的网络上,但我不确定是否有更好的方法。完成此黑客攻击的最佳方法是什么?

答案1

你有几个选择,但它们都很麻烦。

为了帮助您一点,您正在寻找“第 2 层隧道”(知道要搜索什么是成功的一半!)

选项 1:使用“gretap”隧道。大多数现代 Linux 发行版都支持此功能。

选项 2:在主机上安装 openvswitch,并在主机之间配置 GRE 隧道。您可能可以配置 openvswitch 来执行此操作,但“更简单”的方法是使用 OpenFlow 控制器(如 Ryu,它带有一个简单的交换机模块)将它们连接到一个大型虚拟交换机中。

我已经完成了选项 2,但是选项 1 是更简单的方法(尽管由于其他限制,我从未使其发挥作用)。

相关内容