删除ovs交换机里面的流表后会为什么不接受控制器的流表
时间: 2023-09-10 22:04:55 浏览: 48
### 回答1:
删除 OVS 中的流表会导致 OVS 无法匹配数据包和流表,因此 OVS 将无法通过控制器来获取新的流表规则。这是因为 OVS 是一个基于流表的交换机,它依赖于流表来处理数据包。如果没有适当的流表规则,OVS 将无法正确地处理传入的数据包,从而无法接受控制器的新流表规则。
当您删除 OVS 中的流表时,建议使用以下命令重新启动 OVS,以确保 OVS 重新加载新的流表规则:
```
sudo /etc/init.d/openvswitch-switch restart
```
这将重新启动 OVS 服务并重新加载所有流表规则,以便 OVS 可以重新接受来自控制器的新流表规则。
### 回答2:
当删除 OVS 交换机里的流表后,交换机将遵循其默认的行为,即即使控制器发送新的流表给交换机,交换机可能不会立即接受并执行新的流表。
这是因为删除流表会导致交换机丢失关于特定流的状态信息。交换机的数据平面会根据流表中的匹配规则和指令来处理数据包,而流表中的规则包含了如何处理特定数据包的信息。但是,当删除流表后,交换机的流表将变为空,失去了用于数据包处理的规则集。
因此,在交换机删除流表后,控制器发送新的流表给交换机时,交换机可能会拒绝接受这些新的流表,因为它没有与之匹配的规则来执行数据包的处理。交换机可能会忽略控制器的流表更新,直到控制器重新下发新的流表并同步到交换机的数据平面为止。
这种情况可能会在流表被删除或交换机重新启动时出现。为避免此问题,通常需要确保流表的持久性,以便在特定条件下,如交换机重启后,重新下发保存在控制器中的流表到交换机的数据平面。这样可以确保交换机能继续遵循控制器的指示,而不会受到流表的删除或丢失的影响。
### 回答3:
当OVS交换机的流表被删除后,OVS将不再接受控制器下发的流表的原因有以下几点:
1. 流表的删除可能导致OVS丢失有关流表的规则和匹配条件。OVS交换机的主要功能之一是根据流表中的规则对数据包进行转发和处理。当流表被删除时,OVS将无法识别并转发符合该流表规则的数据包。
2. 删除流表后,OVS交换机将无法知晓控制器下发的新流表的细节。控制器负责向OVS下发流表,指导其如何转发数据包。当流表被删除后,OVS无法获取新的流表规则,并因此无法执行控制器下发的流表。
3. OVS交换机可能会自主学习和缓存某些流表信息。当流表被删除后,OVS可能会依赖这些缓存的信息来处理流量,并不再依赖控制器下发的流表。这意味着即使控制器重新下发流表,OVS也不会立即接受并执行新的流表。
因此,当OVS交换机的流表被删除后,它将不再接受控制器的流表,导致无法由控制器来控制OVS的转发行为。这就是为什么在删除OVS交换机的流表后,OVS不再接受控制器的流表的原因。