Mininet介绍及安装
什么是Mininet
Mininet是由一些虚拟的终端节点(end-hosts)、交换机、路由器连接而成的一个网络仿真器,它采用轻量级的虚拟化技术使得系统可以和真实网络相媲美。
Mininet可以很方便地创建一个支持SDN的网络:host就像真实的电脑一样工作,可以使用ssh登录,启动应用程序,程序可以向以太网端口发送数 据包,数据包会被交换机、路由器接收并处理。有了这个网络,就可以灵活地为网络添加新的功能并进行相关测试,然后轻松部署到真实的硬件环境中。
Mininet的特性
可以简单、迅速地创建一个支持用户自定义的网络拓扑,缩短开发测试周期
可以运行真实的程序,在Linux上运行的程序基本上可以都可以在Mininet上运行,如Wireshark
Mininet支持Openflow,在Mininet上运行的代码可以轻松移植到支持OpenFlow的硬件设备上
Mininet可以在自己的电脑,或服务器,或虚拟机,或者云(例如Amazon EC2)上运行
Mininet提供python API,简单易用
Mininet 是一个开源项目,简单好用成本低,代码托管在github上:
https://github.com/mininet/mininet
目前有三种方式使用mininet
- Easiest "installation" - use our pre-built VM image!
- Next-easiest option: use our Ubuntu package!
- Native installation from source
三种方式都比较方便,以下第三种方式举例(第三种貌似最复杂)
1.从Github上获取mininet源码
- git clone git://github.com/mininet/mininet #这里需要提前安装git,ubuntu环境下还需要+sudo
2.安装获得源码可以选择mininet的版本,最新或者稳定都可以(目前最新的已经是2.3.0d1版本)
- xxt@xxt-VirtualBox:~$ cd mininet/
- xxt@xxt-VirtualBox:~/mininet$ git tag
- 1.0.
- 2.0.
- 2.1.
- 2.1.0p1
- 2.1.0p2
- 2.2.
- 2.2.0b0
- 2.2.0b1
- 2.2.0b2
- 2.2.0b3
- 2.2.0rc1
- 2.2.0rc2
- 2.2.
- 2.2.1d2
- 2.2.1rc1
- cs244-spring--final
- xxt@xxt-VirtualBox:~/mininet$
选择你所需要的版本
- git checkout <release tag> #这里的release tag就是你想选取的版本
此时就可以开始安装了
- mininet/util/install.sh [options]
- -a: 全部安装
- -nfv:仅安装MINIENT OPENFLOW引用多SWITCH 和OPEN VSWITCH
- -s mydir: 指定目录
3.测试
如果上面的步骤没有报错,那就可以试一下mininet了
- xxt@xxt-VirtualBox:~/mininet$ sudo mn
- [sudo] password for xxt:
- *** Creating network
- *** Adding controller
- *** Adding hosts:
- h1 h2
- *** Adding switches:
- s1
- *** Adding links:
- (h1, s1) (h2, s1)
- *** Configuring hosts
- h1 h2
- *** Starting controller
- c0
- *** Starting switches
- s1 ...
- *** Starting CLI:
- mininet>
这是一个最简单的拓扑,包括两个host和一个switch
然后可以互相ping一下
- mininet> pingall
- *** Ping: testing ping reachability
- h1 -> h2
- h2 -> h1
- *** Results: % dropped (/ received)
mininet>
可以通过help命令了解其他功能
- mininet> help
- Documented commands (type help <topic>):
- ========================================
- EOF gterm iperfudp nodes pingpair py switch
- dpctl help link noecho pingpairfull quit time
- dump intfs links pingall ports sh x
- exit iperf net pingallfull px source xterm
- You may also send a command to a node using:
- <node> command {args}
- For example:
- mininet> h1 ifconfig
- The interpreter automatically substitutes IP addresses
- for node names when a node is the first arg, so commands
- like
- mininet> h2 ping h3
- should work.
- Some character-oriented interactive commands require
- noecho:
- mininet> noecho h2 vi foo.py
- However, starting up an xterm/gterm is generally better:
- mininet> xterm h2
- mininet>
这里可以看到有许多功能都集成在mininet中,可以试几个
比如查看节点(nodes)
- mininet> nodes
- available nodes are:
- c0 h1 h2 s1
- mininet>
可以看到当前的拓扑里有四个节点,包括两个host,一个switch,还有一个控制器c0
查看连接情况(net)
- mininet> net
- h1 h1-eth0:s1-eth1
- h2 h2-eth0:s1-eth2
- s1 lo: s1-eth1:h1-eth0 s1-eth2:h2-eth0
- c0
- mininet>
可以看到h1的port0和s1的port1连接,h2的port0和s2的port2连接
dump(这不知道怎么翻译,好多语言里都有这个方法。。。)
- mininet> dump
- <Host h1: h1-eth0:10.0.0.1 pid=>
- <Host h2: h2-eth0:10.0.0.2 pid=>
- <OVSSwitch s1: lo:127.0.0.1,s1-eth1:None,s1-eth2:None pid=>
- <Controller c0: 127.0.0.1: pid=>
- mininet>
可以看到h1-eth0的ip是10.0.0.1 ,h2-eth0的ip是10.0.0.2 , s1的ip是127.0.0.1(本地)
还有一些集成在mininet里的工具,例如有名的网络性能测试工具iperf
- mininet> iperfudp
- *** Iperf: testing UDP bandwidth between h1 and h2
- *** Results: ['10M', '9.98 Mbits/sec', '9.98 Mbits/sec'] #这里结果分别是上行带宽和下行带宽 , 前面的那个10M是什么就不太清楚了
- mininet> iperf
- *** Iperf: testing TCP bandwidth between h1 and h2
- *** Results: ['17.6 Gbits/sec', '17.6 Gbits/sec'] #上行带宽和下行带宽
- mininet>
退出 (quit 或 exit)
- mininet> quit
- *** Stopping controllers
- c0
- *** Stopping links
- ..
- *** Stopping switches
- s1
- *** Stopping hosts
- h1 h2
- *** Done
- completed in 1119.156 seconds
- xxt@xxt-VirtualBox:~/mininet$
功能很多,这里就不一一赘述了,如有不对的地方,欢迎批评指出。。
Mininet介绍及安装的更多相关文章
- 从零自学Hadoop(19):HBase介绍及安装
阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一篇, ...
- 从零自学Hadoop(14):Hive介绍及安装
阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 本系列已 ...
- Python之路-python(mysql介绍和安装、pymysql、ORM sqlachemy)
本节内容 1.数据库介绍 2.mysql管理 3.mysql数据类型 4.常用mysql命令 创建数据库 外键 增删改查表 5.事务 6.索引 7.python 操作mysql 8.ORM sqlac ...
- Bash on Windows 抢鲜测试 -- 介绍及安装
前言 微软在上周的Windows BUILD大会上宣布,WIN10将引入原生Bash,并将很快在技术预览版中推出. 如此一来,windows的命令行工具就不再只有cmd和powershell了,我们可 ...
- Tyk API网关介绍及安装说明
Tyk API网关介绍及安装说明 Tyk是一个开源的轻量级API网关程序. 什么是API网关 API网关是一个各类不同API的前置服务器.API网关封装了系统内部架构,对外提供统一服务.此外还可以实现 ...
- Python介绍、安装、使用
Python介绍.安装.使用 搬运工:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Python语言介绍 说到Python语言,就不得不说一下它的创始人Guido van Rossu ...
- Redis介绍以及安装(Linux)
Redis介绍以及安装(Linux) redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的 ...
- 自动化运维工具之 Ansible 介绍及安装使用
一.初识Ansible 介绍: Absible 使用 模块(Modules)来定义配置任务.模块可以用标准脚本语言(Python,Bash,Ruby,等等)编写,这是一个很好的做法,使每个模块幂等.A ...
- 【兄弟连ThinkPHP】1、介绍和安装
琢磨了好几天的ThinkPHP了,兄弟连的视频真心不错,下面是记得一些要点,只做备忘,有兴趣的朋友请去百度兄弟连. ## ThinkPHP 3 介绍及安装#讲师:赵桐正微博:http://weibo. ...
随机推荐
- 二·、spring成长之路——委派设计模式和单例设计模式
3.委派设计模式 设计思想:就是多个类去完成一项的工作,其中一个类去分发任务,其他类做具体的任务,而具体表现是这个委派类的工作,具体过程是被委派类来操作的 [ITask.java]定义工作的统一标准 ...
- Delphi Firemonkey在主线程 异步调用函数(延迟调用)
先看下面的FMX.Layouts.pas中一段代码 procedure TCustomScrollBox.MouseDown(Button: TMouseButton; Shift: TShiftSt ...
- 第一篇随笔, 正在做 ESP32 , STM32 , 树莓派 RaspberryPi 的创客工具
先随便写写一些思路, 以后再整理. 这段时间笔者做了一些硬件开发, 领悟了一些事情. 1 - 在常规创客的角度上, 硬件开发所需的知识面比较广, 非常广, 但不算太深. 2 - 发现硬件开发由于其特殊 ...
- celery知多少
Celery 1.什么是Celery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 Celery架构 Celery的架构由三部分组成 ...
- kubernetes命令式容器应用编排/部署应用/探查应用详情/部署service对象/扩缩容/修改删除对象
部署Pod应用 创建delpoyment控制器对象 [root@master ~]# kubectl run myapp --image=ikubernetes/myapp:v1 --port=80 ...
- 使用jenkins中遇到的问题汇总/持续更新
jenkins产生大量日志文件 question: [DNSQuestion@1446063419 type: TYPE_IGNORE index 0, class: CLASS_UNKNOWN in ...
- MySQL存取特殊数据类型
一.存取大文本数据 数据库设计: DDL: CREATE TABLE `article` ( `id` ) COLLATE utf8_bin NOT NULL COMMENT '编号', `conte ...
- 20155317 《Java程序设计》0510上课考试博客
20155317 <Java程序设计>0510上课考试博客 二.Arrays和String单元测试 在IDEA中以TDD的方式对String类和Arrays类进行学习 测试相关方法的正常, ...
- 20155323刘威良第一次实验 Java开发环境的熟悉(Linux + IDEA)
20155323刘威良第一次实验 Java开发环境的熟悉(Linux + IDEA) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序 ...
- 20155327 信息安全技术 实验二 Windows口令破解
课程:信息安全概论 班级:1553 姓名:了李百乾 学号:20155327 成绩: 指导教师: 李冬冬 实验日期及时间: 2017年10月11日 15:30-18:00 必修/选修:必修 实验序号:0 ...