连接主控制器和子控制器的微型网

2024-06-26 13:32:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习SDN控制器,并希望实现一个自定义拓扑,主控制器(泛光灯)连接到子控制器(POX和RYU),这些子控制器连接到网络中的交换机。我已经画了一个我想要达到的效果的简图(请原谅我的绘画技巧不好)

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

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()

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

怎样才能使泛光灯成为主控制器和POX和RYU子控制器?在

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

任何建议都会有帮助的!在


Tags: fromimportselfipnetport控制器start
1条回答
网友
1楼 · 发布于 2024-06-26 13:32:26

你自己编程控制器的逻辑。 如果你想让你的控制器互相连接,你就必须像网络上的任何其他进程间通信那样单独实现它。 换句话说,您的控制器应该使用网络通信彼此连接。因此,他们将相互交换信息和指示。在

相关问题 更多 >