pfSense如何創建和配置VLAN

pfSense如何創建和配置VLAN

虛擬區域網(VLAN)是一組邏輯上的設備和用戶,這些設備和用戶並不受物理位置的限制,可以根據功能、部門及應用等因素將它們組織起來,相互之間的通信就好像它們在同一個網段中一樣,由此得名虛擬區域網。VLAN是一種比較新的技術,工作在OSI參考模型的第2層和第3層,一個VLAN就是一個廣播域,VLAN之間的通信是通過第3層的路由器來完成的。與傳統的區域網技術相比較,VLAN技術更加靈活,它具有以下優點: 網路設備的移動、添加和修改的管理開銷減少;可以控制廣播活動;可提高網路的安全性。

在電腦網路中,一個二層網路可以被劃分為多個不同的廣播域,一個廣播域對應了一個特定的用戶組,默認情況下這些不同的廣播域是相互隔離的。不同的廣播域之間想要通信,需要通過一個或多個路由器。這樣的一個廣播域就稱為VLAN。

在這篇文章中,我將介紹如何在pfSense中創建和配置一個VLAN。 配置完成後,可以允許(或阻止)該VLAN與其他VLAN之間的通信,每個VLAN將能夠共享相同的Internet連接。配置分以下幾下步驟:

  • 在24埠交換機上創建一個靜態VLAN。
  • 將該VLAN從交換機中繼到pfSense上的LAN介面。
  • 為該VLAN分配一個24位掩碼的私有IP子網。

我們假定:

  • pfSense已經正確安裝,併為現有LAN介面提供了基本的Internet連接。
  • 分配給LAN介面的網卡支持IEEE 802.1Q VLAN標識。
  • 連接到區域網介面的交換機能夠支持基於埠的VLAN的創建、配置和中繼。

本文中使用的軟體版本如下:

  • pfSense2.4.2-RELEASE-P1(AMD64)

本文中使用的交換機是Ciscor的SG200-26,千兆乙太網埠,基於Web的管理介面,同時支持多達256個基於埠和IEEE 802.1Q標識的VLAN。

每個交換機及其相關的管理介面不一定相同,你可以參照本文中的說明進行適當的調整。

交換機配置****

靜態VLAN(通常稱為「基於埠」的VLAN)是通過將交換機埠分配給預先配置的VLAN標識符來創建的。 在這個例子中,我將在交換機上配置一個靜態VLAN併為其指定一個VLAN ID 50。你也可以使用2到4094之間的任何正整數來表示VLAN ID,但應避免使用VLAN ID 1和4095,因為一般來說,大多數交換機默認將所有埠分配給VLAN ID 1, 並將VLAN ID 4095作為「丟棄」VLAN。

首先導航到VLAN Management->Create VLAN並選擇「Add」。在「VLAN ID」欄位中輸入值50,並在「VLAN Name」欄位中輸入一個名稱來表示該特定VLAN。 在這個例子中,我使用了名稱「vlan50」。完成後,點擊「Apply」。 (見下圖)

在將特定埠的成員資格分配給我們的新VLAN之前,我們必須首先將該埠配置為「Access」埠或「Trunk」埠。Access埠是只有一個VLAN成員的埠。 這種類型的埠通常用於連接通常不知道VLAN成員資格的終端設備,或者是因為它們的NIC不能將乙太網幀標記為VLAN ID,或者它們沒有配置為這樣做。 配置為Access埠的交換機埠在將乙太網幀發送到設備之前,將刪除所有VLAN訊息。 另一方面,Trunk埠可以承載多個VLAN流量,通常用於將交換機連接到其他交換機或路由器。 通常情況下,小型企業級交換機(如Cisco SG200)默認將每個埠指定為Trunk埠。

為了讓教程簡單明了,我們假設連接到交換機的設備沒有配置。在本例中,我們將埠19配置為Access埠,並將其分配給新創建的VLAN中的成員資格。 此外,我們還假設目前使用埠25將交換機連接到pfSense LAN介面,並將其配置為Trunk埠,並將它分配給新創建的VLAN中的成員資格。

導航到VLAN Management->Interference Settings,選擇埠19,然後選擇「EDIT」。 將介面VLAN模式從「Trunk」更改為「Access」,然後選擇「Apply」(見下圖)。 現在按照類似的步驟將埠2配置為Access埠。

接下來,導航至VLAN Management->Port VLAN Membership,選擇埠19,然後選擇「加入VLAN」。 由於接入埠可以作為untagged添加到單個VLAN,我們需要先刪除交換機自動分配給每個埠(通常是VLAN 1)的默認VLAN。 突出顯示VLAN 1,方法是左鍵單擊,然後選擇箭頭圖標將其從介面中刪除。 現在突出顯示VLAN 50,然後選擇箭頭圖標將其添加到介面,確保從「Tagged」下的選項中選擇「Untagged」。 完成後選擇「Apply」(見下圖)。

將交換機埠19配置為Access埠並加入到VLAN 50中,同時配置連接到pfSense LAN 介面的埠25, 此埠將配置為Trunk埠並加入到VLAN 50中。

確保將埠25配置為Trunk埠,然後導航到VLAN Management->Port VLAN Membership,選擇埠25,然後選擇「Join VLAN」。 突出顯示VLAN 50,然後選擇箭頭圖標將其添加到介面,確保從「Tagged」下的選項中選擇「Tagged」。 完成後選擇「Apply」(見下圖)。

交換機配置完成,請確保將所做的更改保存到啟動配置中,以防交換機因任何原因重新啟動而丟失配置。

pfSense配置

現在,我們需要在pfSense中配置VLAN 50。導航到網路_介面- >介面分配_,並記下分配給LAN網卡的設備驅動程序名稱。 在本例中,我們假定設備驅動程序的名字是「em1」(見下圖)。 LAN2介面將作為我們將在下一步創建的VLAN介面的「父介面」。

接下來,導航到網路介面->介面分配 > VLANs,選擇「+添加」圖標。 在隨後的頁面中,從「父介面」下拉列表中的選項中,選擇LAN 2介面「em1」,並在「VLAN 標識」下輸入值50。 在「描述」欄添加該VLAN的可選說明,然後選擇「保存設置」(見下圖)。

創建VLAN介面后,返回到網路介面->介面分配,在可用網路埠中,選擇「em1上的VLAN 50-opt1,點擊「+ 添加」圖標,然後選擇「保存設置」。

在這個例子中,我們假定pfSense已經將VLAN 50分配為OPT4。 導航到網路介面 - > OPT4並選擇「啟用介面」。 在「描述」欄,將「OPT4」替換為「VLAN 50」,然後從「IPv4配置類型」下拉列表中的選項中選擇「靜態IPv4」。 對於VLAN 50,我們將使用網路192.168.50.0/24,在此介面上分配靜態IP地址192.168.50.1,並在「靜態IP配置」部分下選擇「24」的網路掩碼。 其他參數可以保持其默認值。 完成後選擇「保存設置」和「應用更改」(見下圖)。

接下來,我們需要為我們的新VLAN構建防火牆規則,以便流量可以從WAN介面入站/出站,也可以接入Internet。 導航到防火牆 - >規則策略,選擇VLAN 50,選擇「添加」圖標創建一個新的規則。 在本例中,我們將為VLAN 50創建一個簡單的出站傳遞規則,類似於典型的LAN出站傳遞規則的配置方式。動作選「通過」 ,協議選「any」,源地址選「VLAN50 net」。 輸入這個新建規則的描述。 其他參數可以保持其默認值。 完成後選擇「保存設置」和「應用更改」(見下圖)。

除非打算為主機設備分配靜態IP地址,否則需要為新VLAN配置DHCP伺服器。導航至服務 - > DHCP服務,並選擇VLAN 50介面。選擇「在介面VLAN50上啟用DHCP服務」,然後 輸入IP地址範圍。 pfSense將默認使用分配給此介面的IP地址作為網關地址。 在本例中,網關地址是192.168.50.1。 如果是其他網關,請在「網關」下輸入其他網關的IP地址。 同時輸入DNS地址,其他參數保持默認。 完成後選擇「保存設置」。

如果在上一步,你沒有指定DNS地址,那還需要導航到服務 - > DNS轉發器 - >介面,並確保DNS轉發器用於響應來自客戶端的查詢介面包含VLAN50,然後「保存設置」並「應用更改」(見下圖)。

至此,配置完成。

要進行測試,請將主機設備(如台式機或筆記本電腦)連接到交換機上的埠19。如果按照前述配置了所有內容,則應該在為VLAN 50網路192.168.50.0/24指定的DHCP地址範圍內收到一個IP地址。默認網關應該是192.168.50.1,DNS應該是你指定的地址,如果pfsense之前已經連接互聯網,你現在應該可以正常訪問網路。

這裡要注意,按照當前配置,每個VLAN都可以路由到所有其他VLAN。如果想禁止某個或某些特定VLAN的通信,則必須創建防火牆規則,明確規定路由方向。要注意的是,pfSense在第一次匹配的基礎上評估防火牆規則(即第一個匹配數據包的規則的操作將被執行)。因此,如果想要阻止所有VLAN 50流量到達LAN,則可以在之前創建的規則之前創建一條規則,阻止VLAN 50與LAN的通信(見下圖)。

總結

如果交換機和網路介面支持VLAN功能,配置pfSense的VLAN可以簡單歸納為以下幾個步驟:

  • 在小型企業交換機上創建了一個靜態VLAN,並將該VLAN中繼到pfSense上的LAN介面。
  • 創建並添加VLAN介面,創建必要的防火牆規則。
  • 為VLAN分配了一個24位掩碼的私有IP子網,使用DHCP給主機分配IP地址。
  • VLAN可以共享pfSense的Internet連接。
  • 配置pfSense來防止每個VLAN之間的通信。