mininet 创建多控制器拓扑

Mininet搭建多控制器拓扑

Mininet是一款非常轻巧但是功能很强大的网络模拟器。网络研究者可以使用Mininet创建支持OpenFlow的SDN拓扑。随着SDN研究的发展,多控制器协作成为未来的研究方向,所以使用Mininet构建多控制器网络拓扑也成为一种需求。本篇将讲述如何使用Mininet搭建多控制器网络拓扑。

Mininet搭建多控制器拓扑

Multi-Controller

多控制器有两种理解,一种理解是面向交换机的多控制器。即一个交换机会连接多个控制器,控制器之间的关系可以是equal,也可以是master/slave模式。关于多控制器的介绍,有兴趣的读者可以参考OpenFlow1.3协议的multi-controller部分内容。另一种理解是面向控制器的多控制器。即,多个控制器分别管理各自的数据平面网络,且数据平面之间有链路互联。这种模式下,控制器之间没有关系,控制器所控制的数据平面也没有关系。关于多控制器方面的研究,笔者会在后续的博客中大篇幅介绍。

本篇将针对这两种理解,介绍如何搭建多控制器的Mininet拓扑。

面向交换机的多控制器网络拓扑
对于一个交换机而言,可以连接多个控制器,其实现方式非常简单, 在Mininet的源码中已经实现。从Mininet的node.py文件中,我们可以找到有用的代码:

start函数发起了交换机到控制器的网络连接。传入的参数controllers是一个可迭代的数组,clist是整合之后的控制器信息,包括控制器的IP和控制器的端口。之后调用self.cmd函数启动连接,连接到控制器。

start函数在UserSwitch和OVSSwitch等交换机类中均有对应实现。所以,只需在启动交换机时,传入对应的控制器列表即可。

关键代码举例如下:

其余代码如头文件引入,主函数等请参考后续示例代码。

面向控制器的多控制器网络拓扑

面向控制器的多控制器网络拓扑定义了多个交换机,并使其分别连接到不同的控制器,从而完成拓扑搭建。在下列示例代码中,我们定义了7个网络分别连接到7个控制器,每一个网络中有5个全连接的交换机,不同网络之间还有链路,使得7个网络彼此联通。代码比较简单,不再赘述,读者可自行阅读。

总结
Mininet功能很强大,基本可以满足日常的科研需求。最后,简单的启动脚本可以供参考。该脚本可以启动7个窗口,分别在不同的端口上启动7个ryu控制器,从而使得7个网络的交换机可以连接到对应的网络。

希望自己的研究能够顺利进行,最终面世。

作者简介:李呈,2014/09-至今,北京邮电大学信息与通信工程学院未来网络理论与应用实验室(FNL实验室)攻读硕士研究生。


  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值