通过多个 Libvirt 网络接口并行 OpenVPN 连接

通过多个 Libvirt 网络接口并行 OpenVPN 连接

假设我有 20 台虚拟机(主机:Ubuntu,使用 Qemu-KVM、libvirt),并且我将为不同的虚拟机组使用不同的网络接口。(1-6 使用网络 1,7-15 使用网络 2,16-20 使用网络 3)。网络接口由 libvirt 创建。我希望网络接口使用 openVPN 连接。(因此网络 1 使用 conn1,网络 2 使用 conn2,网络 3 使用 conn3)以实现以下目的:第一组虚拟机都使用 conn1,依此类推...
我不想在每个虚拟机内运行 openvpn。
那么有办法吗?
如果有,方法有多先进(因为我有点新手 :))
以及我该怎么做?(我甚至想知道我应该学习什么网络科目)

答案1

  1. 创建四座桥梁:
    • 互联网接入桥
    • 网络 1
    • 网络 2
    • 网络 3

请注意,“网络 N”桥接器不需要在主机上分配 IP。

  1. 创建三个 VPN 网关 VM:
    • VPN1 参与“Internet”和“网络 1”
    • ...
  2. 这些虚拟机中的每一个都应该运行一个 OpenVPN 客户端,该客户端通过“Internet”接口访问其 VPN。另一个“Network N”接口用于与恰好位于相应网桥上的其他虚拟机进行通信
  3. 其余虚拟机应该只参与相应的网络(因此不与主机直接通信)并将其相应的 VPN 虚拟机作为默认网关。

我认为这是最容易构建和理解的配置。另一种方法是在主机上运行所有 VPN,并使用策略路由或者虚拟资源库(本质上是同一件事)或网络命名空间将虚拟机分配到相应的VPN。

相关内容