【问题标题】:Mininet - Connecting a main controller with sub controllersMininet - 连接主控制器和子控制器
【发布时间】:2018-03-14 00:05:17
【问题描述】:

我正在学习 SDN 控制器,并希望通过连接到子控制器(POX 和 RYU)的主控制器(泛光灯)来实现自定义拓扑,这些子控制器连接到网络中的交换机。我已经画了一个简短的图表来说明我正在努力实现的目标here(请原谅我的绘画技巧不好)

我曾尝试对控制器进行编程以与其他控制器连接,但我不确定我是否做得对。

from mininet.net import Mininet
from mininet.node import OVSSwitch, Controller, RemoteController
from mininet.topolib import TreeTopo
from mininet.log import setLogLevel
from mininet.cli import CLI

setLogLevel( 'info' )

c0 = RemoteController( 'pox', ip='192.168.56.102', port=6633 )
c1 = RemoteController( 'floodlight', ip='192.168.56.101', port=6653 )
c2 = RemoteController( 'ryu', ip='192.168.56.103', port=6653 )
y
cmap = { 's1': c0, 's2': c0, 's3': c1, 's4': c1, 's5': c2, 's6': c2}

class MultiSwitch( OVSSwitch ):
    "Custom Switch() subclass that connects to different controllers"
    def start( self, controllers ):
        return OVSSwitch.start( self, [ cmap[ self.name ] ] )

topo = TreeTopo( depth=2, fanout=5 )
net = Mininet( topo=topo, switch=MultiSwitch, build=False )
for c in [ c0,c1,c2 ]:
    net.addController(c)
net.build()
net.start()
CLI( net )
net.stop()

从代码中可以看出,我有一个自定义拓扑,它使用树形拓扑将交换机连接到多个控制器。但是我不确定控制器是否相互连接。

如何让 Floodlight 成为主控制器,POX 和 RYU 子控制器?

另外,开关是否连接到正确的控制器?

任何建议都会有所帮助!

【问题讨论】:

    标签: python sdn mininet openflow


    【解决方案1】:

    您自己编写控制器的逻辑。 如果您希望您的控制器进行互连,那么您必须将其作为网络顶部的任何其他进程间通信单独实现。 换句话说,您的控制器应该使用网络通信相互连接。因此,他们将相互交换信息和指示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-25
      • 2016-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多