by mandy
10. April 2015 14:48
DHCP-Dynamic Host Configuration Protocol
顧名思義,我們可以說它是:「讓我管理的Host(主機)能夠自動被分配動態IP的協定」
- 動態IP=浮動IP(dynamic ip)
- 靜態IP=固定IP(static ip)
- 除了IP,可以分配的參數還包括了 netmask、gateway 與 DNS 的位址等等
可以想像一下沒有DHCP的時候(原始人時期XD),當公司有新進人員的時候,
網管人員這時候拿出一張紙:上面記錄了公司上百名員工的姓名及固定IP、電腦名稱的對照表,
並寫上一筆紀錄,這樣以後才不會導致IP conflict(兩台電腦同時租用同一組IP address),
接著再去手動設定這位新進同仁的固定IP。
當然,人非聖賢,事情一多的時候難保不會記錄錯誤!
所以DHCP的出現,就是把這些「容易變動的IP派發工作」交給它。
任何server與client端都是「相對概念」,
提供服務的就叫做server;接受服務的就叫做client。
沒有一定的標準與規範,就像你不能說「一般所稱的server就是DHCP server」,
但它的確是server的一種。
而Windows server只是一種作業系統、一種平台,上面提供了服務,才能稱它為「某某server」(e.g. DNS server, DHCP server, web server, mail server),否則他也只是接受服務的一個client而已。
DHCP的運作原理
當Client端啟動時,會搜尋DHCP server,然而它有兩種不同的需求:
1. client端向server端要一組新的IP address (我要換門牌號碼!)
會透過四個封包來溝通需要的資訊,以達成目的:
- DHCPDISCOVER:
Client:「這是社區廣播,有哪一台DHCP可以讓我拿到門牌號碼(IP address)呢?」
- DHCPOFFER:
DHCP Server1:「這是社區廣播,我這邊有一組空的(並作記號這已經要給人使用了),給你!」
DHCP Server2:「這是社區廣播,我這邊有一組空的(並作記號這已經要給人使用了),給你!」
Client會選擇第一個收到的DHCPOFFER訊息。
- DHCPREQUEST:
Client replies to DHCP Server1:「這是社區廣播,我要用server1的IP了,其他server請把使用的記號清掉,這樣其他人才可以再使用。」
Client此時也會檢查IP是不是真的沒有使用中,若有人在用,就會再從頭發一次DHCPDISCOVER。
- DHCPACK:
DHCP Server1:「這是社區廣播,確認IP沒有問題,您真的可以拿來使用了哦~」
接著Client就可以開始利用這個IP address和其他電腦溝通。
2. client端向server要求renew(更新)租約 (門牌租約到期啦~但我還要續約)
會透過兩個封包來溝通需要的資訊,以達成目的:
- DHCPREQUEST:
Client speaks to DHCP Server1:「我要續約!」
- DHCPACK:
DHCP server1會先檢查這組IP是否有效或沒被其他電腦使用中,
DHCP Server1:「OK!我幫你續約了。」
9dee3614-698c-462f-a9eb-28007b0a8020|3|4.3
Tags: