Open Networking Foundation is a community of communities, an umbrella for many software projects advancing open networking. One such project is Mininet, which creates instant virtual networks on laptops and other machines for software-defined (and traditional) networking research, development and teaching. Mininet provides critical open source infrastructure that is helping to enable the SDN revolution: nearly every SDN project has benefited from Mininet in some way, and it empowers the entire SDN community. Read on to learn how and why.
Bob Lantz is the founder of the open source Mininet project, and currently works on Mininet and SDN projects at the Open Networking Laboratory (ON.Lab), which will merge with the ONF later this year. At the recent ACM Symposium on SDN Research (SOSR) 2017 event, co-located with Open Networking Summit 2017, he accepted the inaugural ACM SIGCOMM SOSR Software Systems Award, together with Brian O'Connor (ON.Lab) and Brandon Heller and Nikhil Handigol (Forward Networks), for the development of the Mininet software system and its significant impact on SDN research, implementations and tools.
— Open Networking Fndn (@ONF_SDN) April 3, 2017
The Evolution of Network Emulators and SDN
SDN enables networks to evolve at the speed of software rather than hardware, but SDN development often requires a complicated testbed of end hosts, switches, links, and controllers. Unfortunately, hardware testbeds are expensive, bulky, power-hungry and time-consuming to set up and reconfigure. Often, they also can't be shared easily among multiple users. Because of this, virtual testbeds are appealing, but VM-based testbeds are resource-hungry and not particularly scalable.
Before systems like Kubernetes or Docker existed, Mininet pioneered the use of simple Linux containers – specifically processes in network namespaces, and cgroups – along with virtual Ethernet (veth) pairs and software switches (notably Open vSwitch) to rapidly create a scalable virtual network of up to hundreds of nodes on your laptop. Mininet delivered a simple Python API, as well as parametrized topologies, to allow easy end-to-end system testing and development of SDN controllers and applications.
Most importantly, we realized that network emulators become dramatically more useful in an SDN world, because designs that are rapidly prototyped and developed on a software-based emulator can actually transfer directly to real programmable hardware (using, for example, OpenFlow or P4) for line-rate execution and production operation. Designs can move freely in both directions between emulation and hardware, enabling a virtuous cycle of iterative development.
Since version 2.0, Mininet has supported performance modeling, as well as basic behavioral and functional modeling. It was an unsolved question as to whether an emulator such as Mininet would be suitable for performance experiments, but in fact Mininet has been used to successfully reproduce more than 80 published research results, as documented on http://reproducingnetworkresearch.wordpress.com. In the unusual cases where Mininet results haven't matched the published results, they have provided beneficial insight into emulator limits or areas for improvement, experimental setup errors or ambiguities, or limitations of the original work.
We still don't fully understand how to validate performance results in emulators or simulators a priori or without comparing them to real hardware, but Brandon Heller's Ph.D. thesis suggests a promising approach of network invariants, which can be monitored to determine when an emulation is producing unrealistic results.
Scaling emulation across clusters or into the cloud is another ongoing area of research and development. Ideally, we would like to automatically scale out experiments if they are failing or producing inaccurate results due to resource constraints.
Other interesting questions which have been investigated but not completely answered include how emulators like Mininet can support development of SDN systems for mobile networks and optical/circuit networks.
The Mininet Value Proposition
Mininet provides a virtual testbed and development environment for SDN. Mininet enables SDN development on any laptop or other PC, and SDN designs can move seamlessly between Mininet for inexpensive and streamlined development, and hardware with real deployments and line rate execution. Because Mininet is not tied to a specific controller or network OS, each investment in the project provides wide benefit and value to the entire SDN field and community.
There are still many unsolved problems in network emulation, and a growing interest in improvements to Mininet, such as automatic scaling for cluster edition, network invariant monitoring, and support for wireless and optical networks. There is also a strong need for support, maintenance, bug fixes, documentation, and features requested by Mininet's many and varied users. The project’s success and broad impact would not be possible without the ongoing support of, and contributions from, the SDN community.
ACM SIGCOMM SOSR Software Systems Award
Mininet continues to catalyze the SDN revolution as a critical piece of infrastructure for the majority of SDN projects. The 2017 ACM SIGCOMM SOSR Software Systems Award illustrates the profound, ongoing positive impact that open source research software systems such as Mininet can have on the practice of an entire field, including research, teaching, and industry practice. It also highlights the importance of independent organizations and applied research labs, such as ON.Lab and ONF, which spearhead the creation of open source software systems that enable the positive transformation of a field.
To learn more about how Mininet was created, and how we can improve research in networking and systems, check out our Mininet presentation from ACM SOSR 2017.
To join us in the collaborative effort to realize the promise of SDN, we encourage all researchers, teachers, students and industry practitioners who are interested to participate in, contribute to, and invest in the Mininet Project, as well as other open source platforms and tools projects. You can visit http://mininet.org/ to download and get started with Mininet today.
Bob Lantz, Ph.D.
Mininet Project (founder)
Open Networking Laboratory