![如何创建跨多个服务器的虚拟子网?](https://linux22.com/image/201001/%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E8%B7%A8%E5%A4%9A%E4%B8%AA%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84%E8%99%9A%E6%8B%9F%E5%AD%90%E7%BD%91%EF%BC%9F.png)
我有一些托管虚拟机的 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 子网连接到网络的其余部分。