Openvpn

openvpn 和 lan 之間的 pfsense tcp 連接斷開

  • June 15, 2019

我正在嘗試將 openvpn 客戶端連接到內部區域網路,以便他們可以訪問 http 伺服器。pfSense 以及我的 http 伺服器正在我的家庭 proxmox 節點的虛擬機上執行。兩者都通過一個簡單的 linux 網橋連接,pfsense 充當 dhcp 伺服器。

在 pfSense 虛擬機上,我還配置了 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,都可以正常工作。只有 TCP 不起作用。

如果我嘗試從 10.44.3.2 (VPN) 訪問 https 伺服器

$$ to 10.44.2.11 (LAN) $$,伺服器的連接狀態為“SYN_RECV”,客戶端顯示“SYN_SENT”。 據我所知,第二步(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 工作正常。

有任何想法嗎?!

我解決了將 pfsense 的網路介面從 VIRTIO 更改為 E1000 的問題。

Proxmox 的 VIRTIO 驅動程序似乎會失去一些軟體包。

此問題與 pfSense 無關。

真正的原因是 BSD 似乎不支持或破壞 Virtio 驅動程序上的硬體解除安裝。您無需切換回 E1000。

轉到 系統->高級->網路 設置標記:禁用硬體校驗和解除安裝

在您保存設置後立即開始通信 - 它甚至不需要重新啟動。

引用自:https://unix.stackexchange.com/questions/252337