Mininet参数使用
参考链接:https://www.bilibili.com/video/av24111964/?p=4
- 网络构建启动参数
- 内部交互命令
- 外部运行参数
mn -c把之前的参数清除
mn -h帮助
网络构建参数 topo
- 单一拓扑(single):交换机有且只有一个
- 线性拓扑(linear):交换机连接呈线性排列,每个交换机所连接主机的数目只有一个
- 树形拓扑
Sudo mn —topp=tree,depth=2,fanout=2
深度为2,广度(每一个节点的子节点的数目)为2
- 自定义拓扑
在custom写脚本文件sudo mn —custom file.py —topo mytopo
::File.py是绝对路径::
网络参数switch
主要的交换机三种
默认的是openVSwitch
Ovsk和内核态的吞吐量是高一点的
处于用户态进程是可以被代替的
内核态所有读可以访问,并且不可被强占
controller参数
我们自身准备的控制器而不是mininet自带的控制器
::sudo mn —controller=remote,—ip=[controller ip],—port==[port]::
Remote是远程的端口,controller是控制器ip,port是端口的名字
默认是本地的ip和6653、6633端口
Mac参数
—mac自动设置用户的mac地址
如果不设置,那么mac地址是随机的。 设置了之后,让mac地址简单易读,设置交换机的mac、主机mac以及IP地址从大到小排序,且设置方法简单唯一,不仅让机器容易获取,也容易让肉眼识别其ID,防止调试困难
Sudo mn —topo=tree,depth=2,fanout=2,—Mac
#内部交互命令
net命令
查看组网链路信息
nodes
查看有多少节点
dump
所有节点信息
links
查看链路连接信息,以及链路的健壮性,如果OK则是好的
pingall
查看丢包
可以看到,丢包率为0
常用内部交互命令
pingpair
只验证前两个主机的连通性h1和h2的连通性
上面这些命令不需要带参数,下面的参数需要带参数
iperf命令测试带宽(tcp的带宽测试)
iperfudp (udp带宽测试)
iperfudp bw h1 h2
link
是禁用或者开始节点之间的链路
Link s1 s2 up/down
开启或者关闭两个节点之间的链路
dpctl
针对交换机的流表操作
针对所有交换机的操作
xterm
某一个设备单独操作
Xterm h1
py
执行python表达式
Py net.addSwitch(’s3’)
拓扑扩展
添加主机h3
添加s1和h3之间的链路
这样是不行的,因为s1还没有添加端口:
Py s1.attach(‘s1-eth3’)
使用pingall命令,仍然不行
那是因为没有添加ip地址
添加ip地址:py net.get(‘h3’).cmd(‘ifconfig h3-eth0 10.3’)
通过dump查看
可以看到,还是没有查看到ip地址
这是因为添加了ip地址之后,主机之间还没互相链接
使用命令h1 ping h3,然后使用control+c结束
然后可以看到,所有的主机都可以ping通
使用dump命令查看
因此h3添加在网络中来了。
可以使用py help(s1)来查看端口命令
使用py dir(s1)查看哪些函数是可以调用的
重新设置s1的ip地址
py h1.setIP(‘10.0.0.5’,24)