如何配置学习开关?

时间:2019-02-23 09:53:52

标签: python networking sdn mininet

我尝试使用学习交换机在不使用mininet的控制器的情况下重现3层体系结构。我想启用STP来对用户主机执行ping操作,但找不到任何文档或其他可帮助我完成此操作的东西。

from mininet.topo import Topo

class ThreeTier( Topo ):
    def __init__( self ):
        Topo.__init__( self )

        # Add hosts and switches
        Switch1 = self.addSwitch('s1')
        Switch2 = self.addSwitch('s2')
        Switch3 = self.addSwitch('s3')
        Switch4 = self.addSwitch('s4')
        Switch5 = self.addSwitch('s5')
        Switch6 = self.addSwitch('s6')
        Switch7 = self.addSwitch('s7')

        Host1 = self.addHost('h1')
        Host2 = self.addHost('h2')

        # Adding links
        #Switch1 Switch2 Switch3 Switch4 are access layer switches
        #Switch5 Switch6 are aggregation layer switches
        #Switch7 is a core layer switch 

        self.addLink( Switch1, Switch5 )
        self.addLink( Switch2, Switch5 )
        self.addLink( Switch3, Switch5 )
        self.addLink( Switch4, Switch5 )

        self.addLink( Switch1, Switch6 )
        self.addLink( Switch2, Switch6 )
        self.addLink( Switch3, Switch6 )
        self.addLink( Switch4, Switch6 )


        self.addLink( Switch5, Switch7 )
        self.addLink( Switch6, Switch7 )

        self.addLink( Host1, Switch1 )
        self.addLink( Host2, Switch3 )
topos = { 'mytopo': ( lambda: ThreeTier() ) }

1 个答案:

答案 0 :(得分:0)

为确保它们可以在没有控制器的情况下工作,将failMode设置为独立,并将STP的stp设置为True。

赞:

Switch1 = self.addSwitch('s1', failMode='standalone', stp=True)
Switch2 = self.addSwitch('s2', failMode='standalone', stp=True)
Switch3 = self.addSwitch('s3', failMode='standalone', stp=True)
Switch4 = self.addSwitch('s4', failMode='standalone', stp=True)
Switch5 = self.addSwitch('s5', failMode='standalone', stp=True)
Switch6 = self.addSwitch('s6', failMode='standalone', stp=True)
Switch7 = self.addSwitch('s7', failMode='standalone', stp=True)

PS:我目前正在一个网页上,您可以在GUI中完成所有这些操作(启用STP就像单击复选框一样简单),然后仅导出脚本。您可以在https://thomaash.github.io/me

上尝试一下