Subnetz hinter OpenVPN-Server kann nicht gepingt werden

Subnetz hinter OpenVPN-Server kann nicht gepingt werden

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.

tcpdumpzeigt, dass die ICMP-Anforderung vom selben Server ifvpnan 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 ccdVerzeichnis mit Dateien mit irouteAnweisungen verfügen, wie in der OpenVPN-Dokumentation ausführlich beschrieben. Sie müssen außerdem routeAnweisungen 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 ccdInformationen 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.

verwandte Informationen