IPOP


IPOP is an open-source user-centric software virtual network allowing end users to define and create their own virtual private networks. IPOP virtual networks provide end-to-end tunneling of IP or Ethernet over “TinCan” links setup and managed through a control API to create various software-defined VPN overlays.

History

IPOP started as a research project at the University of Florida in 2006. In its first-generation design and implementation, IPOP was built atop structured P2P links managed by the C# library. In its first design, IPOP relied on ’s structured P2P overlay network for peer-to-peer messaging, notifications, NAT traversal, and IP tunneling. The -based IPOP is still available as open-source code; however, IPOP’s architecture and implementation have evolved.
Starting September 2013, the project has been funded by the National Science Foundation under the SI2 program to enable it as open-source “scientific software element” for research in cloud computing. The second-generation design of IPOP incorporates standards and libraries that have evolved since the project’s beginning to create P2P tunnels – which we refer to as TinCan links. The current TinCan-based IPOP implementation is based on modules written in C/C++ that leverage libjingle to create TinCan links, and exposing a set of APIs to controller modules that manage the setup, creation and management of TinCan links. For enhanced modularity, the controller module runs as a separate process from the C/C++ module that implements TinCan links and communicate through a JSON-based RPC system; thus the controller can be written in other languages such as Python.