A few bug solved
[re6stnet.git] / README
1 ==========
2  re6stnet
3 ==========
4
5 ---------------------------------------------
6 Resilient, Scalable, IPv6 Network application
7 ---------------------------------------------
8
9 :Author: Nexedi <re6stnet@erp5.org>
10
11 Overview
12 ========
13
14 re6stnet creates a resilient, scalable, ipv6 network on top of an existing ipv4
15 network, by creating tunnels on the fly, and then routing targeted traffic
16 through these tunnels.
17
18 re6stnet can be used to :
19
20 - guarantee connectedness between computers connected to the
21   internet, for which there exists a working route ( in case the direct route
22   isn't available ).
23 - create very large networks
24 - give ipv6 addresses to machines with only ipv4 available
25
26
27 HOW IT WORKS
28 ============
29
30 A re6stnet networks consists of at least one server ( re6st-registry ) and many
31 clients or nodes ( re6stnet ). The server delivers certificates for secure
32 authentification in establishing tunnels, and - for now - store the complete
33 list of nodes running.
34 re6stnet detects and take into accounts nodes present on the local network.
35
36 Resilience
37 ----------
38 re6stnet can guarantee that if there exists a route between two machines,
39 traffic will be correctly routed between these two machines.
40 Since the destination of established connection are random, there can be no
41 guarantee that such a route exists given which tunnels are established, but
42 for big enough networks ( more than a hundred nodes ), the probability that
43 the network isn't connected is very low.
44
45 Scalability
46 -----------
47
48 Since each node has very few data about the network, re6stnet is easily
49 scalable to tens of thousand of nodes
50
51 Requirements
52 ============
53
54 - Python 2.7 or later
55
56 - OpenSSL binary and development libraries
57
58 - OpenVPN
59
60 - Babel ( http://www.pps.univ-paris-diderot.fr/~jch/software/babel/ )
61
62 Installation
63 ============
64
65 Let's explain how to install the egg
66
67 Commercial Support
68 ==================
69
70 Later....
71
72 .. The organisation of the code
73     re6stnet.py         Client : Init and main loop
74     re6st/plib.py             Launch server/client/routing processes
75     re6st/utils.py            Small functions to do useful jobs
76     re6st/db.py               Manage the peer database
77     re6st/tunnel.py           Manage the tunnels
78     re6st/upnpigd.py          Forward ports
79     re6st-conf.py       Get certificates from server
80     re6st-registry.py   Server : deliver certificates and distribute peers