問題の説明:
VPNクライアントとホームサーバー間でVPN接続を確立するときにファイアウォール(pfSense)を通過するか直接接続すると、接続は正常に機能します。
ただし、VPNクライアントがホームサーバーへの直接接続を確立し、応答がファイアウォールpfSenseを通過すると、VPNサーバーはLANインターフェイス(eth0)からVPNインターフェイス(tun0)にパケットをルーティングしません。
理由をご存知ですか?
最初の例は良いです:直接接続で:
移動:VPNクライアント=> VPNサーバー=>ホームサーバー
戻り値:プライマリサーバー=> VPNサーバー=> VPNクライアント
2番目の例は良いです:2つのアクロファイアウォール(pfSense)に接続:
移動:VPNクライアント=> VPNサーバー=>ファイアウォールpfSense =>ホームサーバー
戻り値: プライマリサーバー => ファイアウォール pfSense => VPN サーバー => VPN クライアント
3番目の例は機能しません:最初は直接接続してからaccrosファイアウォール(pfSense)を使用してください。:
移動:VPNクライアント=> VPNサーバー=>ホームサーバー
戻り値: プライマリサーバー => ファイアウォール pfSense => VPN サーバー => VPN クライアント
IPリスト:
ホームサーバー:192.168.100.50
ファイアウォール pfSense: 192.168.100.20
VPNサーバー:192.168.100.40(インターフェース:eth0)および10.8.0.1(インターフェース:tun0)
VPNクライアント:10.8.0.6
ノート: 最初と 2 番目の例で tcpdump を実行すると、eth0 と tun0 からパケットが返されることがわかります。しかし、3番目では、tun0のリターンパケットは見えず、eth0でしか見えません。
仮説:これは、他のデバイスから戻ったときにパケットが破棄されるのと同じです。
ありがとうございます。
答え1
解決する!
「フローティングルール」を追加するだけです。このルールでは、「状態タイプ」として「なし」を選択します。
「なし」は、「トレースにステートフルメカニズムを使用しないシステムです。これは、特定の状況で高度なキューを実行する場合にのみ便利です。ドキュメントを確認してください。」
実際、pfSenseは以前に「SYN」フラグを受信していなかったため、パケットを破棄しました。これは、ネットワークが非対称ルーティングに従うときに発生する基本的で一般的な問題です。