Skip to content
Saverio Proto edited this page Jun 25, 2012 · 4 revisions

Table of Contents

FairVPN

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

News

We presented FairVPN at FOSDEM 2011: http://www.fosdem.org/2011/schedule/event/fairvpn

You can download slides here: Download Slides

Mercurial Repository

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

tinc-vpn

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

Networkx

We need networkx-1.0.1

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

networkx-1.0.1/networkx/algorithms/traversal/path.py

Planet lab notes

ViniNotes

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

Misc Notes

 * DeployBootstrapNode
 * IperfNotes
 * ShapingNotes
 * FedoraNotes