Ich konnte einen OpenVPN-Server mit mehreren Clients mit statischen IPs einrichten. Die statische IP wird durch Hinzufügen einer Zeile wie ifconfig-push 192.168.254.6 192.168.255.1
im CCD für jeden der Clients festgelegt. Ich kann vom Server aus jeden dieser Clients per Ping oder SSH erreichen. In meiner Serverkonfiguration habe ich (unter anderem) die folgenden Zeilen:
server 192.168.255.0 255.255.255.0
Und
route 192.168.254.0 255.255.255.0
Was ich jetzt versuche, ist, per SSH oder Curl von einem Client zum anderen zu wechseln. Nachdem ich die Dokumentation gelesen hatte, fügte ich die Zeile client-to-client
zur Konfiguration hinzu. Mir ist aufgefallen, dass beim Neustart der Server und erneuten Verbinden der Clients die folgende Zeile ip route
zu meinen Clients hinzugefügt wurde:
192.168.255.0/24 via 192.168.255.1 dev tun0
Ich scheine es so zu verstehen, dass es dem Client anzeigt, dass jede Adresse 192.168.255.X
zum VPN-Server gehen würde. Und tatsächlich habe ich versucht, dies zu überprüfen, indem ich Folgendes ausgeführt traceroute 192.168.255.30
und erhalten habe:
traceroute to 192.168.255.30 (192.168.255.30), 30 hops max, 60 byte packets
1 192.168.255.1 (192.168.255.1) 11.454 ms 14.491 ms 14.493 ms
Die anderen Clients, mit denen ich mich verbinden möchte, haben jedoch Adressen wie 192.168.254.X
diese. Ich glaube, ich übersehe etwas und weiß nicht genau, was. Ich habe versucht, diese Route manuell hinzuzufügen:
ip route add 192.168.254.0/24 via 192.168.255.1 dev tun0
Das würde für mich bedeuten, dass auch Adressen wie 192.168.254.X über den VPN-Server laufen. Wenn ich das aber mache, traceroute 192.168.254.30
sind die Ergebnisse anders:
traceroute 192.168.254.30
traceroute to 192.168.254.30 (192.168.254.30), 30 hops max, 60 byte packets
Das kann ich auch vom Client-Rechner aus, ping 192.168.255.1
aber ich kann keine anderen Clients im Bereich 254 anpingen, wie z . B. ping 192.168.254.30
.
Meine Netzwerkkenntnisse sind recht begrenzt. Was fehlt, um einem Client 192.168.254.30
den Zugriff auf Dienste eines anderen Clients zu ermöglichen?192.168.254.32
Aktualisieren:Ich habe einen neuen Client mit dem VPN verbunden, dieses Mal in der CCD-Datei eine IP im Bereich 192.168.255.X zugewiesen und dann versucht, Traceroute von dem Client aus auszuführen, mit dem ich getestet habe. Ich kann auch mit diesem Client im Bereich 255 keine Verbindung herstellen. Außerdem passiert Folgendes, wenn ich Traceroute ausführe.
Dieser neue Client hat 192.168.255.22
. Wenn ich das in meinem Testclient mache, erhalte ich traceroute 192.168.255.3
:
traceroute to 192.168.255.3 (192.168.255.3), 30 hops max, 60 byte packets
1 192.168.255.1 (192.168.255.1) 11.481 ms 21.192 ms 21.472 ms
Dasselbe passiert für IPs 4, 5, 6 ..., die keine Clients haben, bis ich herausfinde, 22
welche die IP des neuen Clients ist. In diesem Fall erhalte ich Folgendes traceroute 192.168.255.22
:
traceroute to 192.168.255.22 (192.168.255.22), 30 hops max, 60 byte packets
Warum passiert das?
Antwort1
Es klingt, als würden Sie versuchen, den Verkehr zwischen verschiedenen Subnetzen über den OpenVPN-Server zu leiten. Dies ist möglich, aber Sie müssen einige zusätzliche Änderungen an Ihrer OpenVPN-Konfiguration vornehmen.
Als Erstes müssen Sie beachten, dass die server
Direktive in Ihrer OpenVPN-Konfigurationsdatei das Subnetz definiert, das der Server selbst verwenden wird. In Ihrem Fall wird der Server das Subnetz verwenden . Dies bedeutet, dass den Clients IP-Adressen in diesem Bereich 192.168.255.0/24
zugewiesen werden .192.168.255.X
Die route
Direktive hingegen definiert eine Route für den Datenverkehr von den OpenVPN-Clients zu einem bestimmten Subnetz. In Ihrem Fall route
teilt die Direktive dem OpenVPN-Server mit, dass der Datenverkehr von den Clients an das 192.168.254.0/24
Subnetz weitergeleitet werden soll.
Dies reicht jedoch nicht aus, damit Clients über verschiedene Subnetze hinweg miteinander kommunizieren können. Sie müssen push
Ihrer OpenVPN-Serverkonfigurationsdatei auch eine Anweisung hinzufügen. Diese Anweisung weist den OpenVPN-Server an, Routen an die Clients zu senden, damit diese wissen, wie sie den Datenverkehr an andere Subnetze weiterleiten müssen.
Hier ist ein Beispiel, wie die Push-Direktive in Ihrer Konfigurationsdatei aussehen könnte:
push "route 192.168.254.0 255.255.255.0"
Diese Anweisung weist den OpenVPN-Server an, eine Route an die Clients zu senden und sie anzuweisen, den Datenverkehr 192.168.254.0/24
über den OpenVPN-Server zum Subnetz zu leiten.
Sie müssen außerdem sicherstellen, dass die client-to-client
Direktive in Ihrer Serverkonfiguration aktiviert ist. Diese Direktive weist den OpenVPN-Server an, Clients die direkte Kommunikation untereinander zu gestatten, ohne dass ihr Datenverkehr über den Server geleitet werden muss.
Nachdem Sie diese Änderungen an Ihrer Konfiguration vorgenommen haben, sollten Sie Ihre Clients mit dem OpenVPN-Server verbinden und über verschiedene Subnetze hinweg miteinander kommunizieren können.
Es ist zu beachten, dass die client-to-client
Direktive nur Clients erlaubt, miteinander zu kommunizieren, die dasselbe Subnetz verwenden. Wenn ein Client beispielsweise eine IP-Adresse in diesem 192.168.255.X
Bereich hat, kann er nur mit anderen Clients kommunizieren, die ebenfalls IP-Adressen in diesem 192.168.255.X
Bereich haben. Damit Clients in verschiedenen Subnetzen miteinander kommunizieren können, müssen Sie die Push-Direktive wie oben beschrieben verwenden.