如何解决使用 RYU 控制器在 SDN 迷你网中无法访问目标主机
我使用 mininet 和 RYU 控制器创建了如下所示的 mininet 拓扑
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.log import setLogLevel
from mininet.node import OVSSwitch,Controller,RemoteController
from mininet.cli import CLI
from time import sleep
class ResearchTopo(Topo):
def build(self):
s1 = self.addSwitch('s1')
s2 = self.addSwitch('s2')
s3 = self.addSwitch('s3')
s4 = self.addSwitch('s4')
s5 = self.addSwitch('s5')
h1 = self.addHost('h1')
h2 = self.addHost('h2')
h3 = self.addHost('h3')
h4 = self.addHost('h4')
h5 = self.addHost('h5')
h6 = self.addHost('h6')
self.addLink(h1,s3)
self.addLink(h2,s3)
self.addLink(h3,s4)
self.addLink(h4,s4)
self.addLink(h5,s5)
self.addLink(h6,s5)
self.addLink(s1,s3)
self.addLink(s1,s4)
self.addLink(s1,s5)
self.addLink(s2,s3)
self.addLink(s2,s4)
self.addLink(s2,s5)
if __name__ == '__main__':
setLogLevel('info')
topo = ResearchTopo()
c1 = RemoteController('c1',ip='127.0.0.1')
net = Mininet(topo = topo,controller = c1)
net.start()
CLI(net)
net.stop()
但是如果我尝试互相 ping,它会说目标主机无法访问。如果我移除 s1 或 s2 开关,它就可以正常工作。
解决方法
您正在定义一个带有循环的网络。
在这种情况下,您需要定义生成树协议 (STP) 以构建无环路的逻辑拓扑。这里是 Ryu 控制器的 guide。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。