自定义开放式流量控制器行为以插入交换机策略?

2024-05-15 03:49:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个关于SDX(软件定义交换)的研究项目,目前这里给出的SDX实现https://github.com/sdn-ixp/sdx只使用一个连接到单个控制器的交换机来进行数据包转发。在

我的研究目标是使这个装置具有可扩展性。首先想到的第一件事显然是让SDX在多个交换机上工作,从而分割流表。我考虑的方法是大致设置以下拓扑:

http://i.stack.imgur.com/yXKQp.png

现在,我想减少一个开关中的流表条目,方法是将它们分布在图中所示的三个(本例中)开关中。在

假设节点A想向节点B发送一个包。当A第一次加入SDX时,控制器注意到它与(S1)接口的交换机以及它宣布的IP前缀。假设B也与交换机S1接口。假设A指定了将来自某个IP的所有流量转发给B的策略,控制器注意到两个AS都连接到同一个交换机,因此在交换机S1中添加了相应的条目。在

我想要的是每个交换机都有一个不匹配策略,即如果数据包不匹配任何条目,那么它将被转发到下一个交换机,例如,如果它从a获取的数据包与它的流表中的任何条目都不匹配,则S1转发给S2。当假设A希望将来自某个地址的所有业务转发给D时,控制器知道D连接到交换机S2,所以它只是在交换机S2中添加相应的条目,并且它知道在S1中不匹配的任何分组将默认转发给S2。在

我想知道如何使用OpenFlow来实现这一点,因为目前OpenFlow控制器在每个连接的交换机中都设置了规则。我应该从这里往哪个方向走?我应该尝试编写自己的控制器吗?在

如有任何建议,将不胜感激。 谢谢你


Tags: 方法ipcom节点软件条目sdx控制器
1条回答
网友
1楼 · 发布于 2024-05-15 03:49:25

我认为你的建议并不难做到,但如果你想主动地向交换机添加一个默认流,那就不是一个好主意。在

基本上有两个部分,使控制器只向相关交换机添加流,以及添加默认流。这两种情况都很可能需要您重写控制器应用程序的一些逻辑。在

但是,如果数据包要发送到某个地址,而这个地址没有连接到IX,会发生什么情况呢?在正常设置中,它们会转到控制器,控制器会计算出如何处理它们。如果有一个默认流将其发送到下一个交换机,那么您可能会遇到这样的情况:数据包始终在交换机周围浮动。在

一个更好的方法可能是将流放入S1,即“所有流向D的流量都输出到连接S2的端口”。这样,如果你有真正无法匹配的数据包,它们就会被处理。在

在简单地看过这些文档之后,您可能会误用一些VNH的东西来完成这项工作。在

相关问题 更多 >

    热门问题