題 pfSense在同一LAN上的多個子網之間路由


我從一個相當標準的pfSense設置開始:一個WAN和一個LAN接口,通過NAT進行LAN到WAN的訪問。

現在我需要LAN上的第二個邏輯子網,我按以下方式設置:

  • 從pfSense的LAN接口上的第二個子網配置VIP
  • 將出站NAT從自動切換到手動
  • 創建了自動生成的NAT規則的副本,將IP範圍設置為新子網的IP範圍
  • 添加了一個新的LAN規則,允許來自新子網的任何流量

至於互聯網接入,一切似乎都很好。來自任一子網的主機都可以訪問外部資源。

但是,我還希望pfSense在兩個子網之間路由流量。事情變得棘手:我可以在子網之間執行ping操作,但嘗試從子網A上的主機到子網B上的目標的TCP連接將超時。

一些數據包捕獲顯示以下內容:

  • 儘管路由表條目根據哪個主機B是遠程的並且默認網關是pfSense,但是主機A不通過pfSense路由,而是通過ARP解析主機B的MAC地址。因此,TCP SYN從主機A直接進入主機B,而pfSense沒有看到它。
  • 主機B接收SYN並用SYN-ACK響應。然而,這一次,通信通過pfSense傳回。
  • 因此,pfSense看到SYN-ACK而沒有遇到相應的SYN並丟棄它,假設它是惡意流量。 (捕獲清楚地顯示pfSense上的SYN-ACK,但不顯示在主機A上,並且日誌顯示它被過濾。)

我不知道是什麼原因導致主機A忽略路由設置並繞過默認網關 - 但是,如果我只有一個普通的路由器,所有這一切都不會成為問題。我寧願不依賴於操作系統的特定行為,而是以寬容的方式構建基礎架構 - 因此,即使pfSense只看到流量的一個方向,我也希望兩個網絡之間的路由能夠正常工作。由於兩個LAN子網具有相同的信任級別,因此不需要在它們之間進行過濾。

如何關閉pfSense上兩個子網之間的所有過濾?我試過將“State Type”設置為“None”,但無濟於事......


5
2018-05-14 16:49


起源


由於我沒有找到答案,我最終將兩個子網分開並添加了專用路由器。由於所有內容都在虛擬機中,因此我將子網B的虛擬機集中在一台主機上,並將它們移動到虛擬機網絡中。然後,我在兩個網絡之間放置了一個BSDRP VM,並使其成為默認網關。 BSDRP框具有到子網的路由和到pfSense的默認路由,因此不會通過pfSense路由內部流量。可能不需要分離網絡,因為BSDRP更可能容忍pfSense拒絕的那種“單向”路由。 - user149408


答案:


如上所述,它不再是我的問題,但我遇到了一個潛在的解決方案:

從版本2.1.5開始(不確定之前的版本),有一個選項 系統:高級:防火牆和NAT,叫 靜態路由過濾  - 繞過同一接口上的流量的防火牆規則。選中此選項將禁用對進入和離開同一接口的流量的任何過濾,特別針對同一接口上具有多個子網的方案。

我還沒有測試過(因為我現在所需要的實驗室環境已被拆除),但也許它可以幫助其他人......


5
2017-09-05 16:13