Routing

使用 pfSense 進行子網路由

  • February 21, 2019

我有一個公共 IP 和一個公共 /29 子網分配給執行 ESXi 的伺服器中的同一 NIC。我已經安裝了 pfSense,作為這個 ESXi 上的虛擬機。

我為 pfSense 提供了三個虛擬網卡:

  • 一個連接到與 ESXi 框的物理 NIC 連接的 vSwitch。
  • 另一個橋接到 LAN,這是另一個在 ESXi 框內沒有物理 NIC 連接的 vSwitch。
  • 第三個稱為 OPT1,橋接到另一個 LAN,這是另一個沒有物理 NIC 連接的 vSwitch。

我將公共 IP 分配給 pfSense 的 WAN IP,並將我的 /29 子網的第一個 IP 分配給 OPT1。

我將配置 pgsense 作為 OPT1 上(虛擬)機器的路由器,並作為 LAN 上(虛擬)機器的 NAT 防火牆。

我意識到 OPT1 子網是一個公共 IP 子網,需要路由,所以開始閱讀可用的文件。我想要實現的實際上是這樣的:

https://docs.netgate.com/pfsense/en/latest/book/firewall/methods-of-using-additional-public-ip-addresses.html

我從 OPT1 部分開始,稍後配置 LAN 部分。我試圖遵循這個howto,但我失敗了。恐怕這可能取決於我的配置方式Interfaces/Bridges/OPT1 : Member Interfcaces=WAN,LAN

症狀是子網上的虛擬機無法再連接或ping pfSense。“網路設備已連接,無法訪問網路”。

我的 OPT1 是否配置錯誤?一些幫助或故障排除指南將不勝感激。

我看到兩個主要的麻煩要處理。

  1. 擁有一個公共子網,您的 pfsense 盒子本質上就是一個路由器。您需要與上行鏈路提供商 ISP 打交道,將子網的數據包路由到 pfsense 盒子的外部 IP。如果它無法正常工作(例如,他們不合作或者甚至不理解您想要什麼),有一些技巧(例如,代理 arp),但希望您不需要這些。
  2. 但是,對於 OPT1 的方向,您需要一個 NAT-ting 路由器。在 FreeBSD 中,pfsense、NAT 和防火牆的基礎平台像往常一樣鬆散耦合。您必須計算 NAT 和防火牆之間的一些意外互動,這些互動都已記錄在案,但主要在不同的 freebsd 源上,而不是真正在 pfsense 文件中。重要的是要了解這個問題,即對傳入和傳出數據包應用 NAT 和 FW 規則的順序。

我的觀點是,在 ESXi 環境中您不需要多個子網,但是如果您需要它,您可以使用某些(此處未詳細說明)原因。它使問題複雜化,增益為零到很小。我能看到的優點:

  1. 安全性,您的公共網路和內部網路不會互相看到,因此您的公共網路基本上可以作為 DMZ 工作。但是,在 ESXi 環境中,預設情況下會保護機器免受網路竊聽(ESXi 管理員可以在 VM 設置中為每台機器關閉它,但單個操作員不能)。在 ESXi 子網上,預設情況下您看不到與您無關的數據包,即使您在 VM 上執行數據包嗅探器也是如此。
  2. 您可以在 LAN 和 OPT1 上提供不同的 dhcp 服務,這在自動化虛擬主機環境中可能是必不可少的。但是,在這種情況下,您不能同時切換 LAN 和 OPT1,此外,您可能會面臨額外的挑戰,以安全地解決全方位的 LAN-OPT1-WAN 通信。

在我看來,最好的辦法是利用 ESXi 的防禦,讓你的 pfsense 更簡單。如果您這樣做,請這樣做:

  1. 刪除 OPT1。
  2. 將 LAN 的 IP 設置為 192.168.1.1。
  3. 將其 dhcp 配置為為 VM 提供 192.168.1.2 - 192.168.1.254 範圍內的 IP。(注意,192.168.1.1 是你,192.168.1.255 是網路廣播)。上次我這樣做時,我在將 pfsense dhcpd 設置到執行它的不同 IP 範圍時遇到了麻煩,這就是為什麼你需要先設置它。
  4. 在 LAN 上為您的 pfsense 公共 IP (192.0.3.1) 和子網 (/29) 設置一個虛擬 IP。很容易你不能有一個用於這個子網的 dhcp 伺服器,這是這個想法的一個缺點。

如果您已正確完成所有操作,您的私有虛擬機應該可以互相看到,您的公共虛擬機也應該可以互相看到,但不會有更多的路由。

  1. 為 LAN 設置 NAT 規則。這裡還有一個問題:在 NAT 設置的頂部,您需要設置 NAT 類型。*根據您選擇的 NAT 類型,它會為您自動生成一些 NAT 規則。*正如我上次所做的那樣,我無法理解這些規則到底在做什麼,而且我也無法通過手動設置複製它們,但它們似乎是 NAT 和路由子網之間無縫互動所必需的。1
  2. 還要在防火牆中設置路由。注意:在 freebsd 和 pfsense 中,預設情況下一切都被阻止,任何你想通過的東西,都需要找到它的“通過”規則!當心,不要封閉自己!(儘管對於 ESXi pfsense VM,通過控制台訪問很容易修復它。)

與常見的路由器/交換機設置相反,在 ESXi 世界中,您遇到的主要問題是沒有真正的 PROMISC 訪問權限,您也無法真正跟踪您的數據包發生了什麼。但是,在 pfsense 頂部菜單中,有一個 Diagnostics -> Packet tracer,在那裡您可以真正跟踪所有內容。永遠不要試圖盲目地與您的系統互動,始終使用擷取數據來了解您目前的配置有什麼問題以及在哪裡更進一步!

另請注意,使用許多 ESXi 可能會養成習慣,喜歡將它們的子網橋接在一起。這是一個與我們在 ip 路由配置中非常不同的自定義,其中網橋有它的作用並應用於它應該做的地方。

您可以將 NAT 和路由子網放到不同的子網中,步驟大致相同。

1這很可能是問題的真正原因所在。

引用自:https://serverfault.com/questions/954133