在Ubuntu系统中利用mininet构建好了网络拓扑后,怎么让拓扑中的主机之间发送数据包呢?
比如说现在构建了两台主机h1和h2,现在要让h1发送特定协议类型的数据包(区别于ping的icmp报文)给h2呢?如果是编写利用scapy库编写python脚本的话,这个python文件应该放在什么地方运行呢?(就是如何把python文件里写的行为和使用mininet构建的拓扑结构对应起来)
sdn网络中使用scapy库实现终端之间发送数据包
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 Scapy是一个强大的Python库,可以用于创建、解析和发送网络包。在Mininet创建的网络拓扑中,你可以使用Scapy库让主机发送数据包。
以下是一个基本示例,这个脚本创建一个简单的ICMP(ping)请求,并将其发送到网络上:
from scapy.all import * #创建ICMP包 icmp = IP(dst="10.0.0.2")/ICMP() #发送ICMP包 send(icmp)
如果你需要从一个特定的主机(比如h1)发送这个数据包,你需要在h1上运行这个Python脚本。你可以在Mininet的交互式CLI中执行这个操作:
mininet> h1 python send_icmp.py
在上面的命令中,
send_icmp.py
是你的Python脚本,它需要在你启动Mininet的同一目录下,或者在你的PYTHONPATH环境变量中。你也可以在你的Mininet拓扑脚本中使用Python的subprocess库执行这个命令,例如:
import subprocess subprocess.call(['xterm', '-e', 'python send_icmp.py &'])
请注意,你的网络配置可能需要更复杂的设置,例如你可能需要配置路由,或者根据你的需求修改数据包的内容。此外,你需要有适当的权限才能发送原始数据包,这通常意味着你需要以root权限运行你的脚本。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 多址通信方式的抗噪声性能和系统容量对比
- ¥15 winform的chart曲线生成时有凸起
- ¥15 msix packaging tool打包问题
- ¥15 finalshell节点的搭建代码和那个端口代码教程
- ¥15 Centos / PETSc / PETGEM
- ¥15 centos7.9 IPv6端口telnet和端口监控问题
- ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
- ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
- ¥20 海浪数据 南海地区海况数据,波浪数据
- ¥20 软件测试决策法疑问求解答