Mininet系列实验(三):Mininet命令延伸实验扩展
Mininet系列实验(三):Mininet命令延伸实验扩展
1 实验目的
熟悉Mininet自定义拓扑三种实现方式:命令行创建、Python脚本编写、交互式界面创建。
2 实验原理
Mininet 是一个轻量级软件定义网络和测试平台;它采用轻量级的虚拟化技术使一个单一的系统看起来像一个完整的网络运行想过的内核系统和用户代码,也可简单理解为 SDN 网络系统中的一种基于进程虚拟化平台,它支持 OpenFlow、OpenvSwith 等各种协议,Mininet 也可以模拟一个完整的网络主机、链接和交换机在同一台计算机上且有助于互动开发、测试和演示,尤其是那些使用 OpenFlow 和 SDN 技术;同时也可将此进程虚拟化的平台下代码迁移到真实的环境中。
3 实验内容
1.命令行创建拓扑,这里举4个例子
(1)最小的网络拓扑,一个交换机下挂两个主机。
sudo mn --topo minimal
(2)每个交换机连接一个主机,交换机间相连接。本例:4个主机,4个交换机
sudo mn --topo linear,4
(3)每个主机都连接到同一个交换机上。本例:3个主机,一个交换机。
sudo mn --topo single,3
(4)定义深度和扇出形成基于树的拓扑。本例:深度2,扇出2。
sudo mn --topo tree, fanout=2,depth=2
2 在脚本文件内输入代码然后通过指令运行
(1)--linear,4:在装有Mininet镜像的虚拟机中新建脚本文件我给他命名为num4.py,添加以下内容:
我在mininet/mininet/examples/test里面创建的(首先先要sudo su进入开发者模式,然后再用gedit 以py为后缀的文件名创建python脚本文件然后输入下面的东西)
1 from mininet.net import Mininet 2 from mininet.topo import LinearTopo 3 Linear4 = LinearTopo(k=4) #四个交换机,分别下挂一个主机 4 net = Mininet(topo=Linear4) 5 net.start() 6 net.pingAll() 7 net.stop()
然后把它修改为可执行文件
chmod +x num4.py
最后运行这个脚本
sudo python num4.py
(2)一个交换机下挂3个主机:同样的,我们在single3这个python脚本文件里面重复相同的操作
1 from mininet.net import Mininet 2 from mininet.topo import SingleSwitchTopo 3 Single3 = SingleSwitchTopo(k=3) #一个交换机下挂3个主机 4 net = Mininet(topo=Single3) 5 net.start() 6 net.pingAll() 7 net.stop()
(3)树形拓扑(注:深度表示的是“树枝”的分化次数,扇出表示“树枝”每次分化的时候分化多少gen)
1 from mininet.net import Mininet 2 from mininet.topolib import TreeTopo 3 Tree22 = TreeTopo(depth=2,fanout=2) 4 net = Mininet(topo=Tree22) 5 net.start() 6 net.pingAll() 7 net.stop()
(此处那两个2是因为我把脚本文件里面的两个变量改成了输入的形式)
(4) 如果是非上述三种类型的拓扑,那么下面介绍一种适合各种拓扑形式的脚本创建模式。本例:1个交换机,2个主机,并且赋予主机IP地址
1 from mininet.net import Mininet 2 net = Mininet() 3 # 创建网络节点 4 c0 = net.addController() 5 h0 = net.addHost('h0') 6 s0 = net.addSwitch('s0') 7 h1 = net.addHost('h1') 8 # 创建两节点之间的连接 9 net.addLink(h0, s0) 10 net.addLink(h1, s0) 11 # 在接口处配置ip地址 12 h0.setIP('192.168.1.1', 24) 13 h1.setIP('192.168.1.2', 24) 14 # 启动 15 net.start() 16 net.pingAll() 17 net.stop()
结果如下:
(5)除了可以通过Python脚本创建基本的拓扑以外,还能在此基础上对性能进行限制。观察下面给出的脚本文件,addHost()语法可以对主机cpu进行设置,以百分数的形式;addLink()语法可以设置带宽bw、延迟delay、最大队列的大小max_queue_size、损耗率loss。
1 from mininet.net import Mininet 2 from mininet.node import CPULimitedHost 3 from mininet.link import TCLink 4 net = Mininet(host=CPULimitedHost, link=TCLink) 5 c0 = net.addController() 6 s0 = net.addSwitch('s0') 7 h0 = net.addHost('h0') 8 h1 = net.addHost('h1', cpu=0.5) 9 h2 = net.addHost('h1', cpu=0.5) 10 net.addLink(s0, h0, bw=10, delay='5ms', 11 max_queue_size=1000, loss=10, use_htb=True) 12 net.addLink(s0, h1) 13 net.addLink(s0, h2) 14 net.start() 15 net.pingAll() 16 net.stop()
三 交互式界面创建主机、交换机等并且测试网络
sudo mn
1 py net.addHost('h3') 2 # 添加主机h3 3 py net.addLink(s1,net.get('h3')) 4 # 创建主机h3和s1的连接 5 py s1.attach('s1-eth3') 6 # 给交换机s1添加端口eth3用于连接h3 7 py net.get('h3').cmd('ifconfig h3-eth0 10.3') 8 # 给h3赋予IP(10.0.0.3) 9 h1 ping -c1 10.3 10 # h1 ping h3 11 px from mininet.util import dumpNodeConnections 12 py dumpNodeConnections(net.hosts) 13 # 测试网络,展示所有的网络信息 14 py net.pingAll() 15 # 所有节点的ping测试
这里有33%的掉包想请大佬指教一下是怎么回事
总结:
1.明白的脚本的具体运行方式和编辑方式以及脚本的简要内容
2.不明白为什么会丢包
posted on 2018-09-11 17:29 李承泽 阅读(...) 评论(...) 编辑 收藏
Mininet系列实验(三):Mininet命令延伸实验扩展相关推荐
- linux系统进程调度算法实验,操作系统实验三、进程调度算法实验
实验三.进程调度算法实验 3.1 实验目的 加深对进程调度概念的理解,体验进程调度机制的功能,了解Linux 系统中进程 调度策略的使用方法.练习进程调度算法的编程和调试技术. 3.2 实验说明 在 ...
- 基于python的文件加密传输系统 毕业论文_20183411 李丞灏 2020-2021 《python程序设计》 实验三 加密传输文件 实验报告...
20183411 李丞灏 2020-2021 <python程序设计> 实验三 加密传输文件 实验报告 课程:<Python程序设计> 班级: 1834 姓名: 李丞灏 学号: ...
- 计算机网络实验三—— Cisco Packet Tracer 实验
计算机网络实验三-- Cisco Packet Tracer 实验 CPT 软件使用简介 一.直接连接两台 PC 构建 LAN 二.用交换机构建 LAN 机器名 IP 子网掩码 ✎ 问题 ✎ 试一试 ...
- 实验三 ORI指令设计实验【计算机组成原理】
实验三 ORI指令设计实验[计算机组成原理] 前言 推荐 实验三 ORI指令设计实验 一.实验目的 二.实验环境 三.实验原理 四.实验任务 五.实验思考 实验三 代码 define IF ID EX ...
- 计算机组成原理微控器功能,(计算机组成原理)实验三微控器实验.ppt
文档介绍: 计算机组成原理课程设计 实验三.微控器实验 葛扩院廖萝丽斯节宽裔萌宛敢蜘祭癌颂导罪仍囚誓棋尹侈速爹详凑移悸董(计算机组成原理)实验三微控器实验(计算机组成原理)实验三微控器实验 实验三微控 ...
- bpsk传输系统实验matlab,实验三 BPSK 传输系统综合实验 2
通信原理实验 实验三 BPSK 传输系统综合实验 一.实验原理 (一)BPSK调制 理论上二进制相移键控(BPSK)可以用幅度恒定,而其载波相位随着输入信号m(1.0码)而改变,通常这两个相位相差18 ...
- 数据库原理实验三 数据库综合设计实验 实验报告
实验三 数据库系统设计综合实验 1.实验目的通过实验,使学生掌握数据库系统设计和开发的一般方法,能够设计并实现简单的数据库系统. 2.实验要求熟悉实验室实验环境,掌握实验预备知识,了解实验中故障排除的 ...
- 计算机组成原理实验三报告,计算机组成原理实验三报告
计算机组成原理实验三报告 实 验 报 告 三课 程 计算机组成原理 姓 名 学 号实验项目 存储器实验 同组姓名 学 号指导教师 专业班级 计算机科学与技术 09 实验时间 2011-6-6实验三 存 ...
- 计算机组成原理脱机运算器实验数据,实验三:脱机运算器实验报告.pdf
大连理工大学大连理工大学 本科实验报告本科实验报告 课程名称 计算机组成原理实验 学院 系 软件学院 专 业 软件工程 班 级 0907 英 学 号 200892497 学生姓名 刘云伟 2011 年 ...
最新文章
- 混沌、无序、变局?探索之中,《拟合》开启
- Python实用小工具了解一下,总有一款是你需要的
- icp mysql_MySQL · 特性分析 · Index Condition Pushdown (ICP)
- ​基于BCI的现代神经反馈有助于认知增强
- 常用的正则表达式总结
- 检查SELECTION-SCREEN 上面输入的参数是否合适
- python解析xml文件选用模块_python解析xml模块封装代码
- .netcore部署Linux并结合Nginx反向代理 get started
- 【笔记】UL/DL(上行/下行)方向上每个符号IQ的时序关系(U平面和C平面)
- 发布水晶报表时需要在服务器进行如下操作
- Linux计划任务at命令、crontab命令
- denseNet 详解
- BI项目实施完成,不知道怎么进行测试?Smartbi手把手教你
- Html注释与Javascript注释的嵌套
- 微信抢红包微信 PHP代码实现
- 使用GitHub搭建个人博客
- Windows路由表的灵异事件
- html头像生成器,2020头像生成器
- 用frp开源工具,实现内网穿透(详细教程)
- 嵌入式Linux开发