Contents

Python-第三方库-mininet-Mininet示例工作流程

mininet官网

mininet官网文档

mininet官网api

mininet官网工作流

创建网络

使用单个命令创建网络

在 OpenFlow/Stanford 参考控制器的控制下使用 Open vSwitch 交换机启动深度为 2 和扇出为 8 的树状拓扑结构的网络(即 64 台主机连接到 9 台交换机),并运行pingall测试以检查每对节点之间的连接性.

sudo mn --switch ovs --controller ref --topo tree,depth=2,fanout=8 --test pingall

与网络互动

Mininet 的 CLI 允许您从单个控制台控制和管理整个虚拟网络

告诉主机h2 ping 主机h3的 IP 地址。

mininet> h2 ping h3

任何可用的 Linux 命令或程序都可以在任何虚拟主机上运行。您可以轻松地在一台主机上启动 Web 服务器并从另一台主机发出 HTTP 请求:

mininet> h2 python -m SimpleHTTPServer 80 >& /tmp/http.log &
mininet> h3 wget -O - h2

自定义网络

Mininet 的 API 允许您使用几行 Python 创建自定义网络。例如,下面的脚本

from mininet.net import Mininet
from mininet.topolib import TreeTopo
tree4 = TreeTopo(depth=2,fanout=2)
net = Mininet(topo=tree4)
net.start()
h1, h4  = net.hosts[0], net.hosts[3]
print h1.cmd('ping -c1 %s' % h4.IP())
net.stop()

创建一个小型网络(4 台主机,3 台交换机),并从一台主机 ping 另一台主机

共享网络

Mininet 作为虚拟机 (VM) 映像分发,所有依赖项均已预安装,可在 VMware、Xen 和 VirtualBox 等常见虚拟机监视器上运行。这为分发提供了一个方便的容器;一旦原型被开发出来,VM 映像就可以分发给其他人运行、检查和修改。

在硬件上运行

一旦设计在 Mininet 上运行,就可以将其部署在硬件上以供实际使用、测试和测量。

为了在第一次尝试时成功移植到硬件,每个 Mininet 仿真组件必须以与其对应的物理组件相同的方式运行。虚拟拓扑应该与物理拓扑相匹配;虚拟以太网对必须替换为链路级以太网连接。模拟为进程的主机应替换为具有自己的操作系统映像的主机。此外,每个模拟的 OpenFlow 交换机都应替换为配置为指向控制器的物理交换机。但是,控制器不需要更改。当 Mininet 运行时,控制器“看到”一个物理交换机网络,这是通过具有明确定义的状态语义的接口实现的。

 |