PROJECT_MOVED -> https://lab.nexedi.com/nexedi/re6stnet
[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 large networks
24 - give ipv6 addresses to machines with only ipv4 available
25
26 HOW IT WORKS
27 ============
28
29 A re6stnet network consists of at least one server (re6st-registry) and many
30 nodes (re6stnet). The server is only used to deliver certificates for secure
31 authentification in establishing tunnels, and to bootstrap new nodes.
32 re6stnet can detect and take into account nodes present on the local network.
33
34 Resilience
35 ----------
36 re6stnet guarantees that if there exists a route between two machines,
37 traffic will be correctly routed between these two machines.
38 Even if the registry node is down, the probability that the network isn't
39 connected is very low for big enough networks (more than a hundred nodes).
40
41 Scalability
42 -----------
43
44 Since each node has very few data about the network, re6stnet is easily
45 scalable to tens of thousand of nodes
46
47 Requirements
48 ============
49
50 - Python 2.6 or 2.7
51 - OpenSSL binary and development libraries
52 - OpenVPN
53 - Babel_ (with Nexedi patches)
54 - python-miniupnpc for UPnP support (optional)
55 - for the demo: miniupnpd_, Graphviz, Screen, Nemu_
56
57 See also `setup.py` for Python dependencies.
58
59 .. _Babel: http://git.erp5.org/gitweb/babeld.git
60 .. _Nemu: http://code.google.com/p/nemu/
61 .. _miniupnpd: http://miniupnp.free.fr/
62
63 Installation
64 ============
65
66 re6stnet is distributed as a Python egg, and is also packaged for DEB & RPM
67 based distributions:
68
69 See `re6st-registry` to set up a re6st network
70 and `re6st-conf` to join an existing network.
71
72 On Debian Squeeze, you will have to install `babeld` package from Wheezy.
73
74 In order to build DEB snapshot package whose version is derived from current
75 Git revision, the `debian/changelog` file must be generated automatically,
76 that's why you can't use `dpkg-buildpackage` directly: run ``debian/rules``
77 instead. RPM does not have this limitation: do `rpmbuild -bb re6stnet.spec``
78 as usual.