web-dev-qa-db-ja.com

VPNサーバーのクライアント側LANにアクセスする

これまで、DigitalOceanにOpenVPNサーバーをインストールし、RaspberryPiにOpenVPNクライアントをインストールすることができました。私のRaspberry PiのOpenVPN IPは10.8.0.6で、OpenVPNサーバーからpingできます。これで、このRPiはIP 10.1.2.14によってLANネットワード(ゲートウェイ10.1.1.253、SubnetMask:255.255.252.0)に接続されます。このクライアントの(RPi)ネットワークに接続されている別のLinuxシステムがあり、そのIPは10.1.2.2です。

OpenVPNサーバーからVPN経由で10.1.2.2にアクセスしたいと思います。どうすればいいですか?

[〜#〜] edit [〜#〜]:@masgoの提案に従って、私は次のようにしました

  1. server.confファイルに、client-config-dir /etc/openvpn/ccdroute 10.1.0.0 255.255.252.0、およびPush "route 10.1.0.0 255.255.252.0"を追加しました
  2. / etc/openvpn/ccd/lappyファイルにiroute 10.1.0.0 255.255.252.0を追加
  3. これで、OpenVPNサーバーからip 10.1.2.14(OpenVPNのクライアント)にpingを実行できますが、ip10.1.2.2にはpingを実行できません。クライアント側のルーティングに欠けているものは何ですか?
4
Bhushan

2つのこと:

  1. ローカルネットワークに問題はありませんか?ゲートウェイが10.1.1.253で、ネットマスクが255.255.255.252の場合、pcs 10.1.2.2と10.1.2.14はゲートウェイと同じネットワーク上でnotになります。

  2. Oceanサーバーからのパケットは、OpenVPNトンネルの反対側のIPアドレス(おそらく10.8.0.1)として現れます。これが10.1.2.2に達すると、それは自身のサブネットとは異なるサブネットに属していることがわかり、したがって、応答を知っている唯一の方法で転送しようとしますieOpenVPNクライアント経由ではなく、ゲートウェイ経由。したがって、リターンpingが返されることはありません。

    これを回避する方法は、RPIに次のiptablesルールを追加することです。

    iptables -t nat -A POSTROUTING -d (here your local network) -j MASQUERADE
    

    このようにして、パケットはOpenVPNクライアントに送り返されます。どちらであるかが明確でないため、ネットワークを挿入しませんでした。10.1.2.0/30の場合は、挿入するか、それに応じて変更してください。

2
MariusMatutiae

あなたがしたいことはLAN-to-LANと呼ばれます。解決策は、VPNクライアントとVPNサーバーに正しいルートを設定することです。通常、クライアント側の構成は、サーバーからクライアントにルーティング情報を「プッシュ」することによって行います。

これを見てください: https://community.openvpn.net/openvpn/wiki/RoutedLans

また: https://serverfault.com/questions/593314/openvpn-routing-for-lan-to-lan-through-tun

2
masgo