python - 如何从 mininet shell 运行脚本?
问题描述
我在 SDN 课程中有一个任务是使用 mininet 和 pox 控制器创建负载均衡器。我有使用 Python 和 mininet 创建的拓扑文件,以及使用 Python 和 POX 创建的控制器文件。拓扑如下:主机 h1-h4 是客户端主机,主机 h5-h8 是服务器。我有一个充当负载平衡器的交换机。客户端向交换机发送请求,交换机将请求转发到随机选择的服务器。然后服务器将请求发送回交换机,然后交换机将其引导回客户端。
我已经设法完成了这项任务,但现在我必须证明负载均衡器正在按预期运行(这意味着它会平衡所有服务器之间的请求)。我需要展示它的方式是从客户端向交换机生成至少 10,000 个请求。
我的问题是:我如何制作这样的脚本并从 mininet shell 运行它?我考虑过制作一个运行循环(10K 次迭代)的脚本并选择一个随机客户端来 ping 开关。问题是我不知道该怎么做。
解决方案
你可以使用 mininet API 来做到这一点。创建拓扑后。您可以在同一个 mininet 文件中包含一个循环,它随机选择一个客户端和 ping 开关。假设选择的客户端节点是 h1。
h1.cmd(<your command which is to be run at h1 to ping switch>)
作为参数传递的命令将在 h1 的终端上运行。
cmdPrint
函数做同样的事情,除了它也打印输出。有关节点的 mininet API 函数的独家列表,请参阅mininet api 参考
推荐阅读
- input - ffpmeg 强制覆盖(严重)检测到的输入帧率
- css - CSS 背景图片 - 如何设置图片停留在原位
- laravel - 为什么按计划运行的日志:在 Laravel Vapor 上运行而不保存在 Cloudwatch 中?
- reactjs - 如何让组件在 React 中只加载一次?
- blockchain - 我如何在区块链网络上部署我的合约?
- rust - 在 Rust 中将方法作为参数提供(Vec sort() 方法)
- gcc - 使用 map 并使用 clang 编译时未定义的引用 eeror [abi:cxx11]
- php - 获取 PHP 函数 (Symfony 4.2)
- r - Wu Hausman 检验检验内生性
- function - LLVM 中多个程序集文件的内联函数