イーサネット接続が可能な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サーバーはそれをクライアントにルーティングします。