标签归档:emulator

Mininet-软件定义网络快速原型仿真器

什么是Mininet?

Mininet在一台机器上模拟由主机、链路和交换机组成的完整网络。要创建两台主机、一台交换机的示例网络,只需运行:

sudo mn

Mininet对于交互式开发、测试和演示非常有用,尤其是那些使用OpenFlow和SDN的开发、测试和演示。在Mininet中建立原型的基于OpenFlow的网络控制器通常可以转移到硬件上,只需最少的更改即可实现全线速执行

它怎麽工作?

Mininet使用基于进程的虚拟化和网络命名空间创建虚拟网络-这些特性在最近的Linux内核中都可用。在Mininet中,主机被模拟为bash进程在网络命名空间中运行,因此任何通常在Linux服务器(如Web服务器或客户端程序)上运行的代码应该在Mininet“Host”中运行良好。Mininet“主机”将拥有自己的专用网络接口,并且只能看到自己的进程。Mininet中的交换机是基于软件的交换机,如Open vSwitch或OpenFlow参考交换机。链路是虚拟以太网对,它们驻留在Linux内核中,并将我们的仿真交换机连接到仿真主机(进程)

功能

Mininet包括:

  • 命令行启动器(mn)实例化网络
  • 用于创建各种大小和拓扑的网络的便捷Python API
  • 示例(在examples/目录)来帮助您入门
  • 通过Python提供完整的API文档help()文档字符串,以及使用生成PDF/HTML文档的能力make doc
  • 参数化拓扑(Topo子类)使用Mininet对象。例如,可以使用以下命令创建树网络:

    mn --topo tree,depth=2,fanout=3

  • 命令行界面(CLI类),它提供有用的诊断命令(如iperfping),以及向节点运行命令的能力。例如,

    mininet> h11 ifconfig -a

    通知主机H11运行该命令ifconfig -a

  • 清除垃圾(/tmp中的接口、进程、文件等)的“清理”命令它可能会被Mininet或Linux留下。如果事情不起作用,试试这个!

    mn -c

Python 3支持

  • Mininet 2.3.0支持Python3和Python2!
  • 您可以并排安装Mininet的Python 3和Python 2版本,但最新安装将确定默认情况下使用哪个Python版本mn
  • 你可以跑mn直接使用Python 2或Python 3,只要安装了适当版本的Mininet,例如
    $ sudo python2 `which mn`
    
  • 有关Python 3和Python 2支持的详细信息,请参阅上的发行说明http://docs.mininet.org

其他增强功能和信息

  • 支持Ubuntu 20.04 LTS(以及18.04和16.04)
  • 通过GitHub操作实现更可靠的测试和CI
  • 有关此版本和以前版本的更多信息,请参阅上的版本说明http://docs.mininet.org

安装

看见INSTALL有关安装说明和详细信息,请参阅

文档

除了API文档(make doc),上提供了许多有用的信息,包括Mininet演练和Python API简介Mininet Web Site还有一个维基,鼓励您阅读并参与其中,特别是常见问题解答(FAQ),网址为http://faq.mininet.org

支持

Mininet是由社区支持的。我们鼓励您加入Mininet邮件列表,mininet-discuss在:

https://mailman.stanford.edu/mailman/listinfo/mininet-discuss

加入我们吧

再次感谢所有Mininet的贡献者和用户!

Mininet是一个开源项目,目前托管在https://github.com/mininet我们鼓励您下载、检查、修改代码,并提交错误报告、错误修复、功能请求、新功能和其他问题以及拉取请求。感谢为Mininet项目贡献代码的每个人(有关更多信息,请参阅贡献者!)正是因为每个人的辛勤工作,Mininet才能不断成长和完善

享受Mininet吧

玩得开心!我们期待着看到您将如何使用Mininet来改变网络世界

鲍勃·兰茨,代表Mininet的贡献者