我有一个包含 4 个虚拟机的设置。有两个服务器:VM1、VM2、一个路由器:VM3 和一个客户端:VM4。
VM3 直接连接到所有其他 VM 并在它们之间路由流量。
VM3 有 3 个不同的接口。我们将它们称为 i1、i2、i3。每个接口都连接到其中一个虚拟机,并具有自己的 IP 地址、范围和网络。
但是,我在将这三个接口连接到 OvS 进行流量控制时遇到了麻烦,示例和演示显示了一个网络和几个具有相同前缀的 Veth。
我应该如何将这三个接口连接到 OvS?我希望此连接对其他虚拟机透明。
实数范围和名称:
i1: enp0s3, 10.0.7.5/24
i2: enp0s8, 10.0.8.5/24
i3: enp0s9, 10.0.9.5/24
当我将接口连接到 OvS 时,我失去了与所有设备的连接,并且找不到任何针对多接口情况的解决方案。(我已成功将一个接口与几个容器一起连接到 OvS,但它们属于同一个网络)。
编辑(更多详情):这是一个学校项目。
我在 VirtualBox 上运行 4 个虚拟机。我想执行一些操作,例如将来自客户端的流量镜像到两个服务器虚拟机,并丢弃一些数据包。
我的主要问题是,使用 OvS 是否可行?如果不可行,解决方法是什么。
我将每个接口作为端口添加到 OvS:
ovs-vsctl add-br mybr
ovs-vsctl add-port mybr enp0s3 ofport=1
ovs-vsctl add-port mybr enp0s8 ofport=2
ovs-vsctl add-port mybr enp0s9 ofport=3
然后:
ovs-ofctl add-flow mybr in_port=1,action=output:2,3
我使用连接到相同网络前缀的 Veths 进行了测试,并且运行良好。