Mininet 学习笔记
1.Mininet 是什么?
起源于Stanford;包含主机、控制器、交换机和链路的模拟网络。
不推荐使用自带的控制器 => 指定其他控制器远程连接。
创建虚拟网络的模拟工具。
方便:能够连接真实网络;提供网络测试平台;性能功能强大。
2.Mininet 可以做什么?
简单的网络拓扑测试平台;支持复杂拓扑测试;提供网络测试和实验的可拓展API。
3.为什么选择 Mininet?
相比仿真器:
(1)启动速度非常快
(2)扩展性:数百个交换机
(3)带宽提供多,2Gbps
(4)方便安装、易使用
相比模拟器:
(1)运行真实的代码,如APP、操作系统内核代码等
(2)容易连接真实网络
相比硬件测试床:
(1)便宜
(2)快速重新配置、重新启动
4.Mininet 安装部署
三种方法:
(1)装有Mininet的虚拟机
官网下载:mininet.org/download
建议:桥接模式;关闭firewall。
(2)Github安装
install.sh args: -n3V 2.5.0
(3)Ubuntu apt-get
|
|
Hint: 如果之前安装过mininet,需要删除依赖;安装时需要停用已有的OvS、Controller的进程。
5.Mininet 文件结构
(1)运行文件
bin/mn:主要运行文件,应用Python程序编写,定义了MininetRunner类,执行sudo mn即调用本程序,是模拟网络的主程序,为整个测试创建基础平台。
(2)核心代码
在mininet子目录。
(3)其他文件
custom/:放置自定义Python脚本,用于自定义拓扑。
util/:放置辅助文件,包括安装脚本、文档辅助生成等。
example/:使用实例,包括可视化。
6.Mininet 命令详解
|
|
(1)网络构建参数
a.--topo
单一拓扑(Single):
|
|
线性拓扑(Linear)拓扑:
|
|
树形拓扑(Tree):
|
|
自定义拓扑(Custom):
|
|
b.网络构建参数 --switch
定义mininet要使用的交换机(默认使用OVSK,即OvS交换机)。
|
|
c.--controller
定义要使用的控制器,如果没有指定则使用mininet中自带的控制器。
|
|
d.--mac
自动配置设备的MAC地址:让MAC地址易读。
|
|
(2)内部交互命令
使用一系列命令查看并验证网络系统的链路健壮情况。
a.无需参数的命令:
|
|
b.设备操作,需要操作命令:
|
|
Hint:改变拓扑,在mininet中调用py命令。
Easytest:
|
|
7.Mininet 可视化:Miniedit
mininet/examples/miniedit.py
三步:
(1)Miniedit启动
Hint: 需要可视化桌面
(2)自定义创建拓扑,设置设备信息
(3)运行拓扑并生成拓扑脚本
8.应用1 玩转流表
refer: http://www.sdnlab.com/2122.html, ryubook firstexample
使用dpctl对OvS进行操作,添加和删除流表。
|
|
9.应用2 Mininet模拟多数据中心带宽测试
refer: http://www.sdnlab.com/3296.html
2017.3.9