首页 文章

mininet中的异常错误

提问于
浏览
0

我使用Mininet创建了一个简单的自定义拓扑 . 它正常工作当我第一次运行它时,但之后我收到以下错误消息:

Exception: Error creating interface pair (s1-eth1,h1-eth0): RTNETLINK answers: File exists

它是什么,我该如何解决?

这是我的拓扑:

from mininet.topo import Topo
from mininet.net import Mininet


class CustomTopo (Topo):

    def build(self):

        S1 = self.addSwitch('s1')

        H1 = self.addHost('h1')
        H2 = self.addHost('h2')

        self.addLink(S1, H1)
        self.addLink(S1, H2)


topo = CustomTopo()
net = Mininet(topo)
net.start()

topos = {'mytopo': CustomTopo}

有关更多信息,我使用Mininet 2.3.0d1

我通过以下命令运行它而没有远程控制器并收到另一个错误: sudo mn --custom /home/bob/Desktop/Mtopo.py --topo=mytopo --mac

错误是: Exception: Please shut down the controller which is running on port 6653

我检查了 netstat -nl | grep 6653 但是端口6653上没有活动会话,并且没有其他控制器可以关闭 .

2 回答

  • 0

    你实际上两次启动Mininet . 一旦进入脚本,另一个使用命令行 . 将脚本更改为:

    from mininet.topo import Topo
    from mininet.net import Mininet
    from mininet.cli import CLI
    from mininet.node import RemoteController
    
    class CustomTopo (Topo):
    
        def build(self):
    
            S1 = self.addSwitch('s1')
    
            H1 = self.addHost('h1')
            H2 = self.addHost('h2')
    
            self.addLink(S1, H1)
            self.addLink(S1, H2)
    
    
    topo = CustomTopo()
    net = Mininet(topo, controller=lambda name: RemoteController(name, ip='127.0.0.1', protocol='tcp', port = 6633), autoSetMacs=True)
    net.start()
    CLI(net)
    net.stop()
    

    保存到start_topology.py并运行为

    sudo python start_topology.run
    

    或将您的脚本更改为

    from mininet.topo import Topo
    from mininet.net import Mininet
    from mininet.cli import CLI
    
    
    class CustomTopo (Topo):
    
        def build(self):
    
            S1 = self.addSwitch('s1')
    
            H1 = self.addHost('h1')
            H2 = self.addHost('h2')
    
            self.addLink(S1, H1)
            self.addLink(S1, H2)
    
    
    topo = CustomTopo()
    topos = {'mytopo': CustomTopo}
    

    保存到mytopo.py并运行为

    sudo mn --custom mytopo.py --topo=mytopo --mac --controller=remote,ip=127.0.0.1,port=6633
    

    (相应地更改控制器的IP和PORT)

  • 0

    使用这个库:

    from mininet.link import TCLink, Intf
    

    这时你添加一个链接:

    self.addLink(s1, h1, cls=TCLink)
    

相关问题