OpenVPN サーバーで tun0 パケットをローカル ネットワークに転送するにはどうすればよいですか?

OpenVPN サーバーで tun0 パケットをローカル ネットワークに転送するにはどうすればよいですか?

TUN 接続を介して調整しようとしているマシンが 3 台あります。

FREEBSDOpenVPN サーバー (tun) を実行しているボックス
10.0.200.21/24 ローカル サブネット
10.0.202.1/24 VPN

REMOTE

VPN 上の パブリック IP 10.0.202.6/24

WEBSERVER
ローカルサブネット上の 10.0.200.31/24

REMOTEOpenVPN 経由でに VPN でアクセスできFREEBSD、接続は正常ですが、設定が間違っています。の IP アドレスをのブラウザに入力してREMOTEからに接続しようとすると、 に到達できません。ローカル サブネットに直接接続すると、 に到達できます。WEBSERVERWEBSERVERREMOTEWEBSERVERREMOTE

トラブルシューティング中に次のことを学びました。

  • REMOTEpingFREEBSDや SSH も実行できます。
  • FREEBSDのイーサネット ポートに設定されたパケット キャプチャはREMOTE、 の VPN IP 10.0.202.6 との間のパケットをキャプチャしません。そのため、REMOTE のパケットはローカル サブネットに到達しません。
  • ログファイルにはFREEBSD次の行があります:GET INST BY VIRT: 10.0.200.31 [failed]

FREEBSDしたがって、OpenVPN は TUN デバイスで受信したパケットをのイーサネット アダプタに転送してローカル サブネットに送信していないようです。

私の server.conf ファイルには次の行があります。
push "route 10.0.200.0 255.255.255.0"

この行を追加してみましたが、効果はありませんでした。
route 10.0.200.0 255.255.255.0


ルーティングテーブルはこちらFREEBSD

ルーティングテーブル

インターネット:
宛先ゲートウェイフラグ参照使用Netif有効期限
デフォルト 10.0.200.1 UGS 0 4306 re0
10.0.200.0 リンク#9 U 0 61582 re0
10.0.200.21 リンク#9 UHS 0 41 lo0
10.0.201.0 10.0.200.1 UGS 0 0 re0
10.0.202.0 10.0.202.2 UGS 0 0 tun0
10.0.202.1 リンク#12 UHS 0 0 lo0
10.0.202.2 リンク#12 UH 0 0 tun0
ローカルホスト リンク#11 UH 0 193743 lo0


オンラインでこのメッセージについて読んだところGET INST BY VIRT: 10.0.200.31 [failed]、Linux マシンでは次のコマンドを実行することが推奨されていました。
echo 1 > /proc/sys/net/ipv4/ip_forward
理解できず、FREEBSD奇妙な構成になりたくないので、実行するのは怖いです。また、server.conf ファイルを変更して必要な構成を自動的に作成し、OpenVPN が閉じられたときに適切に管理および破棄されるソリューションを強く希望します。

この問題の解決策は何ですか?

答え1

問題が見つかりました。上で言及した FreeBSD ベースの NAS アプライアンス ソフトウェアである FreeNAS の が0 に設定されFREEBSDていることが判明しました。net.inet.ip.forwardingこれは、 コマンドを使用して表示できますsysctl -a | grep net.inet.ip.forwarding。パケットを転送するには、 を実行する必要がありましたsysctl net.inet.ip.forwarding=1

この変更は再起動すると維持されません。/etc/rc.conf ファイルを使用して設定する必要があると思いますgateway_enable="YES"が、これまでのところ、この設定は再起動するまで処理されないことがわかりました。また、残念ながら FreeNAS では、再起動のたびに rc.conf が上書きされるようです。この変数を /etc/defaults/rc.conf に書き込むことは可能かもしれませんが、これはシステムのデフォルトを保存し、rc.conf のカスタム設定によって上書きされるはずですが、/etc/defaults/rc.conf ファイルの先頭には編集しないようにという警告があります。

したがって、この問題は完全に解決されたわけではありませんが、少なくとも何が問題なのかはわかりました。これを理解した今、ローカル サブネット上の https Web 管理アプライアンスにログインするときに問題があることに気付きました。これは解決すべき別の問題です。

答え2

VPN クライアントにはネットワークにアクセスするためのルートがあり10.0.200.0/24、VPN サーバーにもルートがあります。しかし、問題は、Web サーバーにネットワーク10.0.200.31にアクセスするためのルートがあるかどうかです。10.0.202.0/24

FreeBSD ボックスで tcpdump を実行します。10.0.202.6ホストからのトラフィックが転送されているのが確認できると思いますが、戻りトラフィックは確認できません。

関連情報