主頁 / 什麼是DHCP中繼?
什麼是DHCP中繼?
DHCP中繼(DHCP Relay Agent)是一種在不同VLAN或網段之間轉發DHCP請求與回應的機制,讓一台中央DHCP伺服器可以同時為多個網段的終端派發IP地址,毋須在每個網段都各自部署一台伺服器。本頁講解DHCP中繼的運作原理、giaddr欄位的作用,以及商廈與屋苑弱電工程如何在跨VLAN環境中正確設定。
為什麼需要DHCP中繼
DHCP的核心流程——發現(Discover)與請求(Request)——依賴客戶端在本地網段發出廣播訊息。廣播訊息的性質決定它只能在同一個廣播域內傳播,一旦經過路由器或三層交換機的VLAN邊界便會被丟棄。換言之,如果一間商廈按樓層或按用途劃分了辦公網絡、CCTV網絡與門禁網絡等多個VLAN,理論上每個VLAN都需要獨立部署一台DHCP伺服器,才能收到該網段內終端發出的廣播請求。
這種做法在小型網絡尚可接受,但當VLAN數量增加至十個甚至數十個,逐一部署與維護伺服器將大幅增加管理成本,亦難以統一控制地址分配政策。DHCP中繼正是為解決這個問題而設計:它在VLAN邊界把廣播訊息「翻譯」為單播訊息 ,轉送至遠端的中央DHCP伺服器,令一台伺服器足以服務整個機構所有VLAN的地址派發需要,同時仍能按VLAN分別派發不同網段的IP地址。
DHCP中繼的運作原理
DHCP中繼一般設定在VLAN的第三層介面上,即該VLAN的預設閘道所在的三層交換機或路由器。根據定義DHCP標準流程的RFC 2131,早於BOOTP時代已存在中繼代理的概念,DHCP沿用了相同機制。整個轉發過程的關鍵在於封包標頭內的giaddr(Gateway IP Address)欄位 ,其運作次序如下:
客戶端廣播請求 ——終端開機後在本地VLAN內廣播DHCP Discover封包,此時giaddr欄位為零,客戶端並不知道網段以外的情況。
中繼收到並填入giaddr ——擔任該VLAN閘道的三層交換機或路由器收到廣播後,把自己在該VLAN的介面地址填入giaddr欄位,再以單播方式把封包轉送至設定好的DHCP伺服器地址。
伺服器依giaddr判斷網段 ——DHCP伺服器讀取giaddr後得知請求來自哪一個網段,從對應的地址池(scope)中挑選一個未被佔用的IP地址、子網掩碼、預設閘道及其他選項準備回覆。
伺服器單播回覆至中繼 ——伺服器把回應以單播方式送回giaddr所指的中繼地址,而非直接送給客戶端,因為伺服器與客戶端往往不在同一網段,無法直接廣播到達。
中繼轉發回客戶端 ——中繼收到回應後,在本地VLAN內把訊息轉發(視情況以廣播或單播)給原始請求的客戶端,完成整個租約流程。
另一份相關標準RFC 3046(Relay Agent Information Option)進一步定義了中繼可在轉發時附加額外資訊,例如客戶端接入的實體端口或VLAN編號,讓DHCP伺服器或後端系統可依此資訊作更細緻的地址分配或審計,這項功能在需要嚴格追蹤終端接入位置的企業網絡中尤其常用。
DHCP中繼與相關概念的分別
項目 角色 是否保存地址池 典型部署位置
DHCP伺服器 實際派發IP地址、記錄租約 是 核心機房,服務多個VLAN
DHCP中繼 轉發廣播請求與單播回應 否 各VLAN的三層閘道介面
DHCP客戶端 發出請求並使用獲派IP 否 終端裝置、攝影機、電腦
giaddr 標示請求來源網段的欄位 不適用 由中繼填入,伺服器讀取
值得留意,DHCP中繼與IP Helper(部分廠商如Cisco的設備術語)本質上是同一功能的不同稱呼,設定方式亦大致相同:在VLAN介面下指定一個或多個中繼地址,即可把該VLAN的DHCP請求轉發到指定伺服器。若指定多台伺服器地址,中繼會把請求同時轉發至所有目標,由客戶端採用最先回應的一台。
設定與排查要點
設定DHCP中繼時,除了在VLAN介面填入正確的伺服器地址,還須確保DHCP伺服器上已為每個網段建立對應的地址池(作用域),否則即使中繼運作正常,伺服器仍會因無地址可派而拒絕請求。常見排查步驟包括:
確認VLAN介面本身已設定正確的IP地址,因為該地址會成為giaddr的來源,設定錯誤將令伺服器誤判網段。
核對DHCP伺服器的地址池是否與VLAN網段一致,並留意地址池是否已耗盡。
檢查中繼與伺服器之間的路由是否暢通,以及防火牆或ACL有否攔截UDP 67、68埠之間的流量。
以實際終端在該VLAN內重新申請IP地址,並在伺服器租約記錄中核實來源網段與所派地址是否對應,而非單憑設定畫面顯示「已啟用」便視為成功。
DHCP中繼與VLAN間路由 是相輔相成的兩項機制:後者負責讓不同VLAN的終端之間可以互相通訊,前者則負責讓不同VLAN的終端可以共用同一台DHCP伺服器取得地址,兩者通常在同一台核心三層交換機上一併設定。
參考資料
RFC 2131, Dynamic Host Configuration Protocol, IETF, https://www.rfc-editor.org/rfc/rfc2131.txt RFC 3046, DHCP Relay Agent Information Option, IETF, https://www.rfc-editor.org/rfc/rfc3046.txt Wikipedia, Dynamic Host Configuration Protocol, https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol