SDN之Python编程创建多数据中心网络

文章目录

    • 1.拓扑结构
    • 2.具体步骤

1.拓扑结构

通过python编程创建一个包含2台核心交换机、4台汇聚交换机、8台边缘交换机和16台主机的网络拓扑,如图示:
在这里插入图片描述

2.具体步骤

首先ctrl+alt+T(或右键)打开终端,在/home/shy/mininet/mininet/examples目录下使用sudo vim sdn.py命令新建python脚本文件。
步骤一:编写python代码并保存

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 ):

    def __init__( self ):

        #初始化网络拓扑
        Topo.__init__( self )
        L1 = 2       #核心交换机数量
        L2 = L1 * 2  #汇聚交换机数量
        L3 = L2 * 2  #边缘交换机数量
        c = []       #存放核心交换机的列表
        a = []       #存放汇聚交换机的列表
        e = []       #存放边缘交换机的列表

        #添加核心交换机
        for i in range( L1 ):
            sw = self.addSwitch( 'c{}'.format( i + 1) )
            c.append( sw )

        #添加汇聚交换机
        for i in range( L2 ):
            sw = self.addSwitch( 'a{}'.format( L1 + i + 1 ) )
            a.append( sw )

        #添加边缘交换机
        for i in range( L3 ):
            sw = self.addSwitch( 'c{}'.format( L1 + L2 + i + 1) )
            e.append( sw )

        #添加核心交换机与聚合交换机之间的链路
        for i in range( L1 ):
            sw1 = c[i]
            for sw2 in a[i//2::L1//2]:
                self.addLink( sw2 , sw1 )

        #添加聚合交换机与边缘交换机之间的链路
        for i in range( 0, L2, 2 ):
        	for sw1 in a[i:i+2]:
                for sw2 in e[i*2:i*2+4]:
                    self.addLink( sw2, sw1 )

        #添加主机与边缘交换机之间的链路
        count = 1
        for sw1 in e:
            for i in range(2):
                host = self.addHost( 'h{}'.format( count ) )
                self.addLink( sw1 , host )
                count += 1

#创建mytopo类的对象
topos = { 'mytopo': ( lambda : MyTopo() ) }

可以看到,文件已经保存在/home/shy/mininet/mininet/examples目录下。
在这里插入图片描述
步骤二:验证网络拓扑是否创建成功
在另一个终端中开启OpenDaylight控制器
在这里插入图片描述
使用sudo mn --custom sdn.py --topo mytopo --controller=remote,ip=127.0.0.1,port=6633 --switch ovs,protocols=OpenFlow13命令运行python脚本文件。可以看到控制器已经成功监测到了网络拓扑,网络连通性也没有问题。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/250784.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于学习计算机的心得与体会

也是隔了一周没有发文了,最近一直在准备期末考试,后来想了很久,学了这么久的计算机,这当中有些收获和失去想和各位正在和我一样在学习计算机的路上的老铁分享一下,希望可以作为你们碰到困难时的良药。先叠个甲&#xf…

Ansys Lumerical | 采用一维光栅的出瞳扩展器的优化

附件下载 联系工作人员获取附件 本文演示了一种仿真方法,并举例说明了使用一维光栅的出瞳扩张器(EPE)系统的优化示例。 在此工作流程中,我们使用 Lumerical 构建光栅模型,并使用 RCWA 求解器模拟其响应。完整的EPE系…

云演CTF Blog

1、啥也搞不了,扫目录。出来个console 2、有显示锁掉了 3、抓包,改返回包 改成true,放包 不好意思,不会了,哈哈哈哈哈哈哈哈哈 你会的话,请告诉我,大佬

MyBatis问题记录

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 原因:标注了MapperScan 在 Spring Boot 中,MapperScan 注解用于扫描 MyBatis Mapper 接口的包路径,并将其注册为 Spring Bean。在一些简单的情况下&…

基于SSM的图书馆预约座位系统的设计与实现(部署+源码+LW)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于SSM的图书馆预约座位…

【AI】YOLO学习笔记

作为经典的图像识别网络模型,学习YOLO的过程也是了解图像识别的发展过程,对于初学者来说,也可以了解所采用算法的来龙去脉,构建解决问题的思路。 1.YOLO V1 论文地址:https://arxiv.org/abs/1506.02640 YOLO&#x…

Spring框架知识总结

目录 1、Spring框架有哪些设计模式? 2、介绍一下Spring框架和SpringBoot框架? 3、介绍一下SpringBoot具有哪些功能模块? 4、Spring用到了什么组件? 5、什么是IoC? 什么是AOP? 6、SpringBoot运行原理&#xff1…

YOLOv8-Seg改进:轻量化卷积设计 | DualConv双卷积魔改v8结构

🚀🚀🚀本文改进: DualConv双卷积魔改v8结构,达到轻量化的同时并能够实现小幅涨点 🚀🚀🚀YOLOv8-seg创新专栏:http://t.csdnimg.cn/KLSdv 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; 1)手把手教你如何训练YOLOv8-seg; 2)模型创新,提升分割性能…

性能提升100%、存储节约50%!猕猴桃游戏搭载OceanBase开启云端手游新篇章

近日,武汉灵动在线科技有限公司(以下简称“灵动在线”)与 OceanBase 达成合作,旗下品牌猕猴桃游戏的“游戏用户中心(微信小程序)”和“BI 分析报表业务系统“两大关键业务系统全面接入 OB Cloud 云数据库&a…

1128:图像模糊处理(C语言)

一:题目 二:思路分析 1:输入图像 2.根据题目描述1,得出图像四周的数是不变的,即i 1,in,j1,jm时,图像所表示的数值不变 3根据题目描述2可得,中间的值为四周及…

如何装好Home Assistant,四种方式安装HA OS测试

环境: 1.haos_generic-x86-64-11.1.img 2.Balena Etcher 1.18.11 3.haos_ova-11.1.qcow2 4.Ubuntu20.04 5.KVM 6.Docker version 24.0.5 7.HA OS11.2 8.联想E14笔记本 问题描述: 如何装好Home Assistant,四种方式安装HA OS测试 解决…

黑色翻页时钟HTML源码-倒计时单页翻页时钟

黑色翻页时钟HTML源码-倒计时单页翻页时钟这是一个类似fliqlo的黑色翻页时钟HTML源码,它仅包含一个HTML文件,上传到网站后即可使用。该时钟具有查看当前时间、秒表和倒计时功能,并且可以在页面的右下角进行设置。 红色动态炫酷数字时钟html网…

自动化测试如何管理测试数据

在之前的自动化测试框架相关文章中,无论是接口自动化还是UI自动化,都谈及data模块和config模块,也就是测试数据和配置文件。 随着自动化用例的不断增加,需要维护的测试数据也会越来越多,维护成本越来越高,…

(2)Linux 操作系统||基本创建与操作

本章将浅谈一下 "操作系统是什么" 的问题,随后通过讲解一些 Linux 下的基本指令,显示目录内容、跳转操作和文件的创建与删除。在讲解的同时我会穿插一些知识点,比如 Linux 隐藏文件、路径等基础知识。 了解操作系统 什么是操作系统…

【腾讯云云上实验室】用向量数据库融合AI技术:构建下一代智能客服平台

文章目录 前言为什么说用好大模型离不开向量数据库呢?AI训练中的向量维度快速检索非结构化数据的利器 --- 向量数据库AI的海马体--腾讯云向量数据库 一、腾讯云向量数据库介绍重磅组合,行业领先智能化能力产品亮点 二、AI技术在智能客服中的作用AI技术在智能客服平…

【Docker】5. Dockerfile 构建和管理容器化应用程序

▒ 目录 ▒ 🛫 导读开发环境 1️⃣ Dockerfile介绍 基本语法 指令 2️⃣ 实战:Python 的 Flask Web 代码 编译运行 发布到服务器 🛬 文章小结📖 参考资料 🛫 导读 开发环境 版本号描述文章日期2023-12-15操作系统…

在vue3的js中将一组数据赋值的问题

代码: if (res.data) { myPrizeList.value res.data console.log(myPrizeList.value,myPrizeList.value) const giftList ref() console.log(JSON.parse(JSON.stringify(myPrizeList.val…

如何预防最新的.locked、.locked1勒索病毒感染您的计算机?

尊敬的读者: 近期,网络安全领域迎来一股新潮——.locked、.locked1勒索病毒的威胁,其先进的加密技术令人生畏。本文将深入剖析.locked、.locked1勒索病毒的阴谋,提供特色数据恢复策略,并揭示锁定恶劣行径的先锋预防手…

【已解决】解决无法找到sun.misc.BASE64Encoder的jar包的解决方法

idea中可能会出现没有sun.misc.BASE64Encoder的jar包。但是64位编码却需要用到.BASE64Encoder。有以下两种方法: 错误现象: 错误原因: 1.JDK改为8(原因是/lib/tool.jar和/lib/rt.jar已经从Java SE 9中删除)&#xff…

在线客服系统定价因素解析:影响价格的关键因素

跨境电子商务公司必不可少的工具就是在线客服系统。企业选择在线客服系统的时候免不了要对不同产品的功能性、价格、服务等因素进行考量。今天这篇文章,我们就来探讨一下在线客服系统的定价因素有哪些?探究市面上的在线客服系统价格各异的影响因素。为大…