循环中mininet主机之间的ICMP echo数据包被丢弃

问题描述 投票:2回答:2

我正在使用mininet在VirtualBox中使用我自己的拓扑:

第一个带mininet的VirtualBox用作控制器。我使用POX作为控制器(IP地址:192.168.57.3):

mininet@mininet-wm:~/pox$ python ./pox.py forwarding.l2_learning

带mininet的第二个VirtualBox适用于我自己的拓扑脚本:

#!/usr/bin/python

"""
This example shows how to create an empty Mininet object
(without a topology object) and add nodes to it manually.
"""

from mininet.net import Mininet
from mininet.node import RemoteController
from mininet.cli import CLI
from mininet.log import setLogLevel, info

def emptyNet():

    "Create an empty network and add nodes to it."

    net = Mininet( controller=RemoteController )

    info( '*** Adding controller\n' )
    net.addController( 'c0', controller=RemoteController,ip="192.168.57.3",port=6633 )

    info( '*** Adding hosts\n' )
    h1 = net.addHost( 'h1', ip='10.0.0.1' )
    h2 = net.addHost( 'h2', ip='10.0.0.2' )
    h3 = net.addHost( 'h3', ip='10.0.0.3' )


    info( '*** Adding switch\n' )
    s1 = net.addSwitch( 's1' )
    s2 = net.addSwitch( 's2' )
    s3 = net.addSwitch( 's3' )

    info( '*** Creating links\n' )
    net.addLink( h1, s1 )
    net.addLink( s1, s2 )
    net.addLink( s2, s3 )
    net.addLink( s1, s3 )
    net.addLink( s3, h3 )
    net.addLink( s2, h2 )

    info( '*** Starting network\n')
    net.start()

    info( '*** Running CLI\n' )
    CLI( net )

    info( '*** Stopping network' )
    net.stop()

if __name__ == '__main__':
    setLogLevel( 'info' )
    emptyNet()

然后我开始mytopology.py

mininet@mininet-wm:~/mininet/examples$ sudo python mytopology.py

控制器已连接,但所有ping都被丢弃.....

*** Ping: testing ping reachability
h1 -> X X
h2 -> X X
h3 -> X X
*** Results: 100% dropped (0/6 received)
mininet>

怎么了?请帮我。谢谢!

编辑:

Ping是成功的,没有链接使拓扑中的循环。例如

  info( '*** Creating links\n' )
        net.addLink( h1, s1 )
        net.addLink( s1, s2 )
        net.addLink( s2, s3 )
        net.addLink( s3, h3 )
        net.addLink( s2, h2 )

因此,您可以看到S1和S3之间的链接已被删除。

python mininet pox
2个回答
0
投票

我建议你尝试使用最小生成树协议的l2_learning来处理循环


0
投票

循环会创建无法在没有生成树之类的选项的情况下处理的广播风暴。您可以使用openflow.spanning_tree --no-flood --hold-down选项轻松使用带循环的拓扑。

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