NATはVPNをローカルネットワークにルーティングしました。

NATはVPNをローカルネットワークにルーティングしました。

イーサネット接続が可能なRaspberry Piがあります。このイーサネットは、デバイスをインターネットおよびローカルネットワークに接続します。ローカルネットワーク自体はパブリック静的IPを持つことができないため、ローカルネットワークの外部からOpenVPNを介してローカルネットワーク上のコンピュータにアクセスできるようにします。

私はOpenVPNサーバーを正常に設定し、VPN接続を介して他のコンピュータからPiに接続できますが、OpenVPNから接続をルーティングして、Piを持つ残りのローカルネットワークへのネットワークアクセスを許可する方法がわかりません。ローカルネットワークへ。

多くのオンラインチュートリアルでは、それぞれインターネットとローカルネットワークに接続されている2つの異なるインターフェースがあると仮定していますが、この場合は両方を実行する1つのインターフェースがあります。 NATを使用してOpenVPN接続をローカルネットワークにルーティングして、ローカルネットワークとの双方向接続と固定ローカルIPを介したOpenVPN接続で接続を確立する方法はありますか?

答え1

(L3 VPNを使用しているとします。)

これを行うためのきちんとした(NATフリー)方法は、LANのIPをOpenVPNクライアントに提供することです。 LANが192.168.0.0/24であると仮定すると、OpenVPNクライアントにその範囲のIPを静的に割り当てることができます。

OpenVPNクライアントに192.168.0.42を提供するとします。 192.168.0.42にアクセスしようとするLANのノードは、IPアドレスに関連付けられたMACアドレスを見つけるためにLANからARP要求を発行します。ただし、OpenVPNはLANには存在せず、ARP要求に応答できません。したがって、リモートLANのノードはOpenVPNクライアントに接続できません。

サーバーのIP構成:

ip address add 192.168.0.33 peer 192.168.0.42 dev tun0

クライアントIP設定:

ip address add 192.168.0.42 peer 192.168.0.33 dev tun0

まず、OpenVPNサーバーにクライアントに代わってARP要求に応答するように要求する必要があります。これをARPプロキシと呼びます。

ip neigh proxy 192.168.0.42 dev eth0

192.168.0.42 にアクセスしようとする LAN のノードは、OpenVPN サーバーから ARP 応答を受け取り、パケットを送信します。

次のステップは、OpenVPNサーバーでIP転送を有効にすることです。

sysctl -w net.ipv4.ip_forward=1

192.168.0.42のパケットが受信されると、OpenVPNサーバーはそれをクライアントにルーティングします。

関連情報