主頁 / DHCP 自動分配 IP 是什麼?
DHCP 自動分配 IP 是什麼?
DHCP(Dynamic Host Configuration Protocol,動態主機設定協議)是一套讓網絡內的裝置自動取得 IP 地址及其他網絡參數的協議,由 RFC 2131 定義。本頁講解 DHCP 的 DORA 分配流程、租約機制,以及保留位址與靜態分配的分別。
DHCP 的定義:自動分配網絡參數的協議
在沒有 DHCP 的年代,網絡管理員需要為每一台裝置逐一手動輸入 IP 地址、子網遮罩、預設閘道等參數,裝置一多便極容易出現地址重複或設定錯誤。DHCP 的作用,就是由一台伺服器集中管理一個地址範圍,並在裝置接入網絡時自動分配可用的 IP 地址及相關參數,令裝置開機後不需任何人手設定即可上網。
DHCP 建基於較早期的 BOOTP(Bootstrap Protocol)協議,並加入了地址可重用分配及更豐富的設定選項。目前通行的版本由 IETF 的 RFC 2131(1997 年發布)定義,屬於標準track協議,是現時幾乎所有家用及企業網絡的基礎服務之一。想了解網絡佈線的整體規劃,可參考我們的弱電工程與網絡佈線指南 。
DORA 流程:Discover、Offer、Request、Acknowledge
根據 RFC 2131 的定義,客戶端首次向 DHCP 伺服器取得一個新地址時,會經歷四個階段的訊息交換,業界一般簡稱為 DORA 流程:
Discover(發現) ——客戶端裝置在本機所在的網段內廣播一個 DHCPDISCOVER 訊息,尋找網絡內可用的 DHCP 伺服器。此時客戶端尚未擁有 IP 地址,因此以廣播方式發送。
Offer(提供) ——收到廣播的每一台 DHCP 伺服器,都可以回覆一個 DHCPOFFER 訊息,內含一個可供分配的 IP 地址及其他設定參數。若網絡內有多台伺服器,客戶端可能同時收到多個 Offer。
Request(要求) ——客戶端從眾多 Offer 之中選擇其一,發出 DHCPREQUEST 訊息,明確要求採用該伺服器所提供的地址;此舉同時等同向其餘未被選中的伺服器隱式表示不接受它們的 Offer。
Acknowledge(確認) ——被選中的伺服器回覆 DHCPACK 訊息,正式將該 IP 地址連同其他網絡參數(子網遮罩、預設閘道、DNS 伺服器等)確認分配給客戶端,並開始計算租約時間。
RFC 2131 亦定義了其他訊息類型,例如客戶端發現地址已被佔用時發出的 DHCPDECLINE、伺服器拒絕客戶端請求時發出的 DHCPNAK,以及客戶端主動釋放地址時發出的 DHCPRELEASE。若客戶端已擁有先前分配過的地址(例如重新開機),流程可以省略 Discover 與 Offer 兩步,直接發出 DHCPREQUEST 確認地址仍然有效。
租約(Lease):地址並非永久擁有
DHCP 分配的 IP 地址並非永久屬於某台裝置,而是附帶一個可設定的「租約」時間。根據 RFC 2131 的設計,客戶端在租約時間過半時,會主動向原本的伺服器發出 DHCPREQUEST 要求續租;若伺服器仍然在線並同意,便回覆 DHCPACK 延長租約。如果客戶端在租約到期前一直未能成功續租,最終必須停止使用該地址,並重新展開完整的 DORA 流程申請新地址。
租約機制的好處,是伺服器可以在裝置離線或不再使用某地址後,回收該地址重新分配給其他裝置,避免地址範圍被閒置佔用。這對於訪客 Wi-Fi、公共場所等裝置流動性高的網絡尤其重要。
保留位址(Reservation):固定分配同一個地址
對於伺服器、網絡打印機、閉路電視主機、NVR、門禁控制器等需要長期以固定地址被存取的設備,單純依賴動態租約並不理想,因為地址有機會在續租失敗後改變。此時常見的做法有兩種:一是在 DHCP 伺服器上設定「保留位址」(Reservation,又稱靜態 DHCP 分配),將該設備的 MAC 地址與指定 IP 綁定,令其每次申請都取得同一個地址;二是完全跳過 DHCP,直接在設備上手動輸入固定 IP(靜態分配)。