【发布时间】: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