TUN接続を介して調整しようとしているマシンが3台あります。
FREEBSD
OpenVPNサーバーを実行しているボックス(tun)
ローカルサブネット上の10.0.200.21/24
VPNで10.0.202.1/24
REMOTE
パブリックIP
VPNで10.0.202.6/24
WEBSERVER
ローカルサブネット上の10.0.200.31/24
OpenVPN経由でREMOTE
to VPN to FREEBSD
を取得でき、接続は正常ですが、構成が正しくありません。 REMOTE
のIPアドレスをWEBSERVER
のブラウザに入力してWEBSERVER
からREMOTE
に接続しようとすると、WEBSERVER
にアクセスできません。 REMOTE
をローカルサブネットに直接接続すると到達可能です。
トラブルシューティング中に次のことを学びました。
REMOTE
はFREEBSD
にpingを実行でき、SSHで接続することもできます。FREEBSD
のイーサネットポートに設定されたパケットキャプチャは、REMOTE
のVPNIP10.0.202.6との間でパケットをキャプチャしません。そのため、REMOTEのパケットはローカルサブネットに到達していません。FREEBSD
のファイルには次の行があります:GET INST BY VIRT: 10.0.200.31 [failed]
したがって、OpenVPNは、TUNデバイスで受信したパケットをFREEBSD
のイーサネットアダプターに転送しておらず、ローカルサブネットに送信していないようです。
Server.confファイルに次の行があります。Push "route 10.0.200.0 255.255.255.0"
この行を追加しようとしましたが、役に立ちませんでした。route 10.0.200.0 255.255.255.0
これがFREEBSD
のルーティングテーブルです
ルーティングテーブル インターネット: 宛先ゲートウェイフラグRefs Use Netif Expire default 10.0.200.1 UGS 0 4306 re0 10.0.200.0 link#9 U 0 61582 re0 10.0.200.21 link#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 link#12 UHS 0 0 lo0 10.0.202.2 link#12 UH 0 0 tun0 localhost link#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が閉じられたときに適切に管理され、破棄されるソリューションを強く望んでいます。
この問題の解決策は何ですか?
さて、VPNクライアントには10.0.200.0/24
ネットワークに到達するためのルートがあり、VPNサーバーにはルートがあります。しかし、問題は、Webサーバー10.0.200.31
に10.0.202.0/24
ネットワークに到達するためのルートがあるかどうかです。
Freebsdボックスでtcpdumpを実行します。 10.0.202.6
ホストからのトラフィックが転送されているのではないかと思いますが、リターントラフィックは見られません。