如何解决Mininet SDN自定义环和网格拓扑问题,这会产生环路问题并且无法ping通?

问题描述 投票:0回答:1

我已经在Google中搜索了很多有关此问题的信息。但找不到任何解决方法。在mininet中创建SDN拓扑时会出现问题,其中存在多路径连接,这会导致环路问题,而在Mininet中使用线性或树形拓扑时则不会发生任何问题。Mininet Custom Topology我为此使用ODL Carbon,但也无法正常工作。拓扑和小型网络有什么解决方案吗?我到底该怎么办?

didn't undrestand anything from this link too这是我的mininet 16交换机,带有2台主机

#!/usr/bin/python

from mininet.net import Mininet
from mininet.node import Controller, RemoteController, OVSController
from mininet.node import CPULimitedHost, Host, Node
from mininet.node import OVSKernelSwitch, UserSwitch
from mininet.node import IVSSwitch
from mininet.cli import CLI
from mininet.log import setLogLevel, info
from mininet.link import TCLink, Intf
from subprocess import call

def myNetwork():

    net = Mininet( topo=None,
                   build=False,
                   ipBase='10.0.0.0/8')

    info( '*** Adding controller\n' )
    c0=net.addController(name='c0',
                      controller=RemoteController,
                      ip='192.168.43.140',
                      protocol='tcp',
                      port=6653)

    info( '*** Add switches\n')
    s14 = net.addSwitch('s14', cls=OVSKernelSwitch)
    s7 = net.addSwitch('s7', cls=OVSKernelSwitch)
    s3 = net.addSwitch('s3', cls=OVSKernelSwitch)
    s10 = net.addSwitch('s10', cls=OVSKernelSwitch)
    s13 = net.addSwitch('s13', cls=OVSKernelSwitch)
    s6 = net.addSwitch('s6', cls=OVSKernelSwitch)
    s16 = net.addSwitch('s16', cls=OVSKernelSwitch)
    s1 = net.addSwitch('s1', cls=OVSKernelSwitch)
    s9 = net.addSwitch('s9', cls=OVSKernelSwitch)
    s5 = net.addSwitch('s5', cls=OVSKernelSwitch)
    s2 = net.addSwitch('s2', cls=OVSKernelSwitch)
    s12 = net.addSwitch('s12', cls=OVSKernelSwitch)
    s15 = net.addSwitch('s15', cls=OVSKernelSwitch)
    s8 = net.addSwitch('s8', cls=OVSKernelSwitch)
    s4 = net.addSwitch('s4', cls=OVSKernelSwitch)
    s11 = net.addSwitch('s11', cls=OVSKernelSwitch)

    info( '*** Add hosts\n')
    h1 = net.addHost('h1', cls=Host, ip='10.0.0.1', defaultRoute=None)
    h2 = net.addHost('h2', cls=Host, ip='10.0.0.2', defaultRoute=None)

    info( '*** Add links\n')
    net.addLink(s1, s2)
    net.addLink(s2, s3)
    net.addLink(s3, s4)
    net.addLink(s4, s5)
    net.addLink(s5, s6)
    net.addLink(s6, s7)
    net.addLink(s2, s8)
    net.addLink(s8, s9)
    net.addLink(s9, s10)
    net.addLink(s10, s11)
    net.addLink(s12, s11)
    net.addLink(s13, s14)
    net.addLink(s14, s15)
    net.addLink(s15, s16)
    net.addLink(s16, s12)
    net.addLink(s12, s7)
    net.addLink(s13, s8)
    net.addLink(s1, h2)
    net.addLink(s16, h1)

    info( '*** Starting network\n')
    net.build()
    info( '*** Starting controllers\n')
    for controller in net.controllers:
        controller.start()

    info( '*** Starting switches\n')
    net.get('s14').start([c0])
    net.get('s7').start([c0])
    net.get('s3').start([c0])
    net.get('s10').start([c0])
    net.get('s13').start([c0])
    net.get('s6').start([c0])
    net.get('s16').start([c0])
    net.get('s1').start([c0])
    net.get('s9').start([c0])
    net.get('s5').start([c0])
    net.get('s2').start([c0])
    net.get('s12').start([c0])
    net.get('s15').start([c0])
    net.get('s8').start([c0])
    net.get('s4').start([c0])
    net.get('s11').start([c0])

    info( '*** Post configure switches and hosts\n')

    CLI(net)
    net.stop()

if __name__ == '__main__':
    setLogLevel( 'info' )
    myNetwork()
loops sdn mininet topology
1个回答
0
投票

您是否遇到错误?请尝试在mininet中使用pingall命令创建拓扑。坦率地说,我对ODL“碳”有太多疑问,我选择了迄今为止一直很稳定的ODL“铍”。我是Iperf的SDN和ODL研究员。

任何疑问都可以在Twitter上与我联系。

© www.soinside.com 2019 - 2024. All rights reserved.