OpenVPN サーバーの背後にあるサブネットに ping できない

OpenVPN サーバーの背後にあるサブネットに ping できない

これが私のインフラストラクチャです:

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

問題は、クライアントから接続している OpenVPN サーバーに ping できるが、10.90.90.0/24 サブネット内の他のサーバーに ping できないことです。

tcpdumpICMP 要求が同じサーバー上で から に送信されるが、その後 ICMP 要求パケットはそれ以上送信されないことを示していifvpnますifpriv

iptables にログを追加すると、ICMP 要求パケットがドロップされることなく POSTROUTING 状態になるものの、その後パケットが宛先に到達しなかったこともわかります。ここで何が起こっているのかわかりません。解決策がありません。

パケットをマスカレードできることは知っていますが、推奨されていないのでやりたくありません(https://community.openvpn.net/openvpn/wiki/NatHack)、そうしないと、それが私の最後の解決策になります。

答え1

リモート サーバーが「サブネットを公開する」場合は、OpenVPN ドキュメントで詳しく説明されているように、ディレクティブccdを含むファイルを含むディレクトリが必要です。また、クライアントにプッシュされるディレクティブも必要です。irouteroute

すべてが正常に動作している場合:

  • クライアントがpingを送信します。
  • クライアントの OS には、このトラフィックをローカルの OpenVPN サーバーに送信するルーティング コマンドがあります。
  • このccd情報はOpenVPNに接続されたリモコン配信のためにトラフィックを送信します。
  • 交通はこのリモートから始まり、目的地まで進みます。
  • 復路では、リモートシステムはまたトラフィックを戻すオペレーティングシステムルートがあるそのOpenVPN サーバー。

関連情報