实验一、Mininet应用实践

  1. 实验环境设置

方法一:

  1. 下载并安装虚拟机 VMware workstation;
  2. 打开虚拟机镜像( SDNHub_tutorial_VM_64-bit[NEW](可直接导入 VMware).ova ),下载链接:https://pan.baidu.com/s/1qYN_MtUboPmruHda1DgrTA 提取码:mhfi。

方法二:

git clone git://github.com/mininet/mininet

准备一个Ubuntu虚拟机;

  1. 然后从mininet官网上下载安装源码;
  2. 下面进行安装:
  3. 直接安装所有组件

cd mininet

git tag  # list available versions

git checkout -b mininet-2.3.0 2.3.0  # or whatever version you wish to install

cd ..

mininet/util/install.sh -a

  1. 安装成功

    1. 实验步骤

………这里可以各种截屏

  1. 用可视化工具 miniedit 创建一个网络拓扑,进行相应配置后,保存为 python 脚本,

运行 python 脚本重现拓扑;

1) 获取超级用户权限后,进入到 mininet/examples 文件夹中,并运行其中的

miniedit.py 文件,打开可视化工具。

  1. 在可视化工具中创建出简单的网络拓扑
  1. 右击 host→“Properties”,选择对网络拓扑结构中的主机进行相关配置。
  1. “Edit”→“Preferences”,勾选 strat CLI(允许通过交互界面对拓扑结构进行调整)

选择所支持 Openflow 协议版本。

  1. 保存为 python 文件,选择“File”→“Export Level 2 Script”。
  1. 在终端运行保存下来的 python 文件即可。
  1. 命令行创建拓扑:
  1. 最小的网络拓扑,一个交换机下挂两个主机。

sudo mn --topo single,2

  1. 每个交换机连接一个主机,交换机间相连接。本例:4 个主机,4 个交换机。
  1. 每个主机都连接到同一个交换机上。本例:3 个主机,一个交换机。
  1. 交互式界面创建主机、交换机等

1) 通过命令行“mn”,创建出最简单的拓扑结构也就是一个交换机下面直接连接两个主机,并且产生 mininet 的交互界面。

2) 输入“py net.addHost(„主机名‟)” 为拓扑结构添加主机。

3) 输入“py net.addSwitch(„交换机名称‟)”为拓扑结构添加交换机。

4) 查看拓扑结构中存在的网络设备,观察设备是否被成功添加。

  1. 对节点间进行 ping 测试。
  1. pingall 查看所有主机之间的通信状况。

这里是对刚刚所建立的网络进行ping操作

  1. h1 ping -c4 h2 : h1 向 h2 发送四个包,测试 h1 与 h2 之间的通信

ping测试成功

  1. 进阶实验
  • 通过查看之前生成的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)

info( '*** Add hosts\n')

h4 = net.addHost('h4', cls=Host, ip='10.0.0.4', defaultRoute=None)

h1 = net.addHost('h1', cls=Host, ip='10.0.0.1', defaultRoute=None)

h2 = net.addHost('h2', cls=Host, ip='10.0.0.2', defaultRoute=None)

h3 = net.addHost('h3', cls=Host, ip='10.0.0.3', defaultRoute=None)

info( '*** Add links\n')

net.addLink(s1, h1)

net.addLink(h2, s1)

net.addLink(s1, h3)

net.addLink(s1, h4)

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

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

CLI(net)

net.stop()

if __name__ == '__main__':

setLogLevel( 'info' )

myNetwork()

研究之后就可以进行相关代码的编写

1) 编写 Python 脚本,定义如下拓扑:

i. topo linear,4

首先对其新建的网络拓扑图进行查看

大概拓扑图如下:

对部分代码进行修改,新添加主机和交换机

添加设备之间的连接

python运行如下

ii. topo single,3

首先查看网络的拓扑图

大概拓扑图如下:

然后对代码进行修改

运行的结果如下所示

iii. topo tree,depth=2,fanout=2

首先查看新建网络的拓扑

大概如下所示:

修改代码如下所示:

运行结果如下所示

iv. 1 个交换机,2 个主机,并且赋予主机 IP 地址。

首先查看网络拓扑图

大概拓扑图如下所示:

修改代码如下所示:

运行结果如下:

查看主机h1和h2的ip信息:

  • 编写 Python 脚本,对网络性能进行限制。观察下面给出的脚本文件,addHost()语法可以对主机 cpu 进行设置,以百分数的形式;addLink()语法可以设置带宽 bw、延迟 delay、最大队列的大小 max_queue_size、损耗率 loss。

这里采用的是编写代码如下所示:

结果如下所示:

mininet应用实践相关推荐

  1. mininet 应用实践

    教学目的与学时建议 能够运用 mininet 可视化工具创建计算机网络拓扑结构 能够运用 mininet 交互界面创建拓扑结构 能够运用 python 脚本构建计算机网络拓扑结构 建议:2 学时 实验 ...

  2. 《虚拟化和云计算》实验报告——MININET实践SDN

    MiniNet 由一些虚拟的终端节点(end-hosts).交换机.路由器连接而成的一个网络仿真器,支持0penflow协议,可以用它来实践SDN. MiniNet安装 源码安装 git clone ...

  3. mininet编程实现交换机规则的插入、删除与修改。_可编程网卡芯片在滴滴云网络的应用实践...

    桔妹导读:随着云规模不断扩大以及业务层面对延迟.带宽的要求越来越高,采用DPDK 加速网络报文处理的方式在横向纵向扩展都出现了局限性.可编程芯片成为业界热点.本文主要讲述了可编程网卡芯片在滴滴云网络中 ...

  4. 第五章 Mininet常用命令参数介绍

    mn 观察,可以知道,已经进入了这个自带的网络,网络中有1个交换机和2个主机,且在打开这个网络之后,进入了  mininet>  这个命令模式 然后输入相关命令查看网络状态,如下图所示: 查看可 ...

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

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

  6. 深入探讨SDN拓扑发现机制:新的攻击及实践对策【SDN拓扑】(下)

    An In-depth Look Into SDN Topology Discovery Mechanisms: Novel Attacks and PracticalCountermeasures ...

  7. 密码学原理与实践第三版pdf_云计算原理与实践PDF电子书下载

    今天分享的电子书是<云计算原理与实践>PDF电子书下载 本书细节 书名:<云计算原理与实践> 作者:王伟主编:郭栋,张礼庆,邱娟,张静轩,张东启,谭一鸣编著 出版时间:2018 ...

  8. [SDN]使用mininet搭建单臂路由的VLAN网络

    ✌️作者:清水寺丞 ☀️简介:正在学习unity,数据库,计算机通信网络和python.喜欢部署各种奇奇怪怪的小项目.喜欢就点个关注一起学习吧~⛄️⛄️⛄️⛄️ 前言: 本文实践了使用mininet来 ...

  9. SDN 与 Mininet 概述

    SDN 全名为(Software Defined Network)即软件定义网络,是现互联网中一种新型的网络创新架构,其核心技术 OpenFlow 通过网络设备控制面与数据面分离开来,从而实现网络流量 ...

最新文章

  1. 边缘计算在天猫精灵云应用上的落地实践
  2. 使用ssh远程连接时的一些注意问题
  3. 调节e18-d80nk的测量距离_水准测量基础知识
  4. 20162309《程序设计与数据结构》第二学期课程总结
  5. C语言练习题——if语句
  6. 数据可视化--基于excel表格数据生成柱状图
  7. 串行接口芯片16550
  8. android 卡片行星,卡片详情
  9. vc6.0精简版支持win7 64位版本
  10. uoj #172. 【WC2016】论战捆竹竿
  11. 华为服务器用户名密码忘记,电脑坏了,腾讯云华为云忘记宝塔面板登陆名和密码怎么办?...
  12. CentOS的下载与安装
  13. 关于CSS与HTML知识点总结(一)
  14. elementUI表格头添加图标-鼠标移入显示el-tooltip提示信息
  15. STM32计算文件MD5值校验数据
  16. win10系统突然没了WLAN和移动热点解决方法
  17. 多宽带联网(三) OpenWrt中使用cURL方法编写Shell脚本自动完成网页宽带认证登录(校园网认证登录解决方案) 使用awk命令
  18. LINGO实例,优化问题1
  19. 经验分享:Python3离线安装及库更新
  20. 论文笔记:Pay More Attention to History: A Context Modeling Strategy for Conversational Text-to-SQL

热门文章

  1. [bugku]解密系列+杂项
  2. 安徽外国语学院计算机信息管理,2021年安徽外国语学院录取结果查询网址入口及录取结果公布时间...
  3. bootstrap世界探索1——山川河流(文字排版)
  4. 调用java显示有何风险_Java学习----有风险的代码(异常)
  5. FactoryTalk View SE 和ME视频教程以及最新手册
  6. C++随记之模板(黑马程序员学习笔记)
  7. 把USB打印机变成WI-FI打印机
  8. TailwindCSS为前端开发者带来了什么?
  9. python中的for循环与切片
  10. oracle数据库归档闪回,oracle数据库开归档闪回模式