Mininet拓扑构建与命令使用

实验目的:

1、通过命令模拟创建SDN网络。

2、深入了解Mininet的命令使用。

3、学会使用网络构建启动参数、内部交互命令及外部运行参数。

实验环境:

设备名称

软件环境

硬件环境

主机

Mininet_2.2.0_desktop_cv1.1

CPU:1核 内存:2G 磁盘:20G

实验内容:

1、通过Mininet命令行创建拓扑来熟悉Mininet的基本功能。

2、通过交互式界面创建拓扑来熟悉Mininet的基本命令。

实验原理:

Mininet介绍

Mininet是基于Linux Container架构开发的一个进程虚拟化网络仿真工具,可以创建一个含有主机、交换机、控制器和链路的虚拟网络,其交换机支持OpenFlow,具有高度灵活的自定义软件定义网络。Mininet可以用一个命令在一台主机上(虚拟机、云或者本地)以秒级创建一个虚拟网络,并在上面运行真正的内核、交换机和应用程序代码。

Mininet能实现如下功能:

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

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

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

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

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

在基于Mininet的使用下,可以轻易的在自己的笔记本上测试一个软件定义网络(software-defined Networks),对基于OpenFlow、Open vSwitch的各种协议等进行开发验证,或者验证自己的想法。且所有的代码几乎可以无缝迁移到真实的硬件环境中,在实验室里,一行命令就可以创建一个支持SDN的任意拓扑的网络结构,并可以灵活的进行相关测试,验证了设计的正确后,可以轻松部署到真实的硬件环境中。

OpenFlow连接建立交互流程

Miniedit可视化,直接在界面上编辑任意拓扑,生成python自定义拓扑脚本,使用Mininet可视化界面方便了用户自定义拓扑创建,为不熟悉python脚本的使用者创造了更简单的环境,界面直观,可操作性强。

Mininet 2.2.0+内置miniedit 。在mininet/examples下提供miniedit.py脚本,执行脚本后显示可视化界面,可自定义拓扑及配置属性。

MiniEdit使用主要分三个步骤:Miniedit启动→自定义创建拓扑,设置设备信息→运行拓扑并生成拓扑脚本。

网络构建参数

Mininet是基于Linux Container架构开发的一个进程虚拟化网络仿真工具,可以创建一个含有主机、交换机、控制器和链路的虚拟网络,其交换机支持OpenFlow,具有高度灵活的自定义软件定义网络。Mininet可以用一个命令在一台主机上(虚拟机、云或者本地)以秒级创建一个虚拟网络,并在上面运行真正的内核、交换机和应用程序代码。

Mininet能实现如下功能:

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

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

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

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

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

在基于Mininet的使用下,可以轻易的在自己的笔记本上测试一个软件定义网络(software-defined Networks),对基于OpenFlow、Open vSwitch的各种协议等进行开发验证,或者验证自己的想法。且所有的代码几乎可以无缝迁移到真实的硬件环境中,在实验室里,一行命令就可以创建一个支持SDN的任意拓扑的网络结构,并可以灵活的进行相关测试,验证了设计的正确后,可以轻松部署到真实的硬件环境中。

topo:用于指定网络拓扑,Mininet支持创建的网络拓扑为:minimal、single、linear和tree。

  • minimal:创建一个交换机和两个主机相连的简单拓扑。默认无—topo参数的情况下就是这样。其内部实现就是调用了single,2对应的函数。

  • single,n:设置一个交换机和n个主机相连的拓扑。

  • linear,n:创建n个交换机,每个交换机只连接一个主机,并且所有交换机成线型排列。

  • tree,depth=n,fanout=m:创建深度为n,每层树枝为m的树型拓扑。因此形成的拓扑的交换机个数为(mn-1)/(m-1),主机个数为mn。

  • —custom:在上述已有拓扑的基础上,Mininet支持自定义的拓扑,使用一个简单的Python API即可。—custom需和—topo一起使用,如mn —custom file.py —topo mytopo。

内部交互命令

创建Mininet拓扑成功后,一般可用nodes、dump、net等命令查看拓扑的节点、链路及网络等。Mininet常用的交互命令如下所示。

Mininet启动参数总结:

Mininet常用命令总结:

实验步骤:

创建single拓扑

# sudo mn --topo=single,3

说明:单一(Single)拓扑指整个网络拓扑中交换机有且只有一个,交换机可以下挂一个或多个主机,本例创建了一个交换机、3个主机,3个主机都下挂在一个交换机下。

创建linear(线性)拓扑

# sudo mn --topo=linear,3

说明:线性(linear)拓扑指交换机连接呈线形排列,且每个交换机所连接主机数目只有一个,本例创建了3个交换机、3个主机,3个主机分别下挂在一个交换机下。

创建树形(tree)拓扑

# sudo mn --topo=tree,depth=2,fanout=2

说明:树形(tree)拓扑指交换机连接成树形排列,且每个交换机所连接主机一般有多个关联使用参数depth及fanout,本例创建了depth为2,fanout为2的拓扑,表示交换机深度即层数为2,每个交换机下挂2个设备。

创建自定义拓扑

# cd /home/openlab/openlab/mininet/custom
# sudo mn --custom topo-2sw-2host.py --topo mytopo

自定义(custom)拓扑指python编写文件file.py,执行此脚本即可创建定义的拓扑,—custom与—topo联用,在custom目录下存在topo-2sw-2host.py文件,本例调用此文件构建拓扑。

执行net命令显示链接信息

执行nodes命令查看节点信息

执行links查看链路健壮性信息

执行pingall验证所有主机间通信并查看结果

进入设备可视化操作界面

清除释放Mininet构造配置的交换机及主机

Mininet可视化构建网络拓扑

启动MiniEdit
Miniedit拓扑建立
Miniedit属性配置
Miniedit运行

点击左下角“run”,即可运行设置好的网络拓扑,同时在后台可以看到相应的配置信息。运行后对交换机、主机进行右击长按,可查看交换机的bridge信息及打开Host的终端,交换机信息如下:

Miniedit保存脚本

miniedit设置好拓扑后,可通过选择File-Export Level 2 Script,将其保存为python脚本,默认在mininet/examples目录下,通过chmod给此脚本权限后,直接运行即可重现拓扑。 文章来源地址https://uudwc.com/A/0oZa

原文地址:https://blog.csdn.net/hdq1745/article/details/131189734

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年06月17日 10:42
【Clickhouse】ReplaceingMergeTree引擎final实现合并去重探索 | 京东云技术团队
下一篇 2023年06月17日 10:42