微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ryu控制器-simple_switch_13_stp在失败后不会重新计算树吗?

如何解决Ryu控制器-simple_switch_13_stp在失败后不会重新计算树吗?

我将mininetRyu controller一起使用。

对于Ryu controller,我正在使用以下命令:

ryu-manager simple_switch_stp_13.py

关于mininet,我使用文件Topo1.py中定义的拓扑:

from mininet.topo import Topo

class Project( Topo ):

   def __init__( self ):
       # Initialize topology
       Topo.__init__( self )

       # Add hosts
       h1 = self.addHost('h1')
       h2 = self.addHost('h2')

       # Add switches
       s1 = self.addSwitch('s1')
       s2 = self.addSwitch('s2')
       s3 = self.addSwitch('s3')
       s4 = self.addSwitch('s4')

       # Add links
       self.addLink(h1,s1)
       self.addLink(s1,s2)
       self.addLink(s2,s4)
       self.addLink(s3,s1)
       self.addLink(s3,s4)
       self.addLink(h2,s4)

topos = { 'myTopo': ( lambda: Project() )}

然后我使用以下命令运行mininet

sudo mn --custom Topo1.py --topo=myTopo --switch ovsk --controller=remote --mac

它们之间的联系是完美的;我成功地从主机1到主机2执行了ping操作。我想要做的是用s1和s2断开链接(而不停止h1和h2之间的ping操作)。

其次,我遇到的问题是: 根据{{​​3}}第65页,我使用了以下命令:

link s1 s2 down.

但是,我可以观察到使用wireshark时控制器响应Port_Mod发送了Port_Status,该Port_Mod要求交换机重新启动接口。 交换机执行此操作,以便ping通过s1和s2之间的接口重新通过。我不明白为什么控制器发送此py net.delLinkBetween(s1,s2)

https://osrg.github.io/ryu-book/en/Ryubook.pdf第65页中,他们没有这个问题。

然后,我尝试了以下命令:

cap

链接被完全删除,通过端口状态通知控制器,但根,根的成本...根本没有变化。然后,ping不会重新启动并且不会经过s3。我也不明白为什么?

您知道我所做的两个观察是否正常?如果是,您是否知道如何纠正实验以达到预期的效果

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。