示例程序

Mininet 代码中带有了大量的示例程序,供大家参考和理解代码。所有的示例程序都在 example 目录下,包括

baresshd.py:

使用 Mininet 的中层 API 来在一个 namespace 中创建主机、链路,并在主机上启动 sshd 进程,让用户可以登录。并未使用 OpenFlow。

consoles.py:

为每一个节点都创建一些 console 窗口,并允许用户对这些节点进行操作和观测,支持图形界面。

controllers.py:

使用一个自定义的Switch() 子类,创建一个带有多个控制器的网络。

controllers2.py:

创建一个拥有多个控制器的网络,通过创建空的网络,添加节点和手动启动交换机实现。

controlnet.py:

通过创建两个mininet对象来建模一个控制网络和数据网络。

 cpu.py:

在不同的 CPU 限制下测试 iperf 的带宽性能。

emptynet.py:

演示创建一个空的网络,之后添加节点进去。

hwintf.py:

添加一个接口 (例如一个物理接口)到一个网络中。

limit.py:

演示如何使用 link 和 CPU 限制。

linearbandwidth.py:

基于 Topo 创建一个拓扑子类,并进行简单的测试。

miniedit.py:

通过一个图形界面的编辑器来创建网络。

multiping.py:

使用 node.monitor() 来检测多个主机的输出。

multipoll.py:

检测多个主机的输出文件。

multitest.py:

创建一个网络,并在其上进行多个测试。

nat.py:

将 Mininet 的网络通过 nat 连接到外部网络中。

popen.py:

使用 host.popen() 和 pmonitor() 来检测多个主机。

popenpoll.py:

使用 node.popen() 和 pmonitor() 检测多个主机的输出。

scratchnet.py, scratchnetuser.py:

使用底层的 Mininet 函数来创建网络。

simpleperf.py:

配置网络和 CPU、带宽限制等。

sshd.py:

在每个主机里面运行一个 sshd 进程,使得用户可以通过 ssh 来访问主机。这需要将 Mininet 的数据网络连接到 root 名字空间的一个接口上。一般的,控制网络已经在 root 名字空间了,所以默认已经被连接。

tree1024.py:

创建一个 1024 主机的网络,然后运行 CLI。根据系统资源情况,可能需要利用 sysctl 进行相关修改。

treeping64.py:

创建一个 64 主机的树状网络,利用 ping 来检查连通性。