使用OVS和VXLAN隧道进行负载平衡

时间:2020-03-14 23:18:47

标签: openvswitch

我有一个系统,其中每个VM(客户端除外)都在运行OVS。每个VM的网桥(br0)是隔离的,并且不采用其他接口IP和/或MAC。客户端的网关是每个VM的eth2接口。 VM的网关是服务器的eth2。每个元素的ARP表都填充有网络接口的所有IP和MAC。有一条隧道将虚拟机的eth1接口连接到服务器的eth2。这些是vxlan隧道,已作为端口添加到网桥。系统图和相应的IP地址如下所示:

enter image description here

在正常流程中,客户端ping Internet(也称为8.8.8.8)和ICMP请求出现在服务器的br0上。该请求和答复出现在服务器的eth1上,但是由于某种原因,该答复从不发送回br0并被丢弃。因此,我在服务器中添加了2条静态路由,一条用于客户端1的网络,另一条用于客户端2的网络(192.168.10.0/24和192.168.20.0/24)。现在,答复到达客户端,但是无论我在服务器的br0上安装哪个流条目,答复都永远不会到达桥。一个例子:

$ ovs-ofctl -O openflow13 br0 priority=100,ip,nw_dst=192.168.20.0/24,actions=output:tep2

(tep2是服务器br0中连接到VM2的eth1的隧道终结点)

我需要答复才能通过我选择的隧道(带有流条目),因为我还在运行一个负载平衡系统,如果与服务器的VM1连接断开,则来自客户端1的数据包将转发至VM2,并因此通过端点193.168.1.20到193.168.1.50的隧道。使用静态路由,答复仅通过路由到达客户端,而永远不会到达网桥,而且我不希望这种类型的静态配置。我应该如何使用OVS做到这一点?为什么答复出现在eth1上时仍未到达服务器的br0?

0 个答案:

没有答案
相关问题