首页 文章

Mininet - 将主控制器与子控制器连接

提问于
浏览
0

我正在学习SDN控制器,并希望实现一个自定义拓扑,其主控制器(Floodlight)连接到子控制器(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子控制器?

此外,开关是否连接到右侧控制器?

任何意见将是有益的!

1 回答

  • 0

    您可以自己编程控制器的逻辑 . 如果您希望控制器互连,则必须将其自身实现为网络顶部的任何其他进程间通信 . 换句话说,您的控制器应使用网络通信相互连接 . 因此,他们将互相交换信息和指示 .

相关问题