From 1a5ae67ff887d29b1d9f5bd332b51e30ce6a6937 Mon Sep 17 00:00:00 2001 From: lemoer 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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 literal 0 HcmV?d00001 diff --git a/docs/features/vpn.rst b/docs/features/vpn.rst new file mode 100644 index 00000000..59f4d7c7 --- /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 +