Omada Switch DHCP Relay Configuration Guide
本文將介紹如何在支援 DHCP(動態主機設定協定)Relay 功能的 Omada 交換器上設定此功能,涵蓋了獨立模式和控制器模式的設定方法。
注意:本文中的 CLI 指令是依據有 Gigabit 連接埠的型號。由於連接埠設定的差異,某些指令可能會有所不同。詳細資訊請參考 CLI 指南。
DHCP Relay 的用途
背景:DHCP 僅適用於 DHCP 用戶端及伺服器在同一網段內的情況,它是無法跨網段運作的。為了給多個網段的設備動態分配 IP 位址,網路管理員通常需要在每個網段佈署一台 DHCP 伺服器,效率很低。導入DHCP Relay 可以解決這個問題。用戶端可以使用 DHCP Relay 與其他網段的 DHCP 伺服器通訊,最終取得合法的 IP 位址。因此,位於多個網段的 DHCP 用戶端可以使用同一個 DHCP 伺服器,進而節省成本並簡化集中管理。
DHCP Relay 有三種類型:DHCP Interface Relay、DHCP VLAN Relay 和 DHCP L2 Relay。最常用的是 DHCP Interface Relay,它的目的是使用單一 DHCP 伺服器能夠為多個非連續網段中的 DHCP 用戶端分配 IP 位址。除了基本 Relay 功能外,Omada 交換器還提供在 DHCP 訊息中設定 DHCP Option 82 的選項。此功能用於當使用 Relay 情況時,允許 DHCP 伺服器依據 Option 82 功能執行更細部的操作,例如位址分配。目前,Omada 交換器提供三種處理 DHCP 訊息的操作:Keep、Replace 和 Drop。
簡而言之,三種類型的 DHCP Relay 有以下用途:
1) DHCP Interface Relay:此類 Relay 作為不同網段的 DHCP 用戶端和伺服器之間的服務,將 DHCP 協定封包跨網段轉發到目標 DHCP 伺服器。最終,它使網路上的 DHCP 用戶端能夠共同使用單一 DHCP 伺服器。如下圖所示,網路中只有一個 DHCP 位址,但可以設定多個 Relay 位址 Pool。然後,中間連接中的交換器可以使用 DHCP Interface Relay 來允許每個網段從同一台 DHCP 伺服器取得 IP 位址,同時保持網段之間的區分。如果沒有 DHCP Relay,來自不同網段的用戶端的 DHCP 請求將無法到達 DHCP 伺服器。
2) DHCP VLAN Relay:這種類型的 Relay 與 DHCP Interface Relay 的用途類似,主要區別在於連接到 Relay 的 DHCP 用戶端不是透過 L3 Interface,而是透過 VLAN。換句話說,用戶端和伺服器沒有 Layer 3 的互通性,也不與 L3 交換器連接。與 Interface Relay 類似,如下圖所示,不同 VLAN 的用戶端可以從同一個 DHCP 伺服器取得 IP 位址。使用 Option 82 可以決定將 IP 位址分配給特定的網段,而這裡的不同之處在於,Relay 交換器由於沒有直連的 Interface,無法直接與用戶端通訊。
3) DHCP L2 Relay:此類 Relay 的 DHCP 用戶端和伺服器位於同一區域網路(LAN)內。DHCP L2 Relay 在 L2 設備上實現部分 L3 Relay 功能,僅新增 Option 82 功能,該功能允許將遠端 Agent ID 和其他資訊附加到 DHCP 訊息。DHCP Relay Agent 通常擁有路由功能並被歸類為 L3 設備。然而,在某些網路架構中,L2 設備需要能夠附加 Relay Agent Information Option 訊息,因為終端網路通常由 L2 設備建置並直接連接到主機。這些 L2 設備甚至沒有 IP 位址,因此無法直接將資料封包 Relay 到位於另一個網路的 DHCP 伺服器。因此,它們將 Option 82 附加到 DHCP 訊息中,使 DHCP 伺服器可以使用此欄位為不同網段分配 IP 位址。
Option 82 也稱為 Relay Agent Information option,用於包含有關 DHCP 交互的 Relay 設備的相關資訊。此資訊可與其他軟體結合使用,來強制限制 DHCP 位址分配或實現計費功能。Omada 交換器目前提供三種策略來處理 DHCP 訊息中的 Option82 欄位。啟用 Option82 功能後,各角色的作用如下:預設情況下,Option82 值中的 Circuit ID 是依據接收 DHCP 請求的連接埠號碼和 VLAN ID 組合而成。其格式為:0004 + 4 bytes VLAN ID + 1 byte Unit ID + 1 byte 連接埠號碼。例如,若從獨立模式下的連接埠 1 接收到 DHCP 訊息,則新增的 Option82 Circuit ID 為:0004000000010101。另一方面,Remote ID 預設為接收 DHCP 請求的 Relay 設備的 MAC 位址。其格式為:0006 + 6 bytes 交換器(DUT) 的 MAC。例如,如果 DHCP 訊息通過 MAC 為 00-00-00-00-00-01 的 Omada 交換機,則新增的預設 Option82 RemoteID 將為:0006000000000001。
a. Keep:保留訊息中的原始的 Option82 欄位。如果原始訊息沒有 Option82 欄位,則新增設備的預設 Option82 值或使用者設定的值(以使用者設定的值為優先)。
b. Replace:將訊息中的 Option82 欄位替換為設備的預設值或使用者設定的值。
c. Drop:如果訊息中包含 Option82 欄位,則丟棄該訊息。如果沒有,訊息將正常轉發。
在 DHCP Relay 情況下,DHCP 伺服器需要為不同網段、跨網段的用戶端分配位址。通常,DHCP 伺服器只能分配自己網段內的 IP 位址。但是,它可以設定多個 Relay Agent Pool,以依據 Option82 等欄位確定要指派的 IP 子網路。這就需要 DHCP 伺服器支援設定為 DHCP Relay 位址 Pool。可以執行此類操作的常見 DHCP 伺服器有像是 ubuntu 的 DHCP 伺服器(透過安裝 ISC-DHCP-Relay)等等。
DHCP Relay 訊息交換
除了 DHCP L2 Relay 之外,Interface Relay 和 VLAN Relay 都需要交換器進行 L3 網路 Relay 轉發,也就是說需要設定 L3 Relay Interface。
DHCP Relay 設定指南
1. 設定 DHCP Interface Relay
DHCP Interface Relay 用於在兩個不同網段的 DHCP 用戶端和 DHCP 伺服器之間建立 Relay 連線。需要依據不同網段的兩個 L3 Interface 進行設定。一般情況下,設定可以使用以下方式:
步驟 1:設定與 DHCP 用戶端連接的 VLAN 及 L3 Interface:此 VLAN 應與 DHCP 用戶端要取得的 IP 位址在同一網段,來確保用戶端取得位址後能與交換器進行通訊
步驟 2:設定與 DHCP 伺服器連接的 VLAN 和 L3 Interface:此 Interface 與伺服器屬於同一網段,以便交換器與伺服器之間能夠相互通訊,完成訊息的 Relay。
步驟 3:全域啟用 DHCP Relay。
步驟 4:設定 DHCP Interface Relay Interface 和連接的 DHCP 伺服器位址。
步驟 5:(可選)設定 Option82 功能。
假設 DHCP 用戶端需要透過 IP 位址為 192.168.100.100/24 的 DHCP 伺服器從 192.168.2.x/24 子網路取得 IP 位址(已設定了 192.168.100.x/24 子網路的 DHCP 位址 Pool,與交換器無關,且不同 DHCP 伺服器的設定方式可能有所不同,因此不在此詳細說明),交換器的具體設定步驟如下:
1.1 在獨立管理模式下
步驟 1:設定連接到 DHCP 用戶端的 VLAN 和 L3 Interface(以下以常見的 VLAN Interface 為範例)。建立 VLAN 2,並將連接到用戶端的連接埠設定為 Access 埠。例如,在 VLAN 2 當中將埠 1-2 設定為 Untagged 埠,然後依據 VLAN 2 建立 L3 Interface。
步驟 2:設定連接 DHCP 伺服器的 VLAN 和 L3 Interface(這裡也以常見的 VLAN Interface 為範例)。建立 VLAN 100,將埠 9-10 設定為 Uplink 埠,並在 VLAN 100 中將其設定為 Tagged 埠。
步驟 3:全域啟用 DHCP Relay。
步驟 4:設定 DHCP Interface Relay 的 Interface 和連接的 DHCP 伺服器位址。注意,這裡的 Interface ID 應該是需要 Relay 的 Interface 的 ID,而不是連接 DHCP 伺服器的 Interface。例如,在此情境中,輸入「2」作為 Interface ID,並在伺服器位址欄位中輸入實際 DHCP 伺服器的 IP 位址。
1.2 在控制器模式下
步驟 1:建立 VLAN 2 和 VLAN 100,並將 Downlink 連接埠設定為 Access Port。
步驟 2:建立 VLAN 2 和 VLAN 100 Interface。
步驟 3&4:設定 DHCP Interface Relay 項目。前往更多設定→設定→VLAN Interface,選擇需要 Relay 的 Interface,然後點擊「編輯」進入編輯模式。
2. 設定 DHCP VLAN Relay
DHCP VLAN Relay 的功能也是在兩個不同網段之間建立 DHCP 用戶端與 DHCP 伺服器的 Relay 連接。一般來說,可以依照以下步驟進行設定:
步驟 1:設定與 DHCP 用戶端連線的 VLAN:與 Interface Relay 透過 L3 Interface 連接用戶端不同,VLAN Relay 用戶端的 Interface 只是一個 VLAN,這表示用戶端和交換器並不是直接相連的。
步驟 2:設定與 DHCP 伺服器連接的 L3 Interface:此 Interface 與伺服器應在同一網段,以便交換器與伺服器能夠互相通訊,完成訊息 Relay。
步驟 3:全域啟用 DHCP Relay。
步驟 4:設定 DHCP VLAN Relay Interface 和所連接的 DHCP 伺服器位址。
步驟 5:(可選)設定 Option82 功能。
目前,獨立管理模式支援所有的三種 DHCP Relay 設定。在控制器模式下,僅支援 DHCP L2 Relay 和 DHCP Interface Relay 設定,但可以透過 CLI 指令設定和佈署 DHCP VLAN Relay(需要 Omada 控制器 V5.9 及以上版本)。
2.1 在獨立管理模式下
步驟 1:設定 DHCP 用戶端連接的 VLAN。
步驟 2:設定連接 DHCP 伺服器的 L3 Interface。
步驟 3:全域啟用 DHCP Relay;
步驟 4:設定 DHCP VLAN Relay Interface 和連接的 DHCP 伺服器位址
首先,設定 Default Relay Interface:直接輸入 VLAN 100。套用設定後,將自動產生對應的 L3 Interface 位址並用作 Default Relay Interface。
接下來,設定 DHCP VLAN Relay 項目。這裡的 VLAN ID 是需要 Relay 的 VLAN ID,本架構中是 VLAN 2。
步驟 5:(可選)設定 Option82 功能:如果沒有特別需求,啟用埠後請保持 Option82 預設值。
2.2 在控制器模式下
目前,控制器不支援在 Interface 上設定 DHCP VLAN Relay,但對於 V5.9 以上版本,可以透過 CLI 指令設定此功能。要達到與上述與獨立管理模式相同的效果,可以依照以下步驟操作:
步驟 1:建立 VLAN 2 和 VLAN 100,並將 Downlink 設定為 Access Port。
步驟 2 : 建立連接 DHCP 伺服器的 VLAN 100 Interface。
步驟 3:透過 CLI 指令佈署 DHCP VLAN Relay 項目設定。
service dhcp relay
ip dhcp relay vlan 2 helper-address 192.168.100.100
interface vlan 100
ip dhcp relay default-interface
3. 設定 DHCP L2 Relay
與 Interface Relay 和 VLAN Relay 不同,後者需要依據 L3 Interface 的 Relay 來轉發訊息,L2 Relay 則在同一個 Layer 2 LAN 內運作,針對 DHCP 用戶端和伺服器。因此,L2 Relay 的主要功能是監聽用戶端和伺服器之間的交互訊息,並提供新增或修改 Relay Agent Information option 的能力(Circuit ID 自訂與 Remote ID 自訂)。簡單來說,L2 Relay 支援在 DHCP 訊息中操作 Option 82 來進行 L2 網路互動。
步驟 1:設定 DHCP 用戶端和伺服器連接的 VLAN。
步驟 2:全域啟用 DHCP L2 Relay,啟用 VLAN。
步驟 3:(可選)設定 Option 82 功能。
3.1 在獨立管理模式下
步驟 1:設定 DHCP 用戶端和伺服器連接的 VLAN。
對於同一 LAN 中的用戶端和伺服器之間的通訊,只需規劃在同一 VLAN 內即可。這裡以它們在 VLAN 2 中的互動為例。客戶端透過 Access Port 連接,伺服器端透過 Trunk Port 連接。
步驟 2:全域啟用 DHCP L2 Relay,啟用 VLAN。
步驟 3:(可選)設定 Option82 功能
3.2 在控制器模式下
控制器模式目前支援 DHCP L2 Relay 設定。請依照以下步驟操作:
步驟 1:啟用對應 VLAN 的 DHCP L2 Relay 功能。
步驟 2:(可選)設定連接埠的 Option82 功能。
如下圖所示:
步驟 1:啟用對應 VLAN 的 DHCP L2 Relay 功能:這裡以啟用 VLAN 2 的 DHCP L2 Relay 為例。前往站點→站點設定→有線網路→設備所在的 LAN,建立 VLAN 2,並勾選 DHCP L2 Relay。
步驟 2:(可選)設定連接埠的 Option82 功能。
進入設備所在站點,點選設備,選擇需要設定 Option82 的設備。點擊連接埠,選擇需要開啟 Option82 的連接埠。勾選取代設定檔開啟詳細資訊,勾選 Option82 來啟用支援 Option82,依據需要選擇格式、Circuit ID和 Remote ID,如果沒有特殊要求,保持預設即可。
請依照上述指南了解獨立或控制器模式下三種類型的 DHCP Relay 設定方式。為了確認設定是否正常生效,可以使用有線或無線用戶端存取網路,檢查所取得的 IP 位址所在網段是否符合預期。