From 1a5ae67ff887d29b1d9f5bd332b51e30ce6a6937 Mon Sep 17 00:00:00 2001
From: lemoer <git@irrelefant.net>
Date: Mon, 19 Feb 2018 08:01:06 +0100
Subject: [PATCH] docs: add general documentation about vpn protocols (#1330)

---
 docs/features/fastd_mode.gif | Bin 0 -> 28792 bytes
 docs/features/vpn.rst        |  57 +++++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+)
 create mode 100644 docs/features/fastd_mode.gif
 create mode 100644 docs/features/vpn.rst

diff --git a/docs/features/fastd_mode.gif b/docs/features/fastd_mode.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9f97074ff1c3b3ea0eb2d64a9d351c58aa956a53
GIT binary patch
literal 28792
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
z%0A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

literal 0
HcmV?d00001

diff --git a/docs/features/vpn.rst b/docs/features/vpn.rst
new file mode 100644
index 000000000..59f4d7c79
--- /dev/null
+++ b/docs/features/vpn.rst
@@ -0,0 +1,57 @@
+Mesh-VPN
+========
+
+Gluon integrates several OSI-Layer 2 tunneling protocols to
+enable interconnects between local meshes and provide
+internetwork access. Available protocols currently are:
+
+- fastd
+- L2TPv3 (via tunneldigger)
+
+fastd is a lightweight userspace tunneling daemon, that
+implements cipher suites that are specifically designed
+to work well on embedded devices. It offers encryption
+and authentication. Its primary drawback are the necessary
+context-switches when forwarding packets.
+
+L2TPv3 is an in-kernel tunneling protocol that performs well,
+but offers no security properties by itself.
+The brokering of the tunnel happens through tunneldigger,
+its primary drawback being the lack of IPv6 support.
+
+fastd
+-----
+
+Configurable Cipher
+^^^^^^^^^^^^^^^^^^^
+
+
+From the site configuration fastd can be allowed to offer
+toggleable encryption in the config mode with the intent to
+increase throughput, although in practice the gain is minimal.
+
+**Site configuration:**
+
+1) Install ``gluon-web-mesh-vpn-fastd`` in ``site.mk``
+2) Set ``mesh_vpn.fastd.configurable = true`` in ``site.conf``
+
+**Gateway configuration:**
+
+1) Prepend the ``none`` cipher in fastds method list
+
+
+**Config Mode:**
+The resulting firmware will allow users to choose between secure (encrypted) and fast (unencrypted) transport.
+
+.. image:: fastd_mode.gif
+
+**Unix socket:**
+To confirm whether the correct cipher is being used, fastds unix
+socket can be interrogated, after installing for example `socat`.
+
+::
+
+       opkg update
+       opkg install socat
+       socat - UNIX-CONNECT:/var/run/fastd.mesh_vpn.socket
+
-- 
GitLab