README 2.4 KB
Newer Older
Guillaume Bury's avatar
Guillaume Bury committed
1 2 3
==========
 re6stnet
==========
4

Guillaume Bury's avatar
Guillaume Bury committed
5 6 7
---------------------------------------------
Resilient, Scalable, IPv6 Network application
---------------------------------------------
8

Guillaume Bury's avatar
Guillaume Bury committed
9
:Author: Nexedi <re6stnet@erp5.org>
Guillaume Bury's avatar
Guillaume Bury committed
10

Guillaume Bury's avatar
Guillaume Bury committed
11 12
Overview
========
Guillaume Bury's avatar
Guillaume Bury committed
13

Guillaume Bury's avatar
Guillaume Bury committed
14 15 16
re6stnet creates a resilient, scalable, ipv6 network on top of an existing ipv4
network, by creating tunnels on the fly, and then routing targeted traffic
through these tunnels.
Guillaume Bury's avatar
Guillaume Bury committed
17

Julien Muchembled's avatar
Julien Muchembled committed
18
re6stnet can be used to:
19

Guillaume Bury's avatar
Guillaume Bury committed
20
- guarantee connectedness between computers connected to the
Julien Muchembled's avatar
Julien Muchembled committed
21 22 23
  internet, for which there exists a working route (in case the direct route
  isn't available).
- create large networks
Guillaume Bury's avatar
Guillaume Bury committed
24
- give ipv6 addresses to machines with only ipv4 available
Guillaume Bury's avatar
Guillaume Bury committed
25

Guillaume Bury's avatar
Guillaume Bury committed
26 27
HOW IT WORKS
============
Guillaume Bury's avatar
Guillaume Bury committed
28

Julien Muchembled's avatar
Julien Muchembled committed
29 30 31 32
A re6stnet network consists of at least one server (re6st-registry) and many
nodes (re6stnet). The server is only used to deliver certificates for secure
authentification in establishing tunnels, and to bootstrap new nodes.
re6stnet can detect and take into account nodes present on the local network.
Guillaume Bury's avatar
Guillaume Bury committed
33

Guillaume Bury's avatar
Guillaume Bury committed
34 35
Resilience
----------
Julien Muchembled's avatar
Julien Muchembled committed
36
re6stnet guarantees that if there exists a route between two machines,
Guillaume Bury's avatar
Guillaume Bury committed
37
traffic will be correctly routed between these two machines.
Julien Muchembled's avatar
Julien Muchembled committed
38 39
Even if the registry node is down, the probability that the network isn't
connected is very low for big enough networks (more than a hundred nodes).
Guillaume Bury's avatar
Guillaume Bury committed
40

Guillaume Bury's avatar
Guillaume Bury committed
41 42
Scalability
-----------
Guillaume Bury's avatar
Guillaume Bury committed
43

Guillaume Bury's avatar
Guillaume Bury committed
44 45
Since each node has very few data about the network, re6stnet is easily
scalable to tens of thousand of nodes
Guillaume Bury's avatar
Guillaume Bury committed
46

Guillaume Bury's avatar
Guillaume Bury committed
47 48
Requirements
============
Guillaume Bury's avatar
Guillaume Bury committed
49

Julien Muchembled's avatar
Julien Muchembled committed
50
- Python 2.6 or 2.7
Guillaume Bury's avatar
Guillaume Bury committed
51 52
- OpenSSL binary and development libraries
- OpenVPN
Julien Muchembled's avatar
Julien Muchembled committed
53 54 55
- Babel_
- python-miniupnpc for UPnP support (optional)
- for the demo: miniupnpd_, Graphviz, Screen, Nemu_
Guillaume Bury's avatar
Guillaume Bury committed
56

Julien Muchembled's avatar
Julien Muchembled committed
57 58 59 60 61
See also `setup.py` for Python dependencies.

.. _Babel: http://www.pps.univ-paris-diderot.fr/~jch/software/babel/
   _Nemu: http://code.google.com/p/nemu/
   _miniupnpd: http://miniupnp.free.fr/
Guillaume Bury's avatar
Guillaume Bury committed
62

Guillaume Bury's avatar
Guillaume Bury committed
63 64
Installation
============
Guillaume Bury's avatar
Guillaume Bury committed
65

Julien Muchembled's avatar
typos  
Julien Muchembled committed
66
re6stnet is distributed as a Python egg, and is also packaged for DEB & RPM
67
based distributions:
Guillaume Bury's avatar
Guillaume Bury committed
68

Julien Muchembled's avatar
Julien Muchembled committed
69 70
See `re6st-registry` to set up a re6st network
and `re6st-conf` to join an existing network.
Julien Muchembled's avatar
Julien Muchembled committed
71 72

On Debian Squeeze, you will have to install `babeld` package from Wheezy.
73 74 75 76 77 78

In order to build DEB snapshot package whose version is derived from current
Git revision, the `debian/changelog` file must be generated automatically,
that's why you can't use `dpkg-buildpackage` directly: run ``debian/rules``
instead. RPM does not have this limitation: do `rpmbuild -bb re6stnet.spec``
as usual.