在前系列「常見網路問題(三):PPPoE、DHCP 及 Static 的設定」中,有提到 DHCP 的主要作用:動態分配 IP 位置。而這篇文章會更進一步說明 DHCP 的所做所為。
全稱叫做 Dynamic Host Configuration Protocol(動態主機設定協定)的 DHCP,聽起來有點繞口,但他做的事情其實沒這麼複雜,你可以把他簡單想像成「網路界的二房東」。
DHCP Server 通常並沒有真正「擁有」這些地址,而實際是歸 Router 這個大房東所有,DHCP Server 只是幫忙 Router 把 IP 位置分配出去而已。雖說現在家用的場景裡,較常見的情形是 Router 本身就內建 DHCP Server,但在複雜一點的環境通常還是會將兩者拆分出來。
總之,形象點來說,DHCP Server 就像是一位手頭下物件有許多的二房東,有人來申請,就查閱自己的小簿子,把目前是空的物件(IP Address)給租出去,同時也等著老房客續租。
DHCP 的重要特性之一:租約(Lease),就是將 IP 位置租給某台設備一段時間,可以是一整天,也可以是幾個小時,並且期限快到之前是可以重新續約(Renew)的。
而提到租約,可能會讓人好奇說,為何不直接分配一個固定的 IP 位址就好,偏偏要用租的?
這是因為在 DHCP 的常見使用場景下,IP 位置通常有限,為了能夠更妥善地利用資源,才會將這些位置「租」出去,避免有設備佔著茅坑不拉屎。
舉例來說,一個區域網路內會有許多設備,但不一定都會一直連著線。最常見的情況就是手機這類的移動設備,可能人一離開就把手機跟著帶走了,如果永久地將 IP 位置派發給他,可能隔一段時間這個區網的 IP 位置就不夠用了!
*區網中的設備
那麼,租約的概念又什麼?
首先,就如 DHCP 全名中的 Dynamic 所示,在一個設備會時常加入和移出的環境,這樣的服務可以應變動態的網路環境。但你可能會想,為何要租「一段時間」?如果我跳進來又跳出去了,怎麼不等我跳出去的時候收回我的 IP 位置就好?
這種設計的好處就是夠簡單:對 DHCP Server 來講,不必偵測何時裝置離開,畢竟誰知道現在偵測不到裝置到底是網路連線緩慢,還是真的斷線了呢?更何況如果我只是出去上個廁所,回來後 IP 位置就被換掉,也會覺得很不方便。
透過租約的設計,DHCP Server 只要看錶計時,時間到了還沒提續約,我再收走你的 IP 位址就好,省去處理監測設備這樣的瑣事。