首页 > 其他分享 >实验1:SDN拓扑实践

实验1:SDN拓扑实践

时间:2022-09-19 18:47:00浏览次数:45  
标签:mininet self 实践 range L1 sw1 SDN 拓扑

(一)基本要求
使用Mininet可视化工具,生成下图所示的拓扑,并保存拓扑文件名为学号.py。

使用Mininet的命令行生成如下拓扑:
a) 3台交换机,每个交换机连接1台主机,3台交换机连接成一条线。

b) 3台主机,每个主机都连接到同1台交换机上。

在2 b)的基础上,在Mininet交互界面上新增1台主机并且连接到交换机上,再测试新拓扑的连通性。

编辑基本要求第1步保存的Python脚本,添加如下网络性能限制,生成拓扑:
a) h1的cpu最高不超过50%;
b) h1和s1之间的链路带宽为10,延迟为5ms,最大队列大小为1000,损耗率50。

(二)进阶要求
编写Python脚本,生成如下数据中心网络拓扑,要求:

编写.py拓扑文件,命名为“学号_fattree.py”;

#!/usr/bin/python

"""Custom topology example
Adding the 'topos' dict with a key/value pair to generate our newly defined
topology enables one to pass in '--topo=mytopo' from the command line.
"""

from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import RemoteController,CPULimitedHost
from mininet.link import TCLink
from 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 += 1
topos = { 'mytopo': ( lambda: MyTopo() ) }


必须通过Mininet的custom参数载入上述文件,不得直接使用miniedit.py生成的.py文件;
设备名称必须和下图一致;
使用Python的循环功能实现,不得在代码中手工直接添加设备和链路。

(三)个人总结
这次是第一次实际操作mininet,因为上一次的实验就已经完成了实验环境的配置了,所以这次实验完成的还是很顺利的,就中途改python代码时碰到权限问题,后面查看文件权限,发现只有只读权限,可以用chmod代码加上权限,linux之前有开设过课程,所以很多基本的命令都会,所以这次实验的基本内容都是跟着文档就能完成的,还有一个问题就是我对python并不是很熟悉,但是进阶的内容也是可以跟着参考资料完成的,所以完成这次的实验内容,总体来说也不是很难。

标签:mininet,self,实践,range,L1,sw1,SDN,拓扑
From: https://www.cnblogs.com/ca1hu/p/16708634.html

相关文章

  • Java实践二
    关于BigInteger:由于计算机使用固定的位数来保存数值,因此,能处理的数值大小是有限的,当要处理的数值超过了这一范围时,计算机将会自动截断数值的二进制表示为它所能处理的最多......
  • 实验二:Open vSwitch虚拟交换机实践
    一.基本要求1.执行ovs-vsctlshow命令、以及p0和p1连通性测试的执行结果2.使用Mininet搭建的SDN拓扑,下发流表2.1开启MininetCLI并执行pingall命令2.2下发流......
  • 报告分享|2022年中国数据交易实践趋势报告
    阅读全文:http://tecdat.cn/?p=28547梳理发现,2021年数据交易机构增长加速,北京、上海、深圳、广州、湖南、福建等多个省市,相继设立数据交易机构。2021年共有8家机构注册,包......
  • 3种方法复制CSDN代码
    CSDN代码要登录才能复制,使用体验不太好,以下三种方法可以解决。方法1:检查网页源码手动更改方法2:打开控制台执行一条命令方法3:使用浏览器扩展组件1、检查网页源码手动......
  • 实验2:Open vSwitch虚拟交换机实践
    实验报告实验目的能够对OpenvSwitch进行基本操作能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表能够通过Mininet的Python代码运行OVS命令,控制网络拓......
  • Edge——如何屏蔽CSDN搜索结果
    前言之前用的是-csdn,最近发现这个失效了,然后就更新为-site:csdn.net;内容配置打开设置->搜索搜索->地址栏和搜索->管理搜索引擎->添加设置完成https://cn.bin......
  • 实验1:SDN拓扑实践
    一、实验目的能够使用源码安装Mininet;能够使用Mininet的可视化工具生成拓扑;能够使用Mininet的命令行生成特定拓扑;能够使用Mininet交互界面管理SDN拓扑;能够使用Python......
  • 实验2:Open vSwitch虚拟交换机实践
    (一)基本要求1.ovs-vsctl基础操作实践:创建OVS交换机,以ovs-xxxxxxxxx命名,其中xxxxxxxxx为本人学号。在创建的交换机上增加端口p0和p1,设置p0的端口号为100,p1的端口号为101,类型......
  • 实验1:SDN拓扑实践
    实验1:SDN拓扑实践(一)基本要求使用Mininet可视化工具,生成下图所示的拓扑,并保存拓扑文件名为学号.py。使用Mininet的命令行生成如下拓扑:a)3台交换机,每个交换机连接1......
  • 实验2:Open vSwitch虚拟交换机实践
    实验目的1.能够对OpenvSwitch进行基本操作;2.能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;3.能够通过Mininet的Python代码运行OVS命令,控制网络拓扑中......