Ich habe mein persönliches VPN, das mehrere Geräte verbindet, damit diese feste IP-Adressen in einem immer erreichbaren Netzwerk haben können (solange sie mit dem Internet verbunden sind). Dies ist für mich notwendig, da meine Geräte in verschiedenen und unvorhersehbaren Netzwerken (4G-Netzwerk-Mobiltelefon, Laptop an der Universität, Heimserver zu Hause) unterwegs sein können und ich einen Sicherungsserver habe, der eine Verbindung zu ihnen herstellen muss (und manchmal) Muss ich auch).
Ich denke auch darüber nach, so etwas wie Synchronisation zu installieren, was auch von geringeren Latenzen und engeren Knoten profitieren kann.
Außerdem bin ich faul und mag es, die Musik von meinem Smartphone auf meinem Heimserver abzuspielen / anzuhalten, die sich möglicherweise nicht im selben Netzwerk befindet (sollte es, ist aber nicht immer der Fall).
Das bedeutet, ich habe einen OpenVPN-Server und der openvpn
Client läuft auf jedem Gerät. Sie stellen alle eine Verbindung zum Server her, und der Datenverkehr von zwei beliebigen Knoten muss über den Server geleitet werden, der relativ weit entfernt ist und einen sehr begrenzten Durchsatz aufweist. Dies bedeutet Latenz und Langsamkeit. Und wenn ich die "Pause" -Taste drücke, kann es bis zu 10 Sekunden dauern, bis die Musik tatsächlich angehalten wird. Auch wenn sich beide Knoten im selben LAN befinden (da sie über das VPN kommunizieren). Meh.
Im Idealfall sollte es eine Möglichkeit geben, ein VPN zu erstellen, das die kürzesten Wege zwischen Knoten finden und versuchen kann, diese direkt zu verbinden. So wie Skype mit Superknoten funktioniert hat?
Während der Server weit von hier entfernt ist, hat einer der Knoten eine öffentliche IP-Adresse und kann von den anderen Knoten erreicht werden. Es könnte als Server von ihnen fungieren - auch wenn es nicht der Server selbst ist, obwohl es für einige Knoten die bessere Wahl wäre .
Ich stelle mir vor, ich könnte etwas Ähnliches tun, um einen Client und einen Server zu betreiben und sie auf diesem Knoten zu überbrücken, aber das sieht nicht elegant aus. Es ist hackisch, es kompliziert die PKI, es spaltet das VPN. Es gefällt mir nicht
Obwohl ich ein einfaches VPN wie PPTP verwenden könnte, das die Sicherheit der Kommunikation nicht wirklich gewährleistet, habe ich beschlossen, Bacula nicht so zu konfigurieren, dass die Verbindungen zwischen den Knoten verschlüsselt werden, was bedeutet, dass der Datenverkehr im VPN einfach ist. Die VPN-Kapselung ist die einzige Sicherheit, daher sollte sie nicht schwach sein. Alles, was das "mesh" -ähnliche VPN ohne Vertraulichkeit löst, wäre jedoch bereits ein guter Anfang - ich würde sicherstellen, dass der Datenverkehr über SSL / TLS gestartet wird.
Dies scheint ein Problem zu sein, das möglicherweise schon jemand anderes hatte und das inzwischen gelöst wurde. Gibt es so etwas?
Es besteht auch die Möglichkeit, dass ich das falsch betrachte, aber bisher scheint es der beste Ansatz zu sein, um sicherzustellen, dass ich mich immer mit einem meiner Geräte aus der Ferne verbinden kann, unabhängig davon, wo ich mich befinde oder wo sie sich befinden.
quelle
Antworten:
Ich bin mir nicht sicher, ob es Ihre Bedürfnisse vollständig erfüllt, aber Sie sollten sich wahrscheinlich tinc ansehen: http://www.tinc-vpn.org/ . Es entspricht ziemlich genau dem von Ihnen beschriebenen Mesh-Netzwerk, das von einem zentralen Server orchestriert wird, aber ich bin nicht sicher, ob es gelingen wird, Peers in Ihrem lokalen Netzwerk zu finden.
quelle
Das einfachste Mesh-VPN, das ich gefunden und verwendet habe, ist PeerVPN ( http://www.peervpn.net/ ).
PeerVPN-Funktionen
Die Konfiguration ist einfach. Eine Konfigurationsdatei, die Sie bearbeiten, und für das grundlegende Mesh-VPN sind nur 6 Einstellungen erforderlich. Weitere Informationen finden Sie im PeerVPN-Tutorial (nur 1 Seite): http://www.peervpn.net/tutorial/
Der PSK-Verschlüsselungs- / Authentifizierungsschlüssel kann bis zu 512 Bit (64 Byte) umfassen.
Ich habe Peervpn bisher auf mehreren Remote-Servern eingerichtet und es funktioniert sehr gut. Außerdem ist kein "Superknoten" erforderlich, wie dies bei anderen Mesh-VPN-Implementierungen der Fall sein kann.
Knoten in Peervpn erfahren automatisch, welche Knoten dem VPN neu hinzugefügt wurden, ohne dass die Konfiguration geändert werden muss. Knoten-zu-Knoten-Verkehr erfolgt ebenfalls direkt und nicht über einen zentralen VPN-Hub.
Hinweis: Lesen Sie die Standarddatei peervpn.conf, um mehr über viele andere Optionen zu erfahren, die Sie nutzen können. Aber für das grundlegende Mesh-VPN, wie ich bereits sagte, müssen Sie nur 6 Optionen einstellen (Name des VPN, PSK, IP-Adresse des lokalen Tunnelendpunkts, "Name" der Schnittstelle, die Sie auf Ihrem Linux-System sehen / verwenden möchten und Portnummer, für die Sie es verwenden möchten) "that" vpn ... note Sie können Peervpn für mehrere unabhängige VPNs auf einem Server verwenden.)
quelle
Ich hatte vor Jahren genau das gleiche Problem. Ich hatte ungefähr 30 Büros, die alle in der Lage sein mussten, direkt zu kommunizieren, aber sie waren in einer "Hub-and-Spoke" -Konfiguration eingerichtet. In Python habe ich ein Tool geschrieben, mit dem die
n x (n-1)/2
Anzahl der Verbindungen in OpenVPN zwischen den Büros automatisch generiert werden kann . Später fügte ich zur Unterstützung des RIP-Routings zwischen den Standorten nach einem bizarren Comcast-Problem hinzu, bei dem ein Büro alle anderen sehen konnte, aber nicht das Hauptbüro. Schließlich habe ich die Möglichkeit hinzugefügt, Reverse-DNS für die Link-IPs automatisch zu generieren und die Pakete an jeden Router zu senden.Schauen Sie sich OpenMesher an . Erst heute morgen habe ich beschlossen, es für ein anstehendes Projekt abzuwischen. Hoffentlich macht es, was Sie wollen. Wenn nicht, können Sie uns gerne ein Problem melden, und ich werde Ihnen helfen.
quelle