Mininet~负载平衡

时间:2015-01-12 12:00:44

标签: load-balancing mininet sdn

我必须在Mininet,Python,SDN上工作,我的目标是做一个简单的任务:创建一个网络,其中一些交换机是随机连接的(所以拓扑结构并不重要),每个都连接一个主机。在网络中,我必须进行负载平衡,并且我必须能够监视负载平衡是否正常工作。

这是一个项目,所以负载平衡必须简单,它必须是这样的:H1想要ping H2,从H1到H2,正好有两条路径具有相同的跳数(例如H1连接所以S1和H2连接到S2。然后S1连接到S3和S4,它们也连接到S2)。这两条路径是:H1-S1-S3-S2-H2和H1-S1-S4-S2-H2。我想以一种方式进行负载均衡,如果H1发送2个ping,则1抛出第一条路径,第二条路径进入第二条路径。这样,当H1向H2发送一些流量时,流量在第一条路径上变为50%,在第二条路径上变为50%。

如何在一个非常简单的网络中实现类似的功能(如示例中的4个开关)?我已经搜索了很多参考资料,但我发现没什么用处。从理论上讲,我必须使用NOX,但如果我必须使用POX来理解这个主题,我会这样做;)

感谢所有愿意帮助我的人的建议:)

1 个答案:

答案 0 :(得分:0)

我知道您可以对交换机和控制器之间的连接进行负载平衡,但不确定交换机路径。

显然,在openflow中有一种称为“选择组”的组。我认为根据分配给该桶的wigth,您可以分发数据包。桶的流量份额由组处理的流量的份额由单个桶的重量除以组中的桶重量的总和来定义。虽然我对此并不完全确定。

也有办法绕过它。您可以设置它以便主机从其中一个路径接收数据包并从另一个路径发送数据包。

另一个技巧可能是基于数据包协议或其他因素分配负载。例如,您可以说从此路径发送所有TCP数据包以及从不同路径发送所有UDP数据包。