SDN零基础入门-Mininet命令详解

姓名:岳驰

【嵌牛导读】:(承接本人上一篇《SDN零基础入门-mininet环境搭建与RYU控制器的安装》)Mininet是一个进程虚拟化网络仿真工具,可以创建一个含有主机、交换机、控制器和链路的虚拟网络,其交换机支持Openflow协议,具有高度灵活的自定义软件定义网络。在本篇文章中,作者将会介绍Mininet的基本操作指令,本人也是接触不久,如有错误请多多包涵,希望能和大家一起交流学习。

【嵌牛鼻子】:Linux    Ubuntu    SDN    零基础入门    Mininet 命令详解

【嵌牛提问】:Mininet的优势?Mininet可以做什么?Mininet的基础操作?

【嵌牛正文】:

1.mininet的优势

mininet结合了许多仿真器、硬件测试床和模拟器的优点。

compare to仿真器:

启动速度快               扩展性大                      带宽提供多             方便安装、易使用

compare to模拟器:

运行真实代码         容易链接真实网络

compare to硬件测试床:

便宜              快速重新配置与重新启动

2.mininet可以做什么

为openflow应用程序提供一个简单、便宜的网络测试平台

启用复杂的拓扑测试,无需连接物理网络

具有拓扑感知和openflow感知的CLI,用于调试或运行网络范围的测试

支持任意自定义拓扑,主机数达4096,并包括一组基本的参数化拓扑

提供用于网络创建和实验的可扩展Python API

3.mininet命令详解

minient命令主要分为三种:

①网络构建启动参数

如--topo  --custom  --switch  --controller  --mac等等

②内部交互命令

如dump  net  nodes  links  dpctl  iperf等等

③外部运行参数

如-c  -h

下面对常用的命令进行简单介绍

一、--topo命令

1.单一拓扑,即只有一个交换机,下挂n个主机


SDN零基础入门-Mininet命令详解_第1张图片
一个交换机下挂三个主机


SDN零基础入门-Mininet命令详解_第2张图片
拓扑图

2.线形拓扑,交换机呈线性排列,n个交换机下挂一个主机

SDN零基础入门-Mininet命令详解_第3张图片
四个交换机的线形拓扑


SDN零基础入门-Mininet命令详解_第4张图片
拓扑图

3.树形拓扑,定义深度depth,定义广度fanout。例如depth=2,fanout=2,就是交换机(不包含主机)有两层,除第一层外每个下挂两个单位。

SDN零基础入门-Mininet命令详解_第5张图片
depth=2,fanout=2的树形拓扑


SDN零基础入门-Mininet命令详解_第6张图片
拓扑图

假如输入depth=3,fanout=3,就在原来的基础上s1(第一层)下挂三个交换机(第二层),然后第二层的每个交换机下面再下挂三个交换机(第三层),第三层的每个交换机下挂三个主机。

4.自定义拓扑,需要用python编写文件file.py,执行此脚本即可创建自定义拓扑,需要--custom与--topo联用,在这里给出一个使用自带的例子建立一个自定义拓扑,至于具体如何编写我们将会在以后进行说明。

SDN零基础入门-Mininet命令详解_第7张图片

二、--controller命令

指定远程控制器的方法:

sudo mn --controller=remote,--ip=你的控制器ip,--port=你想监听的端口

在这里我指定了本机的控制器,但是目前本机还没有开启控制器。所以会显示不能连接到本机控制器。

SDN零基础入门-Mininet命令详解_第8张图片

输入pingall也会显示丢包率为100%

SDN零基础入门-Mininet命令详解_第9张图片

三、内部交互命令,在建立拓扑之后对拓扑进行相关操作,如

net命令显示链接信息

nodes命令显示节点信息

links命令显示链路健壮性信息

以及大家喜闻乐见的pingall命令验证所有主机间通信

节点全部ping通,丢包率0%

以上都是设备的查看命令,接下来介绍几个可以对设备进行操作的命令

iperf命令两节点间进行带宽测试

link命令进行节点间链路的开始或禁用

我关闭了s1和h1的链路,发现h1和h2不能ping通

SDN零基础入门-Mininet命令详解_第10张图片

然后再次开启s1和h1的链路,于是h1和h2又可以ping通了

SDN零基础入门-Mininet命令详解_第11张图片

注意不要把link命令和links命令混淆!!!

现在我们面临了一个实际问题,假如我首先用sudo su指令创建了一个交换机下挂两个主机的拓扑,但是之后不满意当前拓扑,想添加一个主机h3和s1相连,可以么?答案当然是肯定的。

首先,我们要添加主机h3进入当前拓扑

只添加还不够,需要让s1和添加的h3建立一条连接

现在就可以ping通了么?还不行,因为s1需要一个端口提供给h3

s1分配eth3端口给h3

现在链接已经建立起来了,但是h3还没有IP地址,我们需要赋给h3一个IP地址


把10.0.0.3地址赋给h3


现在我们先试着用h1或者h2去ping通h3

SDN零基础入门-Mininet命令详解_第12张图片
传送了3个包,零丢包(ctrl+c停止互ping)

最后pingall,成功!

SDN零基础入门-Mininet命令详解_第13张图片

你可能感兴趣的:(SDN零基础入门-Mininet命令详解)