You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Mininet Shell中运行脚本?SDN课程负载均衡器实现咨询

如何在Mininet Shell中运行脚本并完成SDN负载均衡作业?

嗨,我来一步步帮你搞定这个作业的脚本运行问题,结合你的拓扑(h1-h4客户端、h5-h8服务器、负载均衡交换机),咱们分步骤来:

一、先启动POX负载均衡控制器

控制器得先跑起来,不然Mininet的拓扑找不到“指挥中心”,会直接罢工:

  • 打开一个全新的终端窗口(别和后面Mininet的终端混在一起)
  • 切换到POX的安装目录,一般是cd pox(如果你的POX在其他路径,就换成对应的目录)
  • 启动你的控制器脚本,命令是:
    ./pox.py log.level --DEBUG your_controller_script.py
    
    这里log.level --DEBUG是为了输出详细的调试信息,方便你排查负载转发的问题,把your_controller_script.py换成你自己写的POX控制器文件名就行。

二、在Mininet Shell中运行拓扑脚本

有两种常用方式,选你顺手的来:

方式1:进入Mininet Shell后加载脚本

  • 打开另一个终端,输入命令启动Mininet Shell:
    sudo mn
    
  • 等出现mininet>提示符后,加载你的拓扑脚本,记得写对路径(相对路径或绝对路径都可以):
    source ./your_topology_script.py
    
  • 加载完成后,你可以输入nodes命令确认所有节点(h1-h8、交换机)都已经创建成功。

方式2:直接通过命令行参数启动拓扑

不用先进入Mininet Shell,直接在终端输入一条命令就能搞定:

sudo mn --custom your_topology_script.py --topo mytopo --controller remote,ip=127.0.0.1,port=6633
  • --custom:指定你的自定义拓扑脚本路径
  • --topo mytopo:这里的mytopo是你脚本里定义的拓扑类名称(比如你写的拓扑类是class MyTopo(Topo),这里就写mytopo,注意小写)
  • --controller remote:告诉Mininet咱们用的是刚才启动的远程POX控制器,ip=127.0.0.1是本地地址,port=6633是POX默认的控制器端口。

三、验证负载均衡功能

脚本跑起来后,得确认负载均衡真的生效了:

  • 比如在Mininet Shell里打开客户端h1的终端:
    xterm h1
    
  • 在弹出的xterm窗口里,你可以用ping测试连通性,或者如果是HTTP负载均衡,就用curl发送请求(比如curl h5curl h6),同时盯着POX控制器的终端输出,看看是不是随机把请求转发到h5-h8中的某台服务器。
  • 也可以在Mininet Shell里输入dpctl dump-flows,查看交换机的流表,确认负载均衡的规则有没有被正确下发。

一些小提醒

  • 一定要先启动POX控制器,再启动Mininet拓扑,不然交换机会因为找不到控制器进入故障模式。
  • 运行Mininet必须加sudo,因为创建虚拟网络设备需要系统权限。
  • 如果你的拓扑脚本里用了特殊的交换机类型,记得在启动Mininet时加上--switch参数,比如--switch ovsk(Open vSwitch,也是Mininet默认的交换机类型)。

内容的提问来源于stack exchange,提问作者Amit Yahav

火山引擎 最新活动