Mininet拓扑构建与命令使用

news2024/11/15 2:03:23

实验目的:

1、通过命令模拟创建SDN网络。

2、深入了解Mininet的命令使用。

3、学会使用网络构建启动参数、内部交互命令及外部运行参数。

实验环境:

设备名称

软件环境

硬件环境

主机

Mininet_2.2.0_desktop_cv1.1

CPU:1核 内存:2G 磁盘:20G

实验内容:

1、通过Mininet命令行创建拓扑来熟悉Mininet的基本功能。

2、通过交互式界面创建拓扑来熟悉Mininet的基本命令。

实验原理:

Mininet介绍

Mininet是基于Linux Container架构开发的一个进程虚拟化网络仿真工具,可以创建一个含有主机、交换机、控制器和链路的虚拟网络,其交换机支持OpenFlow,具有高度灵活的自定义软件定义网络。Mininet可以用一个命令在一台主机上(虚拟机、云或者本地)以秒级创建一个虚拟网络,并在上面运行真正的内核、交换机和应用程序代码。

Mininet能实现如下功能:

  • 为OpenFlow应用程序提供一个简单、便宜的网络测试平台

  • 启用复杂的拓扑测试,无需连接物理网络

  • 具有拓扑感知和OpenFlow感知的CLI,用于调试或运行网络范围的测试

  • 支持任意自定义拓扑,主机数可达4096,并包括一组基本的参数化拓扑

  • 提供用于网络创建和实验的可扩展Python API

在基于Mininet的使用下,可以轻易的在自己的笔记本上测试一个软件定义网络(software-defined Networks),对基于OpenFlow、Open vSwitch的各种协议等进行开发验证,或者验证自己的想法。且所有的代码几乎可以无缝迁移到真实的硬件环境中,在实验室里,一行命令就可以创建一个支持SDN的任意拓扑的网络结构,并可以灵活的进行相关测试,验证了设计的正确后,可以轻松部署到真实的硬件环境中。

OpenFlow连接建立交互流程

Miniedit可视化,直接在界面上编辑任意拓扑,生成python自定义拓扑脚本,使用Mininet可视化界面方便了用户自定义拓扑创建,为不熟悉python脚本的使用者创造了更简单的环境,界面直观,可操作性强。

Mininet 2.2.0+内置miniedit 。在mininet/examples下提供miniedit.py脚本,执行脚本后显示可视化界面,可自定义拓扑及配置属性。

MiniEdit使用主要分三个步骤:Miniedit启动→自定义创建拓扑,设置设备信息→运行拓扑并生成拓扑脚本。

网络构建参数

Mininet是基于Linux Container架构开发的一个进程虚拟化网络仿真工具,可以创建一个含有主机、交换机、控制器和链路的虚拟网络,其交换机支持OpenFlow,具有高度灵活的自定义软件定义网络。Mininet可以用一个命令在一台主机上(虚拟机、云或者本地)以秒级创建一个虚拟网络,并在上面运行真正的内核、交换机和应用程序代码。

Mininet能实现如下功能:

为OpenFlow应用程序提供一个简单、便宜的网络测试平台

启用复杂的拓扑测试,无需连接物理网络

具有拓扑感知和OpenFlow感知的CLI,用于调试或运行网络范围的测试

支持任意自定义拓扑,主机数可达4096,并包括一组基本的参数化拓扑

提供用于网络创建和实验的可扩展Python API

在基于Mininet的使用下,可以轻易的在自己的笔记本上测试一个软件定义网络(software-defined Networks),对基于OpenFlow、Open vSwitch的各种协议等进行开发验证,或者验证自己的想法。且所有的代码几乎可以无缝迁移到真实的硬件环境中,在实验室里,一行命令就可以创建一个支持SDN的任意拓扑的网络结构,并可以灵活的进行相关测试,验证了设计的正确后,可以轻松部署到真实的硬件环境中。

topo:用于指定网络拓扑,Mininet支持创建的网络拓扑为:minimal、single、linear和tree。

  • minimal:创建一个交换机和两个主机相连的简单拓扑。默认无—topo参数的情况下就是这样。其内部实现就是调用了single,2对应的函数。

  • single,n:设置一个交换机和n个主机相连的拓扑。

  • linear,n:创建n个交换机,每个交换机只连接一个主机,并且所有交换机成线型排列。

  • tree,depth=n,fanout=m:创建深度为n,每层树枝为m的树型拓扑。因此形成的拓扑的交换机个数为(mn-1)/(m-1),主机个数为mn。

  • —custom:在上述已有拓扑的基础上,Mininet支持自定义的拓扑,使用一个简单的Python API即可。—custom需和—topo一起使用,如mn —custom file.py —topo mytopo。

内部交互命令

创建Mininet拓扑成功后,一般可用nodes、dump、net等命令查看拓扑的节点、链路及网络等。Mininet常用的交互命令如下所示。

Mininet启动参数总结:

Mininet常用命令总结:

实验步骤:

创建single拓扑

# sudo mn --topo=single,3

说明:单一(Single)拓扑指整个网络拓扑中交换机有且只有一个,交换机可以下挂一个或多个主机,本例创建了一个交换机、3个主机,3个主机都下挂在一个交换机下。

创建linear(线性)拓扑

# sudo mn --topo=linear,3

说明:线性(linear)拓扑指交换机连接呈线形排列,且每个交换机所连接主机数目只有一个,本例创建了3个交换机、3个主机,3个主机分别下挂在一个交换机下。

创建树形(tree)拓扑

# sudo mn --topo=tree,depth=2,fanout=2

说明:树形(tree)拓扑指交换机连接成树形排列,且每个交换机所连接主机一般有多个关联使用参数depth及fanout,本例创建了depth为2,fanout为2的拓扑,表示交换机深度即层数为2,每个交换机下挂2个设备。

创建自定义拓扑

# cd /home/openlab/openlab/mininet/custom
# sudo mn --custom topo-2sw-2host.py --topo mytopo

自定义(custom)拓扑指python编写文件file.py,执行此脚本即可创建定义的拓扑,—custom与—topo联用,在custom目录下存在topo-2sw-2host.py文件,本例调用此文件构建拓扑。

执行net命令显示链接信息

执行nodes命令查看节点信息

执行links查看链路健壮性信息

执行pingall验证所有主机间通信并查看结果

进入设备可视化操作界面

清除释放Mininet构造配置的交换机及主机

Mininet可视化构建网络拓扑

启动MiniEdit
Miniedit拓扑建立
Miniedit属性配置
Miniedit运行

点击左下角“run”,即可运行设置好的网络拓扑,同时在后台可以看到相应的配置信息。运行后对交换机、主机进行右击长按,可查看交换机的bridge信息及打开Host的终端,交换机信息如下:

Miniedit保存脚本

miniedit设置好拓扑后,可通过选择File-Export Level 2 Script,将其保存为python脚本,默认在mininet/examples目录下,通过chmod给此脚本权限后,直接运行即可重现拓扑。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL数据库】MySQL数据库管理

MySQL数据库管理 一、数据库简述1.1简介1.2数据库基本概念1.3数据库的发展史1.3主流的数据库介绍1.4数据库的类型1.4.1关系型数据库特点1.4.2非关系型数据库介绍 1.5SQL语言分类 二、数据库基础应用2.1查看数据库2.2创建新的库、表2.3删除库、表2.4管理表中的数据记录2.4.1插入…

Java新技术和趋势:如何应对Java生态的变化和发展趋势

章节一:引言 Java是一门广泛使用的编程语言,具有强大的生态系统和持续的发展。随着时间的推移,Java生态系统不断演进和改变,出现了许多新技术和趋势。在本文中,我们将探讨一些最新的Java技术和趋势,并分享…

路径规划算法:基于适应度相关优化的路径规划算法- 附代码

路径规划算法:基于适应度相关优化的路径规划算法- 附代码 文章目录 路径规划算法:基于适应度相关优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能…

路径规划算法:基于社会群体优化的路径规划算法- 附代码

路径规划算法:基于社会群体优化的路径规划算法- 附代码 文章目录 路径规划算法:基于社会群体优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化…

【Linux】Nginx+Tomcat负载均衡、动静分离、多实例部署

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 NginxTomcat负载均衡、动静分离、多实例部署 一、Tomcat 多实例部署1.安装好 jdk 及 tomcat2.配置 tomcat 环境变量3.修改 tomcat2 中的 server.xml 文件4.修改各 tomcat 文件…

RocketMQ源码解析之消息存储机制

RocketMQ是一款开源的分布式消息中间件,在大数据、云计算等领域具有广泛的应用。要想深入了解RocketMQ的源码实现,首先需要了解它的消息存储机制。 RocketMQ采用的是文件存储的方式,即RocketMQ将消息以文件的形式存储在磁盘上。具体来说,RocketMQ将消息存储在commitlog文件…

精通postman教程(三)postman各模块详解

作为一名测试工程师,那么Postman绝对是大伙必备的工具之一。 在这个系列教程中,我将为大伙详细讲解如何使用Postman进行API测试。 今天我为大伙介绍Postman的各个模块,让你们快速上手这款工具。 一、顶部及左侧工作栏 1、My Workspace - …

java基础(多线程)-常用方法具体使用

一、Thread.start()方法 start()方法:启动子线程 new Thread();当前线程的状态为NEW 调用start()方法之后当前线程的状态变为RUNNABLE 二、Thread.sleep()静态方法 1. 调用sleep会让当前线程从Running进入Timed Waiting 状态 2.其他线程可以使用interrupt方法…

ES6相关概念

什么是ES6? ES 的全称是 ECMAScript , 它是由 ECMA 国际标准化组织,制定的一项脚本语言的标准化规范。 为什么使用 ES6 ? 每一次标准的诞生都意味着语言的完善,功能的加强。JavaScript语言本身也有一些令人不满意的地方。 变量提升特性增加了程序运行…

一文讲清超算,高性能计算,并行计算,分布式计算的区别

摘要: 超算、高性能计算、并行计算和分布式计算是计算领域中的重要概念,但它们之间的区别常常令人困惑。本文将为你解析它们的概念与特点,让你在这个领域里轻松游刃有余。 ... ... 超算、高性能计算、并行计算和分布式计算是计算领域中的重要概念&#x…

LVS + Keepalived群集

文章目录 LVS Keepalived1 Keepalived及其工作原理2 一个健康的集群的特点3 Keepalived常见问题脑裂3.1 原因3.2 预防3.3 配置 4 部署keepalived4.1 部署192.168.146.204.2 部署192.168.146.30 5 LVSKeepalived高可用群集5.1 部署192.168.146.50(nginx)5.2 部署192.168.146.60…

在家就能赚钱的方法,我不允许你还不知道

近年来,随着互联网的迅猛发展,具有敏锐嗅觉的人们只需利用互联网,就能愉快地获取收入。一般而言,在线赚钱所需的投资较少,有时只需一台可上网的电脑或手机即可满足,因此有时被称为“零成本或低成本网络赚钱…

Vue学习 之 第一个Vue应用

第一个 Vue 应用 安装WebStorm 在这之前,已下载安装好了WebStorm。 打开WebStorm,点击”“就可以创建一个新的应用。 项目文件目录地址: /Users/morris/WebstormProjects 或者在 file -> new priject 也可以新建一个项目 新建一个 ht…

中小商户如何实现门店数字化运营与管理,有没有好用的工具推荐?

中小商户开展门店数字化运营与管理,能够实现在线支付、退货、换货等快速操作,针对性的精准营销和服务,增加客户忠诚度。 门店数字化运营与管理可以帮助商家建立全面、实时的业务数据管理系统,提高工作效率和客户满意度&#xff0c…

线程池的主要处理流程及常用方法

线程池的主要处理流程及常用方法 更多优秀文章,请扫码关注个人微信公众号或搜索“程序猿小杨”添加。 一、主要处理流程: 当调用线程池execute() 方法添加一个任务时, threadPoolExecutor.execute,具体代码如下: p…

013 - STM32学习笔记 - DMA_存储器到外设

011 - STM32学习笔记 - DMA_存储器到外设 DMA存储器到外设 上节学习了DMA的存储器到存储器,这节了解一下存储器到外设,以存储器到USART1为例,DMA的配置函数M2P_DMA_Config流程跟上节的基本一致,区别在于需要选择DMA的通道和数据…

企业成本发票不足,利润虚高,此类问题该如何解决?

《税筹顾问》专注于园区招商,您的贴身节税小能手,合理合规节税! 企业利润很高的情况下,缺成本发票的问题又很严重,那么需要缴纳的企业所得税就会高的吓人了,那么企业利润很容易就超过300万,这样…

汉明码(Hamming Code)底层原理

汉明码(Hamming Code)底层原理 3Blue1Brown:Hamming Code【Part1】 3Blue1Brown:Hamming Code【Part2】 Hamming Code如何检查错误和定位错误? 检查错误通过奇校验或偶校验确定是否发生错误 定位错误通过依次对行和列…

2023ISCC web wp

文章目录 1.羊了个羊2.小周的密码锁3.老狼老狼几点了4.ISCC疯狂购物节-15.ChatGGG6.Where_is_your_love7.ISCC内部零元购-28.ISCC单身节抽奖9.上大号说话10.ISCC滥用职权-3 1.羊了个羊 在url前缀加上view-source:来查看源码,在vue.global.js中发现可疑字符串。 两次…

这个数据机构是二叉树

文章目录 前言一、二叉树的链式存储二、二叉树链式结构的实现二叉树的结构设计手动构建二叉树二叉树的前序遍历二叉树的中序遍历二叉树的后序遍历二叉树的层序遍历计算二叉树大小计算叶子节点个数计算二叉树高度计算第K层的节点个数查找某个值对应的节点二叉树的销毁 三、完整代…