如何配置学习交换机?

How to configure learning switches?

我尝试使用学习开关在 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() ) }

为确保它们可以在没有控制器的情况下工作,将 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

上试用