Contacts: Andrea Detti (andrea.detti at uniroma2.it) , Saverio Proto (proto at ing.uniroma2.it) and Lorenzo Bracciale (bracciale at ing.uniroma2.it)
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: http://www.fosdem.org/2011/schedule/event/fairvpn
You can download slides here: Download Slides
To have a clone of our repository
hg clone http://hg.netgroup.uniroma2.it/hg/fairvpn
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 make
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/add_nodes.py
Use source:planet-lab/del_all_nodes_from_slice.py 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