Zwei parallele OpenVPN-Tunnel Site-to-Site: Kein Zugriff auf alle Schnittstellen
Die Einrichtung
Ich habe folgende Topologie:
Router 172.25.214.1 | | | SiteB 172.25.214.0/24 | | | LAN: 172.25.214.3 OpenVPN server+client B TUN0: 172.25.215.1 TUN1: 10.1.2.2 | | | | | | VpnSiteB VpnSiteA 172.25.215.0/24 10.1.2.0/24 | | | | | | TUN1: 172.25.215.2 TUN0: 10.1.2.1 OpenVPN server+client A LAN: 10.1.1.3 | | | SiteA 10.1.1.0/24 | | | Router 10.1.1.1
An jedem Standort ist der OpenVPN Server + Client ein Raspberry Pi, auf dem eine Serverinstanz von OpenVPN und eine Clientinstanz von OpenVPN ausgeführt wird.
Die Kernel-Routing-Tabelle auf OpenVPN-Host SiteA:
Destination Gateway Genmask Flags Metric Ref Use Iface default 10.1.1.1 0.0.0.0 UG 0 0 0 eth0 10.1.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 10.1.2.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0 172.25.214.0 172.25.215.1 255.255.255.0 UG 20 0 0 tun1 172.25.214.0 10.1.2.2 255.255.255.0 UG 30 0 0 tun0 172.25.215.0 0.0.0.0 255.255.255.0 U 0 0 0 tun1
und das des OpenVPN-Hosts auf SiteB:
Destination Gateway Genmask Flags Metric Ref Use Iface default 172.25.214.1 0.0.0.0 UG 0 0 0 eth0 10.1.1.0 10.1.2.1 255.255.255.0 UG 20 0 0 tun1 10.1.1.0 172.25.215.2 255.255.255.0 UG 30 0 0 tun0 10.1.2.0 0.0.0.0 255.255.255.0 U 0 0 0 tun1 172.25.214.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 172.25.215.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
Wie Sie sehen, sind SiteA und SiteB die einzigen Netzwerke mit mehreren Routen. Die OpenVPN-Hosts ziehen es vor, über ihre Client- Schnittstelle / ihr OpenVPN-Netzwerk zum anderen Standort zu routen .
Das Problem
Die meisten Routen funktionieren gut. Jeder Host auf SiteA kann bidirektional mit kommunizieren
- Jede Hostschnittstelle auf SiteB
- Eine beliebige Hostschnittstelle auf VpnSiteA
- Eine beliebige Hostschnittstelle auf VpnSiteB außer TUN0 / 172.25.215.1
Dh ein Host auf SiteA kann ping
- 10.1.1.3
- 10.1.2.1
- 172.25.215.2
- 172.25.214.3
- 10.1.2.2
- Aber nicht 172.25.215.1
Das möchte ich lösen.
Fehlerbehebung habe ich gemacht
Test 1
Auf einem Host auf SiteA ping ich 172.25.215.1 und verfolgte, was TCPDUMP
auf beiden OpenVPN-Hosts passiert ist .
- Die Echoanforderung ist beim OpenVPN-Host SiteA über die LAN-Schnittstelle eingetroffen
- Die Echoanforderung verließ den OpenVPN-Host SiteA auf seiner TUN1-Schnittstelle
- Die Echoanforderung ist beim OpenVPN-Host SiteB auf der TUN0-Schnittstelle eingetroffen
- Echo-Antwort verließ den OpenVPN-Host SiteB auf seiner TUN1-Schnittstelle
- Auf den Schnittstellen von OpenVPN-Host SiteA ist keine Echoantwort eingegangen .
Also hier geht etwas schief.
Test 2
Ich habe den OpenVPN-Server auf dem OpenVPN-Host von SiteA deaktiviert und den OpenVPN-Client auf dem OpenVPN-Host deaktiviert, wenn SiteB. Mit anderen Worten gibt es jetzt nur noch einen Tunnel. Diesmal war es mir gelungen, 172.25.215.1 von einem Host auf SiteA zu pingen.
Also, wenn ich zwei Tunnel habe, geht etwas schief.
Hintergrund
Warum nicht nur einen Tunnel? Hin und wieder gibt mir mein ISP an beiden Standorten keine öffentliche IP-Adresse mehr zu, wodurch ich hinter CGN stehe. Wenn dies auf der Site geschieht, auf der sich der OpenVPN-Server befindet, ist die Verbindung zwischen den Sites unterbrochen. Wenn jedoch auf beiden Standorten jeweils ein OpenVPN-Server ausgeführt wird, ist ein Standort hinter CGN geraten, kein Problem.
Blinddarm
server.conf
von OpenVPN-Host-SiteA:
; General ; --------------------------------------------------------- dev tun0 proto udp port xxxx client-config-dir /etc/openvpn/ccd keepalive 10 120 max-clients 20 tls-server verb 2 ; Network ; --------------------------------------------------------- topology subnet client-to-client server 10.1.2.0 255.255.255.0 route 172.25.214.0 255.255.255.0 10.1.2.2 30
client.conf
von OpenVPN-Host-SiteA:
; General ; --------------------------------------------------------- client dev tun1 proto udp remote xxxx resolv-retry infinite connect-retry 5 1800 explicit-exit-notify nobind tls-client verb 2 ; Network ; --------------------------------------------------------- script-security 2 up /etc/openvpn/uppe.sh down /etc/openvpn/nere.sh up-restart up-delay iproute /usr/local/sbin/unpriv-ip
Hinweis: Sicherheitsbezogene Einstellungen werden entfernt.
uppe.sh
:
#!/bin/bash /usr/local/sbin/unpriv-ip route add 172.25.214.0/24 via 172.25.215.1 dev tun1 metric 20 exit 0
nere.sh
#!/bin/bash /usr/local/sbin/unpriv-ip route del 172.25.214.0/24 via 172.25.215.1 dev tun1 metric 20 exit 0
Diese beiden beziehen sich auf die CGN-Minderung.
Die Dateien für den OpenVPN-Host auf SiteB sind identisch, mit der Ausnahme, dass sich die Netzwerkadressen unterscheiden.
0 Antworten auf die Frage
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
2
Erinnert sich Windows 7 Home Premium an Netzwerkfreigaben-Passwörter?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
5
XP-Netzwerkverbindung ohne Neustart freigeben?
-
5
Wie richte ich Windows ein, 802.11 gegenüber 3G zu bevorzugen?