hwdsl2 / setup-ipsec-vpn

Scripts to build your own IPsec VPN server, with IPsec/L2TP, Cisco IPsec and IKEv2
Other
24.95k stars 6.28k forks source link

使用 L2TP VPN 時, TCP ACK 無法正常交互完成握手 #1493

Closed Darkborderman closed 9 months ago

Darkborderman commented 9 months ago

任务列表

问题描述 使用 L2TP VPN 時, TCP ACK 無法正常交互完成握手

根據腳本, 建立起 L2TP VPN, 使用上一切正常 (上網, ssh, scp 等, IP 確認皆從 VPN 作為出口), 但是在建立 TCP handshake 時無法成功

過程是 Mac -經由 Wifi-> 路由器 -公開網路-> VPN -公開網路, 如下圖

Screenshot 2023-11-18 at 3 47 33 AM

重现步骤 重现该 bug 的步骤:

  1. 連接 L2TP VPN, 確認流量經 VPN 出去
  2. 使用 Wireshark 監聽封包, 發現 TCP 交互停留於 ACK, 未成功進行 handshake, 如下圖 Screenshot 2023-11-17 at 2 01 28 PM

期待的正确结果 正確進行 TCP 握手, 如下圖

Screenshot 2023-11-17 at 2 02 20 PM

日志 检查日志及 VPN 状态,并添加错误日志以帮助解释该问题(如果适用)。

服务器信息(请填写以下信息)

客户端信息(请填写以下信息)

其它信息 添加关于该 bug 的其它信息。

目前觀察到 TCP handshake 失敗的情況下 remote IP 回傳回去的位置會是 L2TP VPN 內的 private IP address, 非路由器分配之 private IP address

hwdsl2 commented 9 months ago

@Darkborderman 你好!根据你的描述,L2TP VPN 使用上一切正常。无需担心 TCP ACK 交互的问题,因为 IPsec/L2TP 模式在使用时会在服务器和客户端上创建额外的 PPP (point-to-point) 网络接口,使用 Wireshark 监听并不能准确反映全部的 VPN 流量。如果使用 SSH,SCP 等正常,说明 TCP 连接可以成功建立。

Darkborderman commented 9 months ago

@hwdsl2 謝謝您的快速回覆

但目前我仍遇到無法連接上遠端目標位置 (為 Redshift), 原因同上述

若 VPN 使用上正常, 想請問可能還有什麼潛在問題阻擋了 VPN/local 進行 TCP ACK 交互?

hwdsl2 commented 9 months ago

@Darkborderman 这个具体原因我不清楚。有可能是 Redshift 的防火墙规则不允许 VPN 客户端的 IP 访问,或者 VPN 服务器的 IPTables 规则需要改动。后者请参阅访问 VPN 服务器的网段

Darkborderman commented 9 months ago

@Darkborderman 这个具体原因我不清楚。有可能是 Redshift 的防火墙规则不允许 VPN 客户端的 IP 访问,或者 VPN 服务器的 IPTables 规则需要改动。后者请参阅访问 VPN 服务器的网段

感謝, 已確認 Redshift 防火牆允許 VPN 訪問, 我檢查看看網段問題