0

我知道每个 ovs 都有流表,这些表由控制器设置或修改。我的问题是:

ovs 可以在不受控制器干扰的情况下保存任何数据吗?

换句话说,一个 ovs 可以自己创建一个表并随着每个新数据包更改它吗?

4

1 回答 1

0

理论上:是的。

但是,由于您会发现任何控制器都认为它是网络的老板,它会自行删除交换机放入流表中的任何内容。即,一旦控制器连接到交换机,表就会被刷新。

如果你想实现这样的东西,只需模仿 OpenFlow 协议实现的过程。一个数据包到达,交换机不知道该做什么,询问控制器,控制器告诉交换机该做什么。

在这个链条中从哪里开始取决于您。例如,您可以引入一个触发 upcall 的新操作。或者您使用在桥中运行的自治线程来实现这一点。或者您在每个交换机之上构建一个应用程序,该应用程序从某个地方接收命令并使用 ovs-* 二进制文件修改流表。或者,您可以查看未连接到控制器时开关的作用。

实际上,Open vSwitch 已经这样做了,因为它应用了从控制器接收到的 flow-mods。您只需要弄清楚这些 flow-mods 应该来自哪里。但是为了帮助您,需要有关您的方案的其他信息。

于 2016-11-01T17:45:49.800 回答