OVS 中基于优先级的主动流插入和路由

Proactive Flow Insertion and Routing Based on Priority in OVS

我已经为具有不同优先级的活动和备用路径的相同源和目标对插入了两个流条目。即使发生 link 故障,流量也不会通过备份路径。可能内核 space 不关心端口状态。它只匹配流 table 并执行操作。 但我仍然有兴趣使用具有不同优先级的备份路径。我听说过 OVS 的快速故障组 table。我不确定如何使用它来引导流量到我的替代路径。在这种情况下我可以帮忙吗?或者有什么机制可以在不与控制器通信的情况下刷新属于down接口的流条目? 我正在使用 Ryu 4.24、OVS 2.9.0 和 mininet。 在此先感谢您的帮助。

您说得对,fast failure groups 可以解决您的问题。 假设您只想在端口 1 关闭时使用端口 2,那么您可以按如下方式配置 Open vSwitch 的网桥:

ovs-ofctl -O OpenFlow13 add-group br0 group_id=1,type=fast_failover,bucket=bucket_id=1,actions=output:2,watch_port=2,bucket=bucket_id=2,actions=output:3,watch_port=3
ovs-ofctl add-flow br0 priority=1,ip,nw_dst=10.0.0.1,actions=group:1

第一个命令创建类型为 fast_failover 的组 1,其中包含 2 个存储桶(即到达该组的数据包有 2 个可能的目的地)。桶 1 将数据包发送到端口 2,条件是它处于活动状态 (watch_port=2),而桶 2 将数据包发送到端口 3,条件相似 (watch_port=3)。一组 fast_failover 迭代它的桶(按照你定义的顺序)直到找到一个活的。

第二个命令只是将目标 IP 为 10.0.0.1 的数据包发送到组。