如何创建跨多个服务器的虚拟子网?

如何创建跨多个服务器的虚拟子网?

我有一些托管虚拟机的 CentOS 7 服务器。虚拟机连接到各自主机上的网桥,允许它们相互通信以及与主机通信(通过主机上的虚拟适配器)。每个主机还有一个允许外部通信的物理适配器。 网桥不得连接到物理适配器。

该图应该使当前布局清晰可见。子网 A 将主机相互连接。子网 B 完全存在于主机 1 内。子网 C 完全存在于主机 2 内。 VM 不得具有子网 A 上的地址。

目前网络布局

我想将两个网桥组合成一个虚拟子网,以便所有虚拟机共享相同的地址空间和广播域。有没有办法做到这一点?这是目标:

所需的网络布局

VM 具有 CloudStack“公共”IP 地址,这些地址需要属于各自的子网。虚拟机不得与子网 A 位于同一地址空间。CloudStack 公共 IP 范围是在区域级别定义的,因此虚拟机必须全部位于同一子网中才能进入同一区域,更不用说同一 Pod 了。主机可以在子网之间路由流量。我无法向主机添加更多子网 A 地址,也无法在主机上使用 NAT。我也无法在子网 A 中设置 VLAN。对于大多数用途,子网 A 超出了我的控制范围。

答案1

我能够通过使用 vxlan 创建覆盖网络来解决这个问题。我向每台主机添加了一个 vxlan 适配器,并将适配器连接到主机上的网桥。其中一台主机充当路由器,将 vxlan 子网连接到网络的其余部分。

相关内容