README.rst 2.37 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

9
:Contact: Julien Muchembled <jm@nexedi.com>
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

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
25

Julien Muchembled's avatar
Julien Muchembled committed
26 27 28
Building an ipv4 network is also supported if you have software that does not
support ipv6.

Guillaume Bury's avatar
Guillaume Bury committed
29 30
HOW IT WORKS
============
31

Julien Muchembled's avatar
Julien Muchembled committed
32 33
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
Julien Muchembled's avatar
Julien Muchembled committed
34
authentication in establishing tunnels, and to bootstrap new nodes.
Julien Muchembled's avatar
Julien Muchembled committed
35
re6stnet can detect and take into account nodes present on the local network.
36

Guillaume Bury's avatar
Guillaume Bury committed
37 38
Resilience
----------
Julien Muchembled's avatar
Julien Muchembled committed
39
re6stnet guarantees that if there exists a route between two machines,
Guillaume Bury's avatar
Guillaume Bury committed
40
traffic will be correctly routed between these two machines.
Julien Muchembled's avatar
Julien Muchembled committed
41 42
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).
43

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

Julien Muchembled's avatar
Julien Muchembled committed
47 48
Since nodes don't need to know the whole graph of the network, re6stnet is
easily scalable to tens of thousand of nodes.
49

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

Julien Muchembled's avatar
Julien Muchembled committed
53
- Python 2.6 or 2.7
Guillaume Bury's avatar
Guillaume Bury committed
54
- OpenSSL binary and development libraries
Julien Muchembled's avatar
Julien Muchembled committed
55
- OpenVPN >= 2.3
56
- Babel_ (with Nexedi patches)
Julien Muchembled's avatar
Julien Muchembled committed
57
- python-miniupnpc for UPnP support (optional)
Julien Muchembled's avatar
Julien Muchembled committed
58
- for the demo: miniupnpd_, Graphviz, Screen_, Nemu_
59

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

Julien Muchembled's avatar
Julien Muchembled committed
62 63
.. _Babel: https://lab.nexedi.com/nexedi/babeld
.. _Nemu: https://github.com/thetincho/nemu
Julien Muchembled's avatar
Julien Muchembled committed
64
.. _miniupnpd: http://miniupnp.free.fr/
Julien Muchembled's avatar
Julien Muchembled committed
65
.. _Screen: http://savannah.gnu.org/projects/screen
66

Guillaume Bury's avatar
Guillaume Bury committed
67 68
Installation
============
69

Julien Muchembled's avatar
Julien Muchembled committed
70 71 72 73
| Official packaging is implemented at
|   https://lab.nexedi.com/nexedi/slapos.package/tree/master/obs/re6st
| and packages are built for many Linux distributions at
|   https://build.opensuse.org/package/show/home:VIFIBnexedi/Re6stnet
74

Julien Muchembled's avatar
Julien Muchembled committed
75 76
| re6stnet is also distributed as a Python egg:
|   https://pypi.python.org/pypi/re6stnet
77

Julien Muchembled's avatar
Julien Muchembled committed
78 79
Usage
=====
80

Julien Muchembled's avatar
Julien Muchembled committed
81
See ``re6stnet``\ (8) man page.