質問: 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の提案に従って、私は次のようにしました server.confファイルに、client-config-dir /etc/openvpn/ccd、route 10.1.0.0 255.255.252.0、およびpush "route 10.1.0.0 255.255.252.0"を追加しました / etc/openvpn/ccd/lappyファイルにiroute 10.1.0.0 255.255.252.0を追加 これで、openvpnサーバーからip 10.1.2.14(openvpnのクライアント)にpingを実行できますが、ip10.1.2.2にはpingを実行できません。クライアント側のルーティングに欠けているものは何ですか?
回答: 2つのこと: ローカルネットワークに問題はありませんか?ゲートウェイが10.1.1.253で、ネットマスクが255.255.255.252の場合、pcs 10.1.2.2と10.1.2.14はゲートウェイと同じネットワーク上でnotになります。 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の場合は、挿入するか、それに応じて変更してください。