Hier ist meine Infrastruktur:
dns of mydomain.com:
vpn A 90.90.90.1
vpn A 90.90.90.2
client vpn config:
client
dev tun
proto udp
nobind
remote vpn.mydomain.com 1394
server1
net.ipv4.ip_forward = 1
iptables:
FORWARD defaults to ACCEPT
vpn config:
dev tun
topology subnet
port 1394
proto udp
server 10.10.1.0 255.255.255.0
push "route 10.90.90.0 255.255.255.0"
interfaces:
ifpub: 90.90.90.1/24
ifpriv: 10.90.90.1/24
ifvpn: 10.10.1.1/24
routes:
10.10.1.0/24 src 10.10.1.1 dev ifvpn
10.10.2.0/24 via 10.90.90.2 dev ifpriv
server2
net.ipv4.ip_forward = 1
iptables:
FORWARD defaults to ACCEPT
vpn config:
dev tun
topology subnet
port 1394
proto udp
server 10.10.2.0 255.255.255.0
push "route 10.90.90.0 255.255.255.0"
interfaces:
ifpub: 90.90.90.2/24
ifpriv: 10.90.90.2/24
ifvpn: 10.10.2.1/24
routes:
10.10.1.0/24 via 10.90.90.1 dev ifpriv
10.10.2.0/24 src 10.10.2.1 dev ifvpn
Das Problem besteht darin, dass ich von meinem Client aus den OpenVPN-Server anpingen kann, mit dem ich verbunden bin, aber nicht den anderen Server im Subnetz 10.90.90.0/24.
tcpdump
zeigt, dass die ICMP-Anforderung vom selben Server ifvpn
an diesen weitergeleitet wird ifpriv
, das ICMP-Anforderungspaket dann aber nie weitergeht.
Das Hinzufügen von Protokollierung zu iptables zeigt mir auch, dass das ICMP-Anforderungspaket in den Status POSTROUTING wechselt, ohne gelöscht zu werden, aber dann erreichte das Paket nie sein Ziel, und ich weiß nicht, was hier passiert ist, mir fallen keine Lösungen mehr ein.
Ich weiß, dass ich meine Pakete maskieren kann, aber ich möchte das nicht, weil es nicht empfohlen wird (https://community.openvpn.net/openvpn/wiki/NatHack), sonst wird es meine allerletzte Lösung sein.
Antwort1
Wenn der Remote-Server „ein Subnetz verfügbar macht“, müssen Sie über ein ccd
Verzeichnis mit Dateien mit iroute
Anweisungen verfügen, wie in der OpenVPN-Dokumentation ausführlich beschrieben. Sie müssen außerdem route
Anweisungen an die Clients übertragen.
Wenn alles richtig funktioniert:
- Der Client sendet den Ping.
- Das Betriebssystem des Clients verfügt über einen Routing-Befehl, der diesen Datenverkehr an den lokalen OpenVPN-Server sendet.
- Die
ccd
Informationen teilen OpenVPN mitan welche angeschlossene Fernbedienungum den Datenverkehr zur Zustellung zu senden. - Der Verkehr tritt an dieser Gegenstelle aus und wird zu seinem Ziel weitergeleitet.
- Für den Rückweg muss das Remote-SystemAuchhaben eine Betriebssystem-Route, die den Verkehr zurücksendet anes istOpenVPN-Server.