Mininet creates a realistic virtual network, running real kernel, switch and application code, on a single machine (VM, cloud or native), in seconds, with a single command. Because you can easily interact with your network using the Mininet CLI (and API), customize it, share it with others, or deploy it on real hardware, Mininet is useful for development, teaching, and research. Mininet is also a great way to develop, share, and experiment with Software-Defined Networking (SDN) systems using OpenFlow and P4. Mininet is actively developed and supported, and is released under a permissive BSD Open Source license. We encourage you to contribute code, bug reports/fixes, documentation, and anything else that can improve the system! Links are virtual ethernet pairs, which live in the Linux kernel and connect our emulated switches to emulated hosts (processes).
Features
- A command-line launcher (mn) to instantiate networks
- A handy Python API for creating networks of varying sizes and topologies
- Examples (in the examples/ directory) to help you get started
- Full API documentation via Python help() docstrings, as well as the ability to generate PDF/HTML documentation with make doc
- Parametrized topologies (Topo subclasses) using the Mininet object. For example, a tree network may be created
- A command-line interface (CLI class) which provides useful diagnostic commands (like iperf and ping), as well as the ability to run a command to a node