PL-VINI Overview
PL-VINI is a prototype of a VINI that runs on the public PlanetLab. PL-VINI enables arbitrary virtual networks, consisting of software routers connected by tunnels, to be configured within a PlanetLab slice. A PL-VINI virtual network can carry traffic on behalf of real clients and can exchange traffic with servers on the real Internet. Nearly all aspects of the virtual network are under the control of the experimenter, including topology, routing protocols, network events, and ultimately even the network architecture and protocol stacks.
An example of a network experiment enabled by PL-VINI is the Internet In A Slice (IIAS), which consists of an IP data plane configured by a control plane running standard network routing protocols. This User Guide describes how to configure a PL-VINI experiment running IIAS, but IIAS is only one experiment supported by the PL-VINI infrastructure. Researchers interested in exploring new routing protocols or network architectures can use the current tools as a jumping-off point for their own research.
PL-VINI/IIAS integrate a number of tools that have been developed by the networking research and open source communities:
- Click modular software router to provide tunneled virtual network topologies and IP forwarding
- XORP eXtensible Open Routing Platform for routing protocols such as OSPF, RIP, and BGP
- User-Mode Linux as a virtual environment for running routing software
- OpenVPN to connect clients into a virtual network
- Enhancements to PlanetLab enabling slices to obtain CPU reservations and low-latency CPU scheduling
This guide explains how to use PL-VINI/IIAS tools to deploy virtual networks built from these open-source projects on the public PlanetLab.
Features
PL-VINI is an infrastructure that supports virtual networks. It provides some features that a wide range of network experiments should find useful, such as:
- Virtual network topologies, consisting of UML instances connected by virtual point-to-point Ethernet links, running within a PlanetLab slice. PL-VINI matches packets to virtual links (implemented by UDP tunnels) based on the Ethernet MAC header, and so has no inherent dependencies on Layer 3 protocols.
- Binding resources to an experiment to ensure that the virtual network can forward packets at a sustained rate and with low latency
- Processes running in the same slice as an experiment can inject traffic into it using a TUN/TAP interface running on every Planetlab node.
- Clients can inject traffic into an experiment using OpenVPN, which runs on Linux, Windows 2000/XP and higher, OpenBSD, FreeBSD, NetBSD, Mac OS X, and Solaris hosts.
- Packets can exit an overlay and transit the public Internet via a NAT gateway.
Internet In A Slice is an experiment supported by a PL-VINI virtual network. PL-VINI/IIAS is itself an interesting starting-point for study of current Internet protocols or for prototyping new protocols. IIAS gives researchers the ability to:
- Run OSPF and iBGP protocols to configure an IPv4 virtual network. Advertise routes to external destinations (reachable via NAT) and OpenVPN clients using these protocols.
- Choose between XORP or Quagga as the routing software. XORP has better integration with Click (see next bullet) but Quagga appears to be more stable.
- Forward IP packets in the UML kernel or, for better performance, in Click. In the latter case, UML's forwarding table is mirrored in the Click virtual network layer below UML. Click sends each packet out directly on the appropriate virtual link using this information. Currently this feature can only be used with XORP routers.
For a more in-depth discussion of the motivations behind PL-VINI and IIAS, and a detailed description of how the various software components fit together, please read the SIGCOMM'06 paper.

