回首頁
修改
Mail
FTP

中




2007年10月23日 星期二

[網路概念]DHCP 的運作理論

好文章一看就明白的文章 推

當 DHCP Client 要和 DHCP Server 取得 IP 時,DHCP Client 還沒有設定好網路,那怎樣和 DHCP Server 要 IP 呢?記不記得在『網路概論』的地方談過區域網路內可以透過廣播的方式,把封包丟到所有區網上的電腦呢?DHCP Client 就是利用這種方式來連接 DHCP Server 的。簡單的流程如下:

首先 DHCP Client 丟出一個 UDP 封包 (DHCP Discover),裡面來源 IP 和 Port 分別填 0.0.0.0、68,目地 IP 和 Port 分別填 255.255.255.255、67。然後把它放在網路層包裝,並在框架表頭填上自己的 MAC Address 後,送出去廣播。
有興趣的可以下這個指令就可以了解 dhclient eth0
SuSE distribution 則要下 dhcpcd
此時整個區域網路的電腦都會收到這個封包,但是解開以後,會發現目地是 255.255.255.255,所以一般的電腦都會把這個封包丟棄。但是當 DHCP Server 收到後,會發現這是要給它的,於是它會把該封包撿起來。之後會比對來源的 MAC Address 是否在 DHCP Server 上有設定要給與固定 IP,若有的話,則依照 Server 上的設定值傳回設定值給 Client 端。若沒有的話,會選取可發放 IP 裡面還沒有人用的 IP 給 Client 端,這時候傳回 Client 端的封包稱為 DHCP Offer。注意唷,在區網內只要有 MAC Address 就可以傳送封包,不需要等到設定好 IP 組態。
當 Client 收到 Server 給它的設定後,會先用 ARP 檢查該 IP 是否已經有人使用,若已經有人使用,Client 就會發一個 DHCP Declient 的封包給 Server,告訴 Server 不會使用該 IP,再重新從步驟 1 開始要其他的 IP。若 Client 端測試為該 IP 沒有人用,會發一個 DHCP Request 給 Server 確認使用該網路設定。
最後 Server 收到 DHCP Request 後,Server 端會再發一個 DHCP Pack 封包,確認給與的 IP 租約生效,此時才完成整個 DHCP 協定的流程。
在步驟 2 的時候,Server 會給 Client 端一個合約時間,當使用超過了合約時間就需要重新續約,也就是再重新跑一次 DHCP 的流程。通常當 Server 端可以分配的 IP 很充足時,續約會優先給同樣的 IP,若當 Server 端的 IP 用完後,可能會無法續約,就需要排隊等候了。

Sources link = http://wiki.ubuntu.org.tw/index.php/UbuntuTW_Guide_ch15

0 回應: