README 2.33 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>
10

Guillaume Bury's avatar
Guillaume Bury committed
11 12
Overview
========
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.
17

Guillaume Bury's avatar
Guillaume Bury committed
18
re6stnet can be used to :
19

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


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

Guillaume Bury's avatar
Guillaume Bury committed
30 31 32 33 34
A re6stnet networks consists of at least one server ( re6st-registry ) and many
clients or nodes ( re6stnet ). The server delivers certificates for secure
authentification in establishing tunnels, and - for now - store the complete
list of nodes running.
re6stnet detects and take into accounts nodes present on the local network.
35

Guillaume Bury's avatar
Guillaume Bury committed
36 37 38 39 40 41 42 43
Resilience
----------
re6stnet can guarantee that if there exists a route between two machines,
traffic will be correctly routed between these two machines.
Since the destination of established connection are random, there can be no
guarantee that such a route exists given which tunnels are established, but
for big enough networks ( more than a hundred nodes ), the probability that
the network isn't connected is very low.
44

Guillaume Bury's avatar
Guillaume Bury committed
45 46
Scalability
-----------
47

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

Guillaume Bury's avatar
Guillaume Bury committed
51 52
Requirements
============
53

Guillaume Bury's avatar
Guillaume Bury committed
54
- Python 2.7 or later
55

Guillaume Bury's avatar
Guillaume Bury committed
56
- OpenSSL binary and development libraries
57

Guillaume Bury's avatar
Guillaume Bury committed
58
- OpenVPN
59

Guillaume Bury's avatar
Guillaume Bury committed
60
- Babel ( http://www.pps.univ-paris-diderot.fr/~jch/software/babel/ )
61

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

Guillaume Bury's avatar
Guillaume Bury committed
65
Let's explain how to install the egg
66

Guillaume Bury's avatar
Guillaume Bury committed
67 68
Commercial Support
==================
69

Guillaume Bury's avatar
Guillaume Bury committed
70
Later....
71

Guillaume Bury's avatar
Guillaume Bury committed
72 73 74 75 76 77 78 79 80
.. The organisation of the code
    re6stnet.py         Client : Init and main loop
    re6st/plib.py             Launch server/client/routing processes
    re6st/utils.py            Small functions to do useful jobs
    re6st/db.py               Manage the peer database
    re6st/tunnel.py           Manage the tunnels
    re6st/upnpigd.py          Forward ports
    re6st-conf.py       Get certificates from server
    re6st-registry.py   Server : deliver certificates and distribute peers