Mininet provides a virtual test bed and development environment for software-defined networks (SDN). Mininet enables SDN development on any laptop or PC, and SDN designs can move seamlessly between Mininet (allowing inexpensive and streamlined development), and the real hardware running at line rate in live deployments. Mininet enables
- Rapid prototyping of software-defined networks
- Complex topology testing without the need to wire up a physical network
- Multiple concurrent developers to work independently on the same topology
Mininet networks run real code including standard Unix/Linux network applications as well as the real Linux kernel and network stack.
Mininet provides an extensible Python API for network creation and experimentations. It is released under a permissive BSD Open Source license and is actively developed and supported by community of networking and SDN enthusiasts.
What is Mininet?
A Mininet network consists of
A group of user-level processes moved into a network namespace that provide exclusive ownership of interfaces, ports and routing tables.
Linux Traffic Control (tc) enforces the data rate of each link to shape traffic to a configured rate. Each emulated host has its own virtual Ethernet interface(s).
The default Linux Bridge or the Open vSwitch running in kernel mode is used to switch packets across interfaces. Switches and routers can run in the kernel or in the user space.