add test runner
zhifan huang authored
5cd81507
Name Last commit Last update
daemon Drop NetworkManager/ifupdown support for setups that are bound to an interface
debian debian: dh-systemd is a transitional package
demo demo: add script to clean when demo is not stopped in a right way
docs doc: clarify system configuration when using --default
draft re6st-geo: quick'n dirty update to at least in which countries nodes are spread
examples doc: fix fw example: iptables does not have REJECT policy.
re6st Reduce width of lines over 80 characters
simulation Update in simulations
tests add test runner
.gitignore Egg packaging
CHANGES.rst doc: add file extension to CHANGES/README for automatic rendering in GitLab
COPYING Package for RPM-based distributions and add missing licence file
MANIFEST.in fixup! doc: add file extension to CHANGES/README for automatic rendering in GitLab
Makefile Drop NetworkManager/ifupdown support for setups that are bound to an interface
README.rst Drop support for Python 2.6
TODO Update TODO
re6st-conf dist: use new entry_points['console_scripts'] way to ship scripts
re6st-registry dist: use new entry_points['console_scripts'] way to ship scripts
re6stnet dist: use new entry_points['console_scripts'] way to ship scripts
re6stnet.spec Drop NetworkManager/ifupdown support for setups that are bound to an interface
setup.py add test runner

re6stnet

Resilient, Scalable, IPv6 Network application

Contact: Julien Muchembled <jm@nexedi.com>

Overview

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.

re6stnet can be used to:

  • guarantee connectedness between computers connected to the internet, for which there exists a working route (in case the direct route isn't available).
  • create large networks
  • give ipv6 addresses to machines with only ipv4 available

Building an ipv4 network is also supported if one has software that does not support ipv6.

How to pronounce re6st? Like resist.

HOW IT WORKS

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 authentication of peers, and to bootstrap new nodes. re6stnet can detect and take into account nodes present on the local network.

Resilience

re6stnet guarantees that if there exists a route between two machines, traffic will be correctly routed between these two machines. Even if the registry node is down, the probability that the network is not connected is very low for big enough networks (more than a hundred nodes).

Scalability

Since nodes don't need to know the whole graph of the network, re6stnet is easily scalable to tens of thousand of nodes.

Requirements

See also setup.py for Python dependencies.

Installation

Packages (preferred method)

We are providing a re6st-node package for many distributions. In order to install it, go to

https://build.opensuse.org/package/show/home:VIFIBnexedi/Re6stnet

and find your distribution on the build result at the right of the page. Once you have your distribution name <DISTRIB_NAME>, the repository to add is

http://download.opensuse.org/repositories/home:/VIFIBnexedi/<DISTRIB_NAME>

For example (as root):

  • Ubuntu 16.04:

    echo "deb http://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu_16.04 ./" >/etc/apt/sources.list.d/re6stnet.list
    wget -qO - https://download.opensuse.org/repositories/home:/VIFIBnexedi/xUbuntu_16.04/Release.key |apt-key add -
  • Debian 9:

    echo "deb http://download.opensuse.org/repositories/home:/VIFIBnexedi/Debian_9.0 ./" >/etc/apt/sources.list.d/re6stnet.list
    wget -qO - https://download.opensuse.org/repositories/home:/VIFIBnexedi/Debian_9.0/Release.key |apt-key add -

Then:

apt update
apt install re6st-node

Python egg

re6stnet is also distributed as a Python egg:

References

Usage

See re6stnet(8) man page.