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

29 30
How to pronounce `re6st`? Like `resist`.

Guillaume Bury's avatar
Guillaume Bury committed
31 32
HOW IT WORKS
============
33

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

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

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

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

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

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

Julien Muchembled's avatar
Julien Muchembled committed
62 63
See also `setup.py` for Python dependencies.

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

Guillaume Bury's avatar
Guillaume Bury committed
69 70
Installation
============
71

Julien Muchembled's avatar
Julien Muchembled committed
72 73 74 75
| 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
76

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

Jean-Paul Smets's avatar
Jean-Paul Smets committed
80 81 82 83
References
==========

| Building a resilient overlay network : Re6stnet
Jean-Paul Smets's avatar
Jean-Paul Smets committed
84
|   http://www.j-io.org/P-ViFiB-Resilient.Overlay.Network/Base_download
Jean-Paul Smets's avatar
Jean-Paul Smets committed
85 86
| GrandeNet - The Internet on Steroids
|   https://www.nexedi.com/blog/NXD-Document.Blog.Grandenet.Internet.On.Steroids
Jean-Paul Smets's avatar
Jean-Paul Smets committed
87 88
| Grandenet success case
|  https://www.nexedi.com/success/erp5-GKR.Success.Case
Jean-Paul Smets's avatar
Jean-Paul Smets committed
89 90
| n-Order Re6st - Achieving Resiliency and Scaliblity
|  https://www.nexedi.com/blog/NXD-Document.Blog.N.Order.Res6st.Resiliency.And.Scalability
Jean-Paul Smets's avatar
Jean-Paul Smets committed
91

Julien Muchembled's avatar
Julien Muchembled committed
92 93
Usage
=====
94

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