分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

mininet实验三

发布时间:2023-09-06 01:48责任编辑:顾先生关键词:暂无标签

mininet实验三—连接floodlight控制器

参考博客一

参考博客二


事先准备—floodlight安装


执行ifconfig命令获取floodlight所在服务器的IP地址。

1.启动floodlight

java -jar target/floodlight.jar

浏览器中,输入floodlight ui界面地址:http://localhost:8080/ui/index.html

2.用python脚本通过mininet创建拓扑

切换到/home/mininet目录,请检查是否存在测试脚本fattree.py,如果有该脚本,请跳过此步骤,如果没有,请执行以下命令创建脚本并添加内容。

cd /home/mininettouch fattree.pyvim fattree.py

添加以下脚本

"""Custom topology exampleAdding the ‘topos‘ dict with a key/value pair to generate our newly definedtopology enables one to pass in ‘--topo=mytopo‘ from the command line.""" from mininet.topo import Topofrom mininet.net import Mininetfrom mininet.node import RemoteController,CPULimitedHostfrom mininet.link import TCLinkfrom mininet.util import dumpNodeConnections class MyTopo( Topo ): ???"Simple topology example." ????def __init__( self ): ???????"Create custom topo." ????????# Initialize topology ???????Topo.__init__( self ) ???????L1 = 2 ???????L2 = L1 * 2 ????????L3 = L2 ???????c = [] ???????a = [] ???????e = [] ?????????????????# add core ovs ?????????for i in range( L1 ): ???????????????sw = self.addSwitch( ‘c{}‘.format( i + 1 ) ) ???????????????c.append( sw ) ???????????# add aggregation ovs ???????for i in range( L2 ): ???????????????sw = self.addSwitch( ‘a{}‘.format( L1 + i + 1 ) ) ???????????????a.append( sw ) ???????????# add edge ovs ???????for i in range( L3 ): ???????????????sw = self.addSwitch( ‘e{}‘.format( L1 + L2 + i + 1 ) ) ???????????????e.append( sw ) ????????# add links between core and aggregation ovs ???????for i in range( L1 ): ???????????????sw1 = c[i] ???????????????for sw2 in a[i/2::L1/2]: ???????????????# self.addLink(sw2, sw1, bw=10, delay=‘5ms‘, loss=10, max_queue_size=1000, use_htb=True) ???????????????????????self.addLink( sw2, sw1 ) ????????# add links between aggregation and edge ovs ???????for i in range( 0, L2, 2 ): ???????????????for sw1 in a[i:i+2]: ???????????????????for sw2 in e[i:i+2]: ???????????????????????self.addLink( sw2, sw1 ) ????????#add hosts and its links with edge ovs ???????count = 1 ???????for sw1 in e: ???????????????for i in range(2): ???????????????????host = self.addHost( ‘h{}‘.format( count ) ) ???????????????????self.addLink( sw1, host ) ???????????????????count += 1topos = { ‘mytopo‘: ( lambda: MyTopo() ) }

启动mininet,生成测试拓扑结构。不要忘了修改fattree.py为可执行文件。脚本中不要含有中文。

使用以下命令运行python脚本:

sudo mn --custom /home/liuhy/mininet/fattree.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6653 --switch ovsk,protocols=OpenFlow10
这个命令很重要,涉及到将mininet交换机和floodlight控制器连接,需要调整参数。
  • 首先fattree.py的地址要找对。
  • ip是floodlight所在服务器ip,可以由ifconfig查找。
  • 然后port要设置成6653。

连接成功截图:

如果连接失败,下面的操作都将不可进行,第一次自己的错误也出在这里。感谢陈翔学长的指导!

用vim编辑python脚本时可以参考:VIM指令大全

运行脚本之后:

拓扑图:

图中c1和c2为核心交换机,a1-a4为聚合交换机,e1-e4为边缘交换机,h1-h8为主机。上述代码
拓扑创建了2个核心交换机、4个汇聚交换机、4个边缘交换机,每个边缘交换机分别下挂2个虚拟
主机,并给所有的交换机添加了逻辑链路。上述代码中为了提高带宽的利用率、调整流量需求达
到均衡的效果,每个核心交换机均与4个汇聚交换机相连,每个汇聚交换机分别下挂两个边缘交
换机,每个边缘交换机分别连接它所属的父交换机。

mininet实验三

原文地址:https://www.cnblogs.com/031602523liu/p/8747181.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved