========== re6stnet ========== --------------------------------------------- Resilient, Scalable, IPv6 Network application --------------------------------------------- :Author: Nexedi <re6stnet@erp5.org> 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 very large networks - give ipv6 addresses to machines with only ipv4 available HOW IT WORKS ============ A re6stnet networks consists of at least one server ( re6st-registry ) and many clients or nodes ( re6stnet ). The server delivers certificates for secure authentification in establishing tunnels, and - for now - store the complete list of nodes running. re6stnet detects and take into accounts nodes present on the local network. Resilience ---------- re6stnet can guarantee that if there exists a route between two machines, traffic will be correctly routed between these two machines. Since the destination of established connection are random, there can be no guarantee that such a route exists given which tunnels are established, but for big enough networks ( more than a hundred nodes ), the probability that the network isn't connected is very low. Scalability ----------- Since each node has very few data about the network, re6stnet is easily scalable to tens of thousand of nodes Requirements ============ - Python 2.7 or later - OpenSSL binary and development libraries - OpenVPN - Babel ( http://www.pps.univ-paris-diderot.fr/~jch/software/babel/ ) Installation ============ Let's explain how to install the egg Commercial Support ================== Later.... .. The organisation of the code re6stnet.py Client : Init and main loop re6st/plib.py Launch server/client/routing processes re6st/utils.py Small functions to do useful jobs re6st/db.py Manage the peer database re6st/tunnel.py Manage the tunnels re6st/upnpigd.py Forward ports re6st-conf.py Get certificates from server re6st-registry.py Server : deliver certificates and distribute peers