Mininet入门与实战
Mininet简介
-
由来:斯坦福大学发明,基于Linux Container架构开发的进程虚拟化网络仿真工具,交换机支持OF协议。
-
使用情况:
- 控制器,不推荐自带控制器(bug)
- 交换机
- 主机
-
优势:可连接到真实网络中去
支持任意自定义拓扑,主机可达到4096,
提供可扩展Python API
-
compare to 仿真
启动速度快,扩展性大,带宽提供多,方便安装、易使用
-
compare to 模拟器
运行真实代码,容易连接真实网络
-
compare to 硬件测试床
便宜,快速重新配置及重新启动
-
Mininet安装部署
安装
三种方法
-
使用装有mininet的虚拟机
官网下载VM(桥接,可远程访问。--关闭防火墙)
-
github获取安装mininet源码
推荐
-
ubuntu apt-get
```sudo apt-get install mininet```
Mininet文件结构
重要的
-
util
安装脚本,文档辅助
-
examples
例子,应用
-
custom
自定义拓扑
Mininet命令详解
mininet
-
网络构建启动参数
- --topo (拓扑,有规律的)
--topo=single,3
single 只有一个交换机--topo=linear,4
linear 每一个交换机一个主机,线性排列--topo=tree,depth=2,fanout=2
depth代码交换机的深度,fanout每个设备的广度
- --custom
sudo mn --custom file.py --topo mytopo
py自定义拓扑
- --switch
- ovsk, ovsbr,ivs , lxbr(内核态),user(用户态)
- --controller
sudo mn --controller=remote --ip=[controller IP] --port=[port]
- --mac
- 是主机的mac,ip顺序分配
- --topo (拓扑,有规律的)
-
内部交互命令
-
dump
-
net
- 查看网络连接情况
-
nodes
- 查看节点
-
links
- 查看链路健康状态
-
Iperf
- 测试TCP带宽 iperf h1 h2
-
iperfudp
- 测试UDP带宽 iperfudp bw h1 h2
-
link
- 禁用或者启用某个链路 link s1 s2 up/down
-
dpctl
- dpctl dump-flows 增删改查流表
-
xterm
- xterm h1
-
py
- 执行python表达式 net.addSwitch("s3")
-
-
外部运行参数
- -c
- -h