projekte:vpn:start

Dies ist eine alte Version des Dokuments!


Übersicht über ausgewählte VPN-Technologien

fastd wireguard l2tp
Stärke Unterstützt l2 und l3 Netze, ist vorhanden doppelt so schnell wie fastd schnell (wie schnell?)
Challenge ist langsam viele Interfaces serverseitig , ausschließlich l3 Netze keine Authentifizierung

Wireguard

Wireguard ist neu, schnell und dem Anschein nach gut geeignet für layer 3 Netze. Folgende Herausforderungen sind zu lösen:

* Hierfür wird ein eigenes Protokoll geschaffen 'wireguard' * Interfaces werden mit einer statischen ll-Adresse konfiguriert. Serverseitig fe80::1/64, am Node mit fe80::2/64 * public keys werden per TCP vom node zum Gateway übermittelt sodass dort Interfaces eingerichtet werden. Dabei wird auf dem wireguard-Port mit TCP-Protokoll kommuniziert. Der Serverdienst hierfür läuft auf dem gw. * Hat ein Interface mehr als 7 Minuten keinen handshake gesehen, wird es serverseitig gelöscht. Ist am node ein handshake mehr als 7 Minuten nicht erfolgt, wird der brokerprozess mit keyübermittlung gestartet. * traffic shaping ist bei mehr als einer VPN-Verbindung ineffektiv, weil es je peer ein eigenes interface gibt. Auf dem müsste man shapen, in Gesamtsumme kommt am wan-interface mehr traffic an als geplant. Wie lösen wir das?

Der Server muss alle Public Keys der Nodes kennen und Interfaces erzeugen. Im wireguard Contrib-Verzeichnis gibt es eine Beispielimplementierung von ncat-client-server in bash, durch die public keys vom node zum server transportiert werden und dort WG-Interfaces erzeugt werden. Hierbei kann eine Prüfung gegen eine vorher eingestellte whitelist erfolgen.

Bislang gibt es die Idee, periodisch zu prüfen ob die Interfaces aktiv sind und bei Inaktivität zu entfernen. Neuanlage erfolgt bei Bedarf wie bei einem neuen Node mittels Key Exchange.

Wie prüft man ob das Interface noch da ist?

  • man könnte periodisch pings schicken
  • man könnte in der neighbour-Tabelle auf dem Server nachsehen (haben wir angeschaut, geht nicht). Sofern der remote noch da ist, gibt es dort einen Eintrag. Damit das sinnvoll funktioniert, muss ggf am Server das neighbour-purge-timeout (ähnlich wie bei l3roamd auch) heruntergeregelt werden.
  • ES gibt in wireguard ein last_handshake. Ist der nutzbar?
  • projekte/vpn/start.1534749183.txt.gz
  • Zuletzt geändert: 20.08.2018 07:13
  • von christf