close Warning: Can't synchronize with repository "(default)" (Unsupported version control system "hg": Can't find an appropriate component, maybe the corresponding plugin was not enabled? ). Look in the Trac log for more information.


Contacts: Andrea Detti (andrea.detti at , Saverio Proto (proto at and Lorenzo Bracciale (bracciale at

FairVPN is a python wrapper for tinc-vpn to create overlay VPN networks scalable to many nodes, maximizing TCP fairness among all connections in the network with minimal control traffic and memory usage.

tinc-vpn by default creates a full mesh VPN among the nodes. This means every node of the network has n*n-1 secure tunnels. In our work each nodes keeps secure tunnels only with a small subnet of nodes. To speak to nodes not connected directly the data traffic makes more hops in the VPN overlay network.

In this web site you will find an implementation, and documentation on how to test it on the Netkit emulator and on Planet-Lab


We presented FairVPN at FOSDEM 2011:

You can download slides here: Download Slides

Mercurial Repository

To have a clone of our repository

hg clone

External Software Needed

OLSR routing protocol

The olsrd daemon (provided in our repository) version 0.6.0


Version 1.0.13 with our patch

To patch enter the src directory and apply the patch:

patch -p0 < ../../tinc-1.0.13-fairvpn.patch
./configure LDFLAGS=-static


We need networkx-1.0.1

Use the specific version 1.0.1 because the floyd_warshall algorithm changes in the future releases.


Planet lab notes


How to create a TapDevice on the nodes in planet-lab

To retrieve a NodeFailure

To select randomly an arbitrary number of nodes to use in you experiment use source:planet-lab/selectnode.txt

To use PyGraphViz on the nodes of the Slice

To add nodes to a slice use source:planet-lab/

Use source:planet-lab/ to delete all nodes from a slice

Use CleanUpSlice to understand how to reset your slice environment

Use Yum to install packages on the slice together with multiquery. Example:

multiquery 'sudo yum --nogpgcheck install -y trickle'

Use IperfOnPlanetLab page to make bandwidth measurements on planet lab

Misc Notes

Last modified 7 years ago Last modified on Jan 26, 2015, 5:27:34 PM