mininet基本操作

2023-05-16

mininet是由斯坦福大学基于Linux Container架构开发的一个进程虚拟化网络仿真工具,可以创建一个包含主机,交换机,控制器和链路的虚拟网络,其交换机支持OpenFlow,具备高度灵活的自定义软件定义网络。

在ubuntu系统中安装mininet比较简单,直接通过命令行安装即可:

apt install mininet

安装完成之后,即可在终端使用mn命令进行相关操作。不过这种方式相对比较抽象,不是特别直观。mininet 2.2.0版本之后包含了miniedit程序,可以进行可视化的配置。

直接在系统中搜索 miniedit.py,然后切换到该路径下,直接使用python miniedit.py即可启动。需要注意的是,该程序支持python2.7版本,如果使用python3的版本会出现诸如print函数报错之类的常见错误。另外需要tk的支持,apt install python-tk进行安装。

启动之后界面如下图所示:

 可以直接在主窗口中画出host,switch 以及controller等各个组件,随后使用run菜单下单run即可运行。首次运行的时候出现如下错误:

Cannot find required executable controller.
Please make sure that it is installed and available in your $PATH:
(/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin)

可以通过如下命令解决此问题:

sudo ln /usr/bin/ovs-controller /usr/bin/controller

重新执行,则显示结果如下:

 通过File菜单中的 Export Level 2 Script 命令,可以将相关设计保存为python源代码,之后可以随时复现该结构。例如上述结构的python代码如下:

#!/usr/bin/python

from mininet.net import Mininet
from mininet.node import Controller, RemoteController, OVSController
from mininet.node import CPULimitedHost, Host, Node
from mininet.node import OVSKernelSwitch, UserSwitch
from mininet.node import IVSSwitch
from mininet.cli import CLI
from mininet.log import setLogLevel, info
from mininet.link import TCLink, Intf
from subprocess import call

def myNetwork():

    net = Mininet( topo=None,
                   build=False,
                   ipBase='10.0.0.0/8')

    info( '*** Adding controller\n' )
    c0=net.addController(name='c0',
                      controller=Controller,
                      protocol='tcp',
                      port=6633)

    info( '*** Add switches\n')
    s1 = net.addSwitch('s1', cls=OVSKernelSwitch)
    s2 = net.addSwitch('s2', cls=OVSKernelSwitch)

    info( '*** Add hosts\n')
    h2 = net.addHost('h2', cls=Host, ip='10.0.0.2', defaultRoute=None)
    h4 = net.addHost('h4', cls=Host, ip='10.0.0.4', defaultRoute=None)
    h3 = net.addHost('h3', cls=Host, ip='10.0.0.3', defaultRoute=None)
    h5 = net.addHost('h5', cls=Host, ip='10.0.0.5', defaultRoute=None)
    h1 = net.addHost('h1', cls=Host, ip='10.0.0.1', defaultRoute=None)

    info( '*** Add links\n')
    net.addLink(s1, h1)
    net.addLink(s1, h3)
    net.addLink(s2, h4)
    net.addLink(s2, h2)
    net.addLink(s2, h5)

    info( '*** Starting network\n')
    net.build()
    info( '*** Starting controllers\n')
    for controller in net.controllers:
        controller.start()

    info( '*** Starting switches\n')
    net.get('s1').start([c0])
    net.get('s2').start([c0])

    info( '*** Post configure switches and hosts\n')

    CLI(net)
    net.stop()

if __name__ == '__main__':
    setLogLevel( 'info' )
    myNetwork()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mininet基本操作 的相关文章

  • HTML5基础知识

    目录 一 初识HTML 二 网页基本标签 2 1标题标签 2 3换行标签 2 4水平线标签 2 5字体样式标签 2 6注释和特殊符号 三 图像 xff0c 超链接 xff0c 网页布局 3 1图像标签 3 2链接标签 3 3块元素和行内元素
  • SQL Server 调用程序集(dll文件)

    1 生成对应的dll项目文件 如下图所示 xff08 示例 xff09 xff1a 2 打开SQL SERVER数据库 xff0c 创建程序集 xff0c 如下操作 找到 程序集 61 右击选中 新建程序集 点击 常规 xff0c 操作如下
  • 树莓派3b+镜像的安装以及常用的登录方式及树莓派换源

    安装镜像 1 xff0c 格式化内存卡用第一个工具 2 xff0c 把镜像写道内存卡中用第二个工具 登录 串口登录 因为树莓派默认的是蓝牙连接 xff0c 我们要断开蓝牙连接 xff0c 打开串口连接 将安装好的sd卡文件夹下的 cmdli
  • 通过kettle工具实现数据清洗与转换(实例)

    一 对文件merge csv进行完全去重 1 使用Kettle工具创建转换repeat transform xff0c 并添加 CSV文件输入 控件 唯一行 xff08 哈希值 xff09 控件以及Hop跳连接线 2 配置 CSV文件输入
  • JavaWed开发环境与搭建

    一 jdk下载与安装 1 下载 xff1a 进入官网 xff08 http www oracle com xff09 下载对应版本即可 2 设置环境变量 需要设置环境变量如下 xff08 JDK安装的位置 xff09 二 TomCat下载与
  • 【树莓派问题】树莓派python虚拟环境无法安装scipy库

    目录 问题描述 问题解决方法 报错关键字 xff1a Building wheel for numpy PEP 517 started Building wheel for numpy PEP 517 still running pip s
  • Codeblocks修改字体

    右上角settings editor general settings choose 选择好之后一路确定OK就可以了 但是大家谨慎改 xff0c 因为20 03版本的会报错 xff0c 就像我这样 xff0c 不知道其他版本修改后会不会有问
  • 论文阅读 MAML (Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks)

    Model Agnostic Meta Learning for Fast Adaptation of Deep Networks MAML 论文阅读 摘要介绍模型不可知元学习元学习问题定义模型不可知元学习算法 MAML种类监督回归和分类强
  • RIPV2动态路由协议—网络基础

    RIPV2动态路由协议 一 实验题目1 IP地址规划2 拓扑搭建3 配置IP地址与环回接口4 RIPV2的配置5 RIP的扩展配置 xff1a 6 成果展示 二 动态路由1 动态路由协议 xff1a 2 动态路由协议的缺点 xff1a 3
  • VC6.0 MFC 单文档 贪吃蛇游戏 基础入门

    贪吃蛇游戏 一 整体思路 1 贪吃蛇对大家来说并不陌生 xff0c 既然要设计贪吃蛇 xff0c 那么我们首先要定义蛇和食物这样两个对象 xff0c 并给它们添加一些成员变量 2 添加虚函数OnInitialUpdate 做一些初始化工作
  • 启动错误求助

    org springframework beans factory UnsatisfiedDependencyException Error creating bean with name 39 userController 39 Unsa
  • C++ 入门(编写第一个C++程序)

    第一章 遇见C 43 43 欢迎进入C 43 43 世界 xff01 1 1 C 43 43 介绍 C 43 43 是在C语言的基础上添加了面向对象和泛型编程的支持 xff0c 它是21世纪最重要的编程语言之一 xff0c C 43 43
  • yield和return的区别-- 超详细

    首先比较下return 与 yield的区别 xff1a return xff1a 在程序函数中返回某个值 xff0c 返回之后函数不在继续执行 xff0c 彻底结束 yield 带有yield的函数是一个迭代器 xff0c 函数返回某个值
  • Linux修改登录密码

    root 权限修改用户名密码 执行 xff1a passwd root 按照提示输入新的密码两次 如果用xshell连接的情况下 xff0c 需要重新验证新的密码 非root 权限修改用户名密码 执行 xff1a passwd userna
  • Ubuntu 更换apt-get源

    Ubuntu最初的apt get源在国外网站 xff0c 因此很多时候通过apt get安装软件速度会很慢 我们可以将apt get源更换成国内镜像源 xff0c 来解决速度慢的问题 更换apt get源主要有以下四个步骤 xff1a 1
  • Loadrunner11安装_简单使用基础教程

    资源均来源于网络 xff0c 若侵权 xff0c 请联系我删除 文章目录 一 Loadrunner11简介 二 Loadrunner11安装教程 三 Virtual User Generator教程 四 Controller教程 五 Ana
  • vue2快速安装环境,创建vue2项目教程(windows)

    1 安装环境 首先首先进入node js xff08 v12 13 0 msi版本 xff0c 最新版可能npm版本太高了 xff0c 会报错 xff0c 不过卸载重新装低版本也行 xff09 官网安装node js xff0c node
  • 树莓派4b安装docker报错解决

    树莓派安装docker参考 xff1a 方法1 xff1a 官方文档 xff08 脚本直接安装 xff09 方法2 xff1a 官方版本中译 xff08 嫌上一个麻烦的可以直接看这个 xff09 方法3 xff1a 非脚本安装方法 方法4
  • 2022创业基础——李家华等章节测试答案以及期末考试答案

    2022创业基础 李家华等章节测试答案以及期末考试答案 资源均来源于网络 xff0c 若侵权 xff0c 请联系我删除 需要的可以到我的阿里云盘下载 xff1a https www aliyundrive com s bkTQKG16TmC
  • java中的<和>分别是什么意思

    今天在做java笔试题的时候 xff0c 有一题出现了这个符号 xff0c 由于我不认识这个符号就做错了 xff0c 题目如下 xff1a 这题的答案是A 而我选了C 后面百度才知道 amp lt 的意思是小于 lt 符号 xff0c 在用

随机推荐

  • 由ip地址和子网掩码求网络号、主机号、广播地址(超详细)

    话不多说 xff0c 直接进入正题 xff0c 如果有概念理解不清楚的话 xff0c 可以去看文章后面的部分 xff0c 我直接在前面给出计算方法 1 用二进制数表示IP地址 在进行计算之前 xff0c 我们首先要学会十进制的IP地址怎么转
  • Arcgis加载在线地图(内涵各种在线地图)

    一 连接在线地图 1 首先打开Arcgis xff0c 找到GIS服务器 xff0c 双击添加WMTS服务器 xff1a 2 在URL框中填入在线地图URL xff1a http xdc at map wmts xff0c 点击获取图层 x
  • SpringBoot+Vue+EasyExcel+MybatisPlus+Lombok前后端分离实现Excel文件导入导出(简单实用版)

    一 前言 文章参考自两位大佬的博客 xff1a http events jianshu io p 4242556280fa https www w3xue com exp article 20228 80302 html 我在此基础上做了补
  • QGIS数据可视化学习笔记04(完结)——POI检索和数据上图

    一 POI数据检索概念 什么是POI检索 xff1f 为什么要使用POI检索 xff1f 有的时候 xff0c 我们可能不知道某个位置的地址 xff0c 比如说北京朝阳图书馆 xff0c 这个位置没有任何部门会去公布位置信息 xff0c 但
  • PYQT5学习笔记05——QObject父子对象API以及案例

    一 父子对象API 我们在这里简单演示一下父子对象API的具体用法以及代码实现 xff0c 父子对象API有五个 xff0c 分别是setParent parent children findChild findChildren xff0c
  • Echarts使用本地JSON文件加载不出图表的解决方法以及Jquery访问本地JSON文件跨域的解决方法

    前言 最近需要做一个大屏展示 xff0c 需要用原生html5 43 css 43 js来写 xff0c 所以去学了一下echarts的使用 在使用的过程中难免碰到许多BUG xff0c 百度那是必不可少的 xff0c 可是这些人写的牛头不
  • [学习笔记]OpenFlow概述(1)

    个人学习笔记 xff0c 出问题请指出下 摘取 图解OpenFLow Openflow协议是由斯坦福大学提出 xff0c 最初的出发点是为了更加轻松地构建用于研究的网络 Openflow的初期设计思想 xff1a 无需设计新的硬件 xff0
  • 最优化理论——可行方向法

    最优化理论 可行方向法 算法思想算法步骤线性约束非线性约束 示例 算法思想 转化为子问题 xff1a 算法步骤 线性约束 非线性约束 示例
  • CSS——高度塌陷以及解决方法

    文章目录 前言 一 什么是高度塌陷 xff1f 二 高度塌陷的解决方法 1 解决方法 2 开启BFC 3 开启BFC的特点 总结 前言 本文主要介绍了高度塌陷产生的原因以及解决方法 一 什么是高度塌陷 xff1f 高度塌陷 在浮动布局中 x
  • 实践:理解镜像构成

    实践 xff1a 理解镜像构成 一 镜像二 容器三 镜像与容器间的关系四 多层存储五 实际操作1 定制Web服务器2 访问结果3 修改网页内容4 查看具体改动 一 镜像 镜像 xff08 Image xff09 xff1a Docker 镜
  • 深度学习知识点整理

    文章目录 数据集基础术语epochbatchNormalization 网络架构参数神经元卷积层例子 池化 pooling overlap预处理数据增强模型并行max pooling全连接层sequential模型SoftMaxSVM有监督
  • ubuntu20.04 LNMP环境搭建

    LNMP环境搭建 文章目录 LNMP环境搭建1 nginx 源码安装1 1 资源下载1 2 编译安装1 3 配置1 3 1 nginx conf配置1 3 2 将nginx添加为系统服务 1 4 验证 2 mariadb 源码安装2 1 资
  • c#连接sqlserver数据库

    之前做过java连接数据库 就以为还蛮简单的 但是中间还是踩了点坑 就连接数据库是的连接字符串的问题 我查了半天没有找到比较完整的参数设置 官网的也比较模糊不清 最后和vs的服务器与资源管理器配合 拿到了想要的参数 打开数据库 复制服务器名
  • 公文题分析

    想要抽空学点法律知识 xff0c 随时进行法律咨询 xff0c 网上办理法律事务 xff0c 怎么做 如今 xff0c 在县级市Q市 xff0c 群众只要通过手机进入 34 云司法 34 微信小程序 xff0c 就能足不出户获得优质法律服务
  • 今日申论做题感受分析

    总的来说太过于沉溺于题目所给的材料 xff0c 而忽略了自身感受和理解所带来的 xff0c 而这正也是申论希望让我们养成的能力 xff0c 我们要从宏观上形成感受 xff0c 然后再结合具体材料展开相关内容 xff0c 但是目前来说我很容易
  • 今日做题以及以后的做题思路整理

    1 言语理解不能图快只抓后面的语句 xff0c 还是要花点时间大致理解一下 2 翻译推理还是有不熟悉的地方 xff0c 后期需要弥补一下 3 逻辑填空还是需要不断积累
  • 隔年增长率变形

    普通的隔年增长率 xff1a Aa 43 Bb 61 Cc 一般会叫你通过a 和b 求出c 但是该公式的本质还是Aa 43 Bb 61 Cc xff0c 其实a和b的数值可以为任意形式 xff0c 不仅仅局限于百分数 xff0c 它仅仅只是
  • 2022.9.17

    夜抚红烛垂泪 xff0c 才觉银月满身 若人若物若非故 xff0c 心无可期念无数 流水长东恨满怀 xff0c 人生常憾憾无穷 忽下眉梢 xff0c 又上心头 xff0c 如影相随 xff0c 何羡相思
  • 2022.10.30

    新愁复旧愁 xff0c 苦痛哀伤恨
  • mininet基本操作

    mininet是由斯坦福大学基于Linux Container架构开发的一个进程虚拟化网络仿真工具 xff0c 可以创建一个包含主机 xff0c 交换机 xff0c 控制器和链路的虚拟网络 xff0c 其交换机支持OpenFlow xff0