openvpn と LAN 間の pfsense TCP 接続が失われました。

openvpn と LAN 間の pfsense TCP 接続が失われました。

openvpnクライアントを内部LANに接続してhttpサーバーにアクセスしようとしています。 pfSenseと私のhttpサーバーが私のホームproxmoxノードの仮想マシンで実行されています。どちらも単純なLinuxブリッジを介して接続され、pfsenseはdhcpサーバーとして機能します。

pfSense VMでは、世界中のクライアントが接続できるようにopenvpnも設定しました。 (ポートフォワーディングなど...)

ネットワークpfSense LAN:10.44.2.0/24(pfSense 10.44.2.254 gw)ネットワークOpenVPN:10.44.3.0/24(サーバー10.44.3.1はクライアント間を許可しません)

すべてのルーティングがうまく機能しています。 LAN から VPN へ、または VPN から LAN へ Ping を送信できます。どちらも正常に動作します。 TCPだけは機能しません。

10.44.3.2(VPN)から[10.44.2.11(LAN)まで] httpsサーバーに接続しようとすると、サーバーの接続状態は「SYN_RECV」で、クライアントには「SYN_SENT」と表示されます。

私が知っているところによると、2番目のステップ(SYN、ACK)が失敗したようです。 pfSenseファイアウォール全体を完全に無効にしましたが、機能しません。

その後、ネットワークトラフィックを記録します。

仕える人:

14:18:57.571985 IP 10.44.3.2.42956 > 10.44.2.11.http: Flags [S], seq 3192289577, win 29200, options [mss 1308,sackOK,TS val 3098827 ecr 0,nop,wscale 7], length 0
14:18:57.572006 IP 10.44.2.11.http > 10.44.3.2.42956: Flags [S.], seq 2421464031, ack 3192289578, win 28960, options [mss 1460,sackOK,TS val 68259688 ecr 3098827,nop,wscale 7], length 0
14:18:57.825934 IP 10.44.3.2.42958 > 10.44.2.11.http: Flags [S], seq 2213274578, win 29200, options [mss 1308,sackOK,TS val 3098889 ecr 0,nop,wscale 7], length 0
14:18:57.825952 IP 10.44.2.11.http > 10.44.3.2.42958: Flags [S.], seq 595037825, ack 2213274579, win 28960, options [mss 1460,sackOK,TS val 68259752 ecr 3098889,nop,wscale 7], length 0
. . . . .

顧客:

15:18:57.567020 IP 10.44.3.2.42956 > 10.44.2.11.http: Flags [S], seq 3192289577, win 29200, options [mss 1460,sackOK,TS val 3098827 ecr 0,nop,wscale 7], length 0
15:18:57.570249 IP 10.44.2.11.http > 10.44.3.2.42956: Flags [S.], seq 2421464031, ack 3192289578, win 28960, options [mss 1308,sackOK,TS val 68259688 ecr 3098827,nop,wscale 7], length 0
15:18:57.817649 IP 10.44.3.2.42958 > 10.44.2.11.http: Flags [S], seq 2213274578, win 29200, options [mss 1460,sackOK,TS val 3098889 ecr 0,nop,wscale 7], length 0
15:18:57.835985 IP 10.44.2.11.http > 10.44.3.2.42958: Flags [S.], seq 595037825, ack 2213274579, win 28960, options [mss 1308,sackOK,TS val 68259752 ecr 3098889,nop,wscale 7], length 0
15:18:58.567001 IP 10.44.3.2.42956 > 10.44.2.11.http: Flags [S], seq 3192289577, win 29200, options [mss 1460,sackOK,TS val 3099077 ecr 0,nop,wscale 7], length 0
15:18:58.568639 IP 10.44.2.11.http > 10.44.3.2.42956: Flags [S.], seq 2421464031, ack 3192289578, win 28960, options [mss 1308,sackOK,TS val 68259938 ecr 3098827,nop,wscale 7], length 0
15:18:58.570778 IP 10.44.2.11.http > 10.44.3.2.42956: Flags [S.], seq 2421464031, ack 3192289578, win 28960, options [mss 1308,sackOK,TS val 68259938 ecr 3098827,nop,wscale 7], length 0
15:18:58.815006 IP 10.44.3.2.42958 > 10.44.2.11.http: Flags [S], seq 2213274578, win 29200, options [mss 1460,sackOK,TS val 3099139 ecr 0,nop,wscale 7], length 0
. . . .

tcpの最初のステップは正常に動作しているようです。その後、SYNとACKを送信しましたが、ACKパケットが見つかりませんでした。

私が言ったように、pingはうまくいくので、ルーティングは大丈夫です。

どんなアイデアがありますか? !

答え1

pfsenseのネットワークインターフェースをVIRTIOからE1000に変更することで問題を解決しました。

ProxmoxのVIRTIOドライバのために一部のパッケージが欠落しているようです。

答え2

この問題は pfSense とは関係ありません。

実際の理由は、VirtioドライバのハードウェアオフロードがBSDでサポートされていないか破損しているようです。 E1000に戻す必要はありません。

行く システム->詳細->ネットワーク タグ設定:ハードウェアチェックサムオフロードの無効化

設定を保存するとすぐに通信が始まります。再起動も必要ありません。

関連情報