mininet运行报错

问题1:无法启动命令行接口
问题描述:使用mininet的自定义拓扑功能来生成拓扑。代码第一次运行的时候节点和链路都正常添加,但是在第二次运行的时候出现了错误提示。命令及代码如下:
说明:自定义的拓扑名字为MultiSwitchTopo.py

# sudo python MultiSwitchTopo.py 

节点和链接都正常添加,但是最后提示warning:No packets sent ,之后无法正常进入mininet,开始的时候不明白这个问题是什么原因造成的,后来和可以正常进入mininet环境的代码进行了比较发现是因为在代码中没有CLI(net)来启动mininet的CLI环境,加上去就可以了。当然也可以把需要对网络进行的操作直接写在脚本的代码中,比如iperf进行带宽测试等。

这里写图片描述

问题2:建立拓扑时出现错误提示:Exception: Error creating interface pair (s11-eth2,s12-eth2): RTNETLINK answers: File exists
之后再次运行自定义拓扑代码,结果出现如下错误提示。
后来发现就算通过exit或者quit命令来退出mininet环境再次运行建立拓扑的命令或者自定义拓扑的代码的时候也会出现这样的错误提示,原因是退出的时候(可能是软件bug也可能是其他原因)导致不能正常将之前建立好的网络clean掉,解决的办法是相同的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mininet是一种网络仿真平台,可以模拟真实网络环境并进行网络测试。 Scapy是一种Python库,用于生成、发送和接收网络数据包。在Mininet运行Scapy可以帮助我们模拟网络流量并进行测试。 以下是在Mininet运行Scapy生成数据包的步骤: 1. 在Mininet虚拟机中打开终端窗口。 2. 运行以下命令安装Scapy: ``` sudo apt-get update sudo apt-get install python-scapy ``` 3. 创建一个新的Python脚本并将以下代码复制粘贴到文件中: ``` #!/usr/bin/env python from scapy.all import * # 创建一个ARP数据包 arp_packet = Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(op="who-has", hwsrc="00:00:00:00:00:00", psrc="0.0.0.0", hwdst="00:00:00:00:00:00", pdst="255.255.255.255") # 发送数据包 sendp(arp_packet) ``` 该脚本创建一个ARP数据包并使用Scapy的sendp函数发送它。 4. 保存脚本并将其命名为“generate_packet.py”。 5. 在Mininet终端中运行以下命令启动交换机: ``` sudo mn --topo single,3 --mac --controller remote ``` 该命令将启动一个包含3个主机的网络拓扑,并将启用MAC地址和远程控制器。 6. 在另一个终端窗口中,使用以下命令连接到Mininet虚拟机: ``` sudo mn --cli ``` 这将打开Mininet的命令行界面。 7. 在Mininet命令行界面中,运行以下命令以启动主机并将其连接到交换机: ``` h1 = net.addHost('h1') h2 = net.addHost('h2') h3 = net.addHost('h3') s1 = net.get('s1') net.addLink(h1, s1) net.addLink(h2, s1) net.addLink(h3, s1) net.start() ``` 这将创建并启动3个主机,并将它们连接到交换机。 8. 返回Python脚本所在的终端窗口,并运行以下命令以生成数据包: ``` sudo python generate_packet.py ``` 这将使用Scapy生成一个ARP数据包并将其发送到Mininet网络中。 9. 在Mininet命令行界面中,使用以下命令查看数据包是否到达目的地: ``` h1 tcpdump -c 1 ``` 这将在h1上启动tcpdump并捕获1个数据包。如果一切正常,您应该能够看到生成的ARP数据包。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值