如何在POX控制器中添加流规则

How to add flow rules in POX controller

我最近开始学习SDN并安装了mininet来了解它的工作原理。我了解了如何构建基本拓扑以及如何通过命令行创建流规则。然后我遇到了 POX 控制器,它似乎比默认控制器更好,但我无法理解如何插入流规则来满足各种类型的网络约束,比如 2 台主机之间的流量应该只流经特定的交换机。

在浏览了很多互联网资源后,我发现一种方法是,我可以创建自己的 python 文件,但我怀疑在 python 文件中,我可以编写构建拓扑的语法,然后编写流规则,但我怀疑编写流规则的语法是什么。

任何material可以通过示例详细解释上述问题的人将非常有帮助。 github 和 Internet 上的大多数教程都很难理解。

您应该了解 POX documentation 中的一些 POX API。它有一些示例的详细解释,我发现这些足以开始构建您自己的 POX 组件(即您所说的 python 文件)。

引自this教学material:

In general a POX controller consists of three parts:

1.Listener

2.Control logic

3.Messenger

First you need to figure out the type of the event you want the controller to listen to (e.g., ConnectionUp, PacketIn, etc).

Then using some logic you can distinguish between different flows and attach a proper action for a specific flow.

Finally you send the message to the switch to add the new rule in the Openflow table.

安装新的流规则属于上面提到的控制逻辑部分,并在OpenFlow Messages部分通过示例进行解释: Flow table modification.