mininet的安装和基本指令的了解

安装过程

在官网和一些博客的指导下,在虚拟机里安装mininet,我使用的是源代码安装方法,首先从GitHub上获取源代码git clone git://github.com/mininet/mininet,然后安装mininet,用到的指令是mininet/util/install.sh -n3V 2.5.0,中途遇到了很多问题,例如虚拟机设置出错,mininet测试报错No default OpenFlow controller found for default switch!

经过资料查找,用git clone git://github.com/mininet/mininet ,cd mininet/util/,sudo ./install.sh -a指令安装OpenFlow模块.

现在安装了控制器,可以进行一些mininet简单的操作和相应的拓扑应用。

拓扑类型和基本指令

拓扑类型有很多其中自带型拓扑有:

1.单-拓扑:一个交换机,放射地连接一个或多个主机。



2.最小化拓扑:只有一个交换机,交换机下面连接两个主机。



3.线性拓扑:交换机连接呈线形排列,且每一个交换机下只能挂一个主机。



4.树形拓扑:交换机的连接呈树形,且每个交换机下可以挂多个交换机。



5.反向拓扑:这种拓扑类型与单一拓扑类型相同。



6.环形拓扑:用到很少,在网上没有找到相关拓扑图。0

除以上自带拓扑外,还可以用python文件编写或者用miniedit工具创建根据实际需要的自定义拓扑。参考资料

这里列举一些mininet内部交互命令:

dump:打印节点信息

gterm:给定节点上开启gnome-terminal

xterm:给定节点上开启xterm

intfs:列出所有网络接口

iperf:两个节点之间使用TCP尽心那个带宽测试

iperfudp:两个节点间使用UDP进行带宽测试

net:显示网络连接情况

noecho:运行交互式窗口,关闭回应(echoing)

pingpair:在两个节点之间互ping测试

source:从外部文件中读取命令

dpctl:在所有交换机上用dpctl执行相关命令,本地为tcp127.0.0.1:6634

link:禁用或启用两个节点间的链路

nodes:列出所有的节点信息

pingall:所有节点间互ping

py:执行python表达式

sh:运行外部Shell命令

quit/exit:退出

mininet拓扑实战

我这里用miniedit可视化工具进行自定义拓扑的创建。

拓扑的创建和编辑

首先进入mininet/example文件夹,用sudo ./miniedit.py打开miniedit可视化工具进行相应操作。

创建自定义拓扑如图所示:



控制器、交换机、主机的设置如下:







最后在Edit功能中的preference中勾选Start CLI,以便输入内部指令。



可以看到拓扑创建完成且可以输入内部指令了。

对自定义拓扑一些简单的测试。

首先是最基本的pingall,links,net检查各链路能否联通,各主机能否进行交互。结果如下:



可以看到丢包率为0,各主机能够连通,链路也没问题,证明拓扑连接没有问题。

接下来进行设备操作,用iperf测试两节点间iperf TCP带宽。

测试总结

我之所以创建一个这样的线性拓扑,目的是想探究主机之间的带宽和链路的关系,以及数据传输方式是否会因随机分配链路而产生带宽的变化,以上进行iperf TCP带宽测试中,我分别测了三次h1-h4,h1-h3,h1-h2,的带宽得出的平均值约为41,43,46。得到有两个结论,第一:由于链路的长短会产生带宽的差距,h1到h2只需要经过一个交换机,因此带宽会大一点,h1到其他主机要经过不同交换机和不同链路,因此带宽变小。第二:测试同一组主机,三次每次的带宽不同,得到的结论是每次交换数据会经过不同的链路分配,导致同一组主机之间的数据交换带宽也不是时刻相同。

以上就是我对mininet的基础框架学习和简单的自定义拓扑实验,不懂的东西还有很多,例如更复杂的拓扑数据如何传输,丢包率的设置影响数据传输等,会在接下来的学习中尽力学到更多的相关知识。

mininet实践应用的更多相关文章

  1. Ubuntu16.04 RYU pip命令安装

    pip命令安装方法 sudo apt install gcc python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev zlib1g-dev ...

  2. P4语言编程快速开始 实践二

    参考:P4语言编程快速开始 上一篇系列博客:P4语言编程快速开始 实践二 Demo 2 本Demo所做的修改及实现的功能: 为simple_router添加一个计数器(counter),该计数器附加( ...

  3. P4语言编程快速开始 实践一

    参考:P4语言快速开始 感谢杨老师的分享! 前言及P4程序请参考原文,本文主要是对文章中的两个动手实例的实践记录. 1.通过behavioral-model运行simple_router样例 执行命令 ...

  4. SDN 网络系统之 Mininet 与 API 详解

    SDN 网络系统之 Mininet 与 API 详解 Mininet 是轻量级的软件定义网络系统平台,同时提供了对 OpenFlow 协议的支持.本文主要介绍了 Mininet 的相关概念与特性,并列 ...

  5. 基于OVS的VLAN虚拟化简易实践方案

    基于OVS的VLAN虚拟化简易实践方案 前言 本实验基于ovs的vlan流表匹配,根据端口进行vlan标签插入.手工配置ovs,使其具有vlan虚拟化方案. 实验拓扑 ---- ---- | h1 | ...

  6. 实验4:开源控制器实践——OpenDaylight

    实验4:开源控制器实践--OpenDaylight 一.实验目的 能够独立完成OpenDaylight控制器的安装配置: 能够使用Postman工具调用OpenDaylight API接口下发流表. ...

  7. 实验3:OpenFlow协议分析实践

    作业链接:实验3:OpenFlow协议分析实践 一.实验目的 能够运用 wireshark 对 OpenFlow 协议数据交互过程进行抓包: 能够借助包解析工具,分析与解释 OpenFlow协议的数据 ...

  8. 实验2:Open vSwitch虚拟交换机实践

    作业链接:实验2:Open vSwitch虚拟交换机实践 一.实验目的 能够对Open vSwitch进行基本操作: 能够通过命令行终端使用OVS命令操作Open vSwitch交换机,管理流表: 能 ...

  9. 实验1:SDN拓扑实践

    作业链接:实验1:SDN拓扑实践 一.实验目的 能够使用源码安装Mininet: 能够使用Mininet的可视化工具生成拓扑: 能够使用Mininet的命令行生成特定拓扑: 能够使用Mininet交互 ...

随机推荐

  1. Hive改表结构的两个坑|避坑指南

    Hive在大数据中可能是数据工程师使用的最多的组件,常见的数据仓库一般都是基于Hive搭建的,在使用Hive时候,遇到了两个奇怪的现象,今天给大家聊一下,以后遇到此类问题知道如何避坑! 坑一:改变字段 ...

  2. Python3基础数据类型(数字、字符串、元组、列表、集合、字典)

    笔记参考了菜鸟教程 Python 中的变量不需要声明,赋值才创建.赋值给变量的是什么类型变量就是什么类型 多个变量赋值 1 a, b, c = 1, 2, "runoob" 标准数 ...

  3. 据说是面试题:由【if(a==1&&a==2&&a==3)】引发的思考探讨

    有一天,突然在一个微信群有个群友发了张图片抛出了一道题,如图: ​

  4. Codeforces Round #672 (Div. 2) A - C1题解

    [Codeforces Round #672 (Div. 2) A - C1 ] 题目链接# A. Cubes Sorting 思路: " If Wheatley needs more th ...

  5. 基础篇:深入JMM内存模型解析volatile、synchronized的内存语义

    目录 1 java内存模型,JMM(JAVA Memory Model) 2 CPU高速缓存.MESI协议 3 指令重排序和内存屏障指令 4 happen-before原则 5 synchronize ...

  6. Spring Boot 第三弹,一文带你了解日志如何配置?

    前言 日志通常不会在需求阶段作为一个功能单独提出来,也不会在产品方案中看到它的细节.但是,这丝毫不影响它在任何一个系统中的重要的地位. 今天就来介绍一下Spring Boot中的日志如何配置. Spr ...

  7. Centos-网络下载文件-wget

    wget 指定URL从网络上下载某个文件,需要网络连接 相关选项 -nc 不覆盖同名文件 -q    安静下载,无输出 -v    显示下载详情 -O   指定保存目录或重命名下载文件名 -c 断点续 ...

  8. Centos-删除文件或目录-rm

    rm 删除目录或者文件,如果是链接文件,则只删除这个链接文件而不是链接指向的文件 相关选项 -r 递归删除目录 -f 忽略不存在提示和确认提示,本身确认提示系统默认添加-i参数 -i 删除文件前提示, ...

  9. Windows10下JDK8的下载安装与环境变量的配置

    Windows10下JDK8的下载安装与环境变量的配置 下载JDK8(64位) 链接:https://pan.baidu.com/s/10ZMK7NB68kPORZsPOhivog 提取码:agsa ...

  10. Python实现的数据结构与算法之双端队列详解

    一.概述 双端队列(deque,全名double-ended queue)是一种具有队列和栈性质的线性数据结构.双端队列也拥有两端:队首(front).队尾(rear),但与队列不同的是,插入操作在两 ...