
我有以下配置:
LAN 01: 192.168.16.0/24 (LAN for internal servers)
LAN 02: 192.168.67.0/24 (LAN for workstations)
WAN: X.X.X.X
進而:
PFSENSE LAN IP: 192.168.16.1
PFSENSE LAN IP: 192.168.67.1 (it's a virtual IP)
區域網路01和區域網路02實體連線(即在同一個交換器中。我知道我應該使用單獨的 LAN 或至少在它們上使用 VLAN,但我現在無法輕鬆變更此配置)。
我有一個 PFSENSE 安裝 (2.2),在電腦所在的位置工作區域網路02從 DHCP 伺服器取得 IP 位址並使用 PFSENSE 作為預設閘道。
這是我的問題:
如果我坐在一台計算機上區域網路02我透過 ssh (或與此相關的任何其他持久協議)到駐留在區域網路01像這樣:
$ ssh -l myself 192.168.16.25
我連接沒有問題。連接持續 20 到 30 秒,然後不斷斷開。
所以我的問題是:我該怎麼做才能避免連線中斷?
我從雙方都進行了 tcpdump,並且在某些時候,數據包開始重複。它看起來像這樣:
我啟用了此選項,我認為這會有所幫助,但事實並非如此。
我應該要提到的是,這個完全相同的配置,使用 LINUX 防火牆(iptables)可以完美地工作。
有任何想法嗎?
答案1
我猜你列出的 LAN1 和 LAN2 都是 192.168.1.0/24,因為捕獲顯示一個是 192.168.16.0,一個是 192.168.67.0,顯然都是 /24。
靜態路由過濾選項在這裡不適用。
我猜測您要么有重疊的網絡(兩個網絡上都沒有/24 掩碼,可能在某些主機上有/16),要么受影響的系統之一在兩個網絡上都是雙宿主的,這會導致不對稱路由。
答案2
我遇到了一個非常相似的問題,該問題本質上是不對稱路由的變體。
在我的拓撲中,我有一個帶有 2 個 LAN 介面的 PFSENSE 盒 - 都是 /24,但絕對是不同的子網路。然後,我有一個 L2\L3 交換機,將兩個介面連接到不同 VLAN 中的網路的其餘部分。掛在該交換器上的還有有線用戶和包含所有無線用戶的網段。有線用戶位於一個子網路\VLAN 中,無線用戶位於另一個子網路\VLAN 中 - 且這兩個子網路都存在於 PFSENSE 盒子上。所有端點都使用各自子網路的 PFSENSE IP 作為其 DG。最後,交換器在上述兩個子網路中也有一個 IP。
我的問題是,如果我透過無線和 SSH 連接到交換機,我會連接正常,然後在 20-30 秒內斷線。您可能已經意識到,由於交換器的 IP 與我的計算機位於同一子網路中,因此來自交換器的返回資料包將直接發送到我的計算機,而不是遵循與來自我的計算機的資料包相同的路徑。該開關本質上只是繞過 PFSENSE 盒。
在許多情況下,這實際上可以很好地工作,特別是對於無狀態中介和/或 UDP 會話。然而,PFSENSE 盒是一個有狀態設備,因此幾秒鐘後,PFSENSE 沒有看到對 TCP OPEN 的回應,並最終終止狀態。若要進行確認,您可以調整 PFSENSE 的 TCP OPEN 逾時值(系統 --> 進階 --> 狀態逾時),然後觀察 SSH 會話斷開所需的時間將遵循您設定的時間。如預期的那樣,該值的預設值為 30 秒。從交換器中刪除相關 IP 後 - BAM - 問題已解決。
雖然OP描述的拓撲中沒有具體提到,但我懷疑相關端點之間可能存在交換器(或類似的交換器)。也許不是,但如果是這樣,那麼這可能是我在這裡遇到的同樣的問題。或者,如果 OP 拓撲中的伺服器是雙宿主的,則會出現此問題。