
TUN 接続を介して調整しようとしているマシンが 3 台あります。
FREEBSD
OpenVPN サーバー (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
REMOTE
OpenVPN 経由でに VPN でアクセスできFREEBSD
、接続は正常ですが、設定が間違っています。の IP アドレスをのブラウザに入力してREMOTE
からに接続しようとすると、 に到達できません。ローカル サブネットに直接接続すると、 に到達できます。WEBSERVER
WEBSERVER
REMOTE
WEBSERVER
REMOTE
トラブルシューティング中に次のことを学びました。
REMOTE
pingFREEBSD
や 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
ホストからのトラフィックが転送されているのが確認できると思いますが、戻りトラフィックは確認できません。