dhcp原理及其實現流程
一、什么是DHCP?
DHCP,動態主機配置協議,前身是BOOTP協議,是一個局域網的網絡協議,使用UDP協議工作,常用的2個端口:67(DHCP server),68(DHCP client)。DHCP通常被用于局域網環境,主要作用是集中的管理、分配IP地址,使client動態的獲得IP地址、Gateway地址、DNS服務器地址等信息,并能夠提升地址的使用率。簡單來說,DHCP就是一個不需要賬號密碼登錄的、自動給內網機器分配IP地址等信息的協議。
二、DHCP的功能
1、保證任何IP地址在同一時刻只能由一臺DHCP客戶機所使用。
2、DHCP應當可以給用戶分配永久固定的IP地址。
3、DHCP應當可以同用其他方法獲得IP地址的主機共存(如手工配置IP地址的主機)
4、DHCP服務器應當向現有的BOOTP客戶端提供服務。
三、DHCP原理
DHCP請求IP地址的過程如下:
1)主機發送DHCPDISCOVER廣播包在網絡上尋找DHCP服務器;
2)DHCP服務器向主機發送DHCPOFFER單播數據包,包含IP地址、MAC地址、域名信息以及地址租期;
3)主機發送DHCPREQUEST廣播包,正式向服務器請求分配已提供的IP地址;
4)DHCP服務器向主機發送DHCPACK單播包,確認主機的請求
需要說明的是:DHCP客戶端可以接收到多個DHCP服務器的DHCPOFFER數據包,然后可能接受任何一個DHCPOFFER數據包,但客戶端通常只接受收到的第一個DHCPOFFER數據包。另外,DHCP服務器DHCPOFFER中指定[1] 的地址不一定為最終分配的地址,通常情況下,DHCP服務器會保留該地址直到客戶端發出正式請求。
正式請求DHCP服務器分配地址DHCPREQUEST采用廣播包,是為了讓其它所有發送DHCPOFFER數據包的DHCP服務器也能夠接收到該數據包,然后釋放已經OFFER(預分配)給客戶端的IP地址。
如果發送給DHCP客戶端的地址已經被其他DHCP客戶端使用,客戶端會向服務器發送DHCPDECLINE信息包拒絕接受已經分配的地址信息。
在協商過程中,如果DHCP客戶端發送的REQUEST消息中的地址信息不正確,如客戶端已經遷移到新的子網或者租約已經過期,DHCP服務器會發送DHCPNAK消息給DHCP客戶 端,讓客戶端重新發起地址請求過程。
四、DHCP的優缺點
DHCP服務優點不少:網絡管理員可以驗證IP地址和其它配置參數,而不用去檢查每個主機;DHCP不會同時租借相同的IP地址給兩臺主機;DHCP管理員可以約束特定的計算機使用特定的IP地址;可以為每個DHCP作用域設置很多選項;客戶機在不同子網間移動時不需要重新設置IP地址。
但同時也存在不少缺點:DHCP不能發現網絡上非DHCP客戶機已經在使用的IP地址;當網絡上存在多個DHCP服務器時,一個DHCP服務器不能查出已被其它服務器租出去的IP地址;DHCP服務器不能跨路由器與客戶機通信,除非路由器允許BOOTP轉發。
五、dhcp實現流程
1、發現階段,即DHCP客戶機尋找DHCP服務器的階段。DHCP客戶機以廣播方式(因為DHCP服務器的IP地址對于客戶機來說是未知的)發送DHCP discover發現信息來尋找DHCP服務器,即向地址255.255.255.255發送特定的廣播信息。網絡上每一臺安裝了TCP/IP協議的主機都會接收到這種廣播信息,但只有DHCP服務器才會做出響應。
2、提供階段,即DHCP服務器提供IP地址的階段。在網絡中接收到DHCP discover發現信息的DHCP服務器都會做出響應,它從尚未出租的IP地址中挑選一個分配給DHCP客戶機,向DHCP客戶機發送一個包含出租的IP地址和其他設置的DHCP offer提供信息。
3、選擇階段,即DHCP客戶機選擇某臺DHCP服務器提供的IP地址的階段。如果有多臺DHCP服務器向DHCP客戶機發來的DHCP offer提供信息,則DHCP客戶機只接受第一個收到的DHCP offer提供信息,然后它就以廣播方式回答一個DHCP request請求信息,該信息中包含向它所選定的DHCP服務器請求IP地址的內容。之所以要以廣播方式回答,是為了通知所有的DHCP服務器,他將選擇某臺DHCP服務器所提供的IP地址。
4、確認階段,即DHCP服務器確認所提供的IP地址的階段。當DHCP服務器收到DHCP客戶機回答的DHCP request請求信息之后,它便向DHCP客戶機發送一個包含它所提供的IP地址和其他設置的DHCP ack確認信息,告訴DHCP客戶機可以使用它所提供的IP地址。然后DHCP客戶機便將其TCP/IP協議與網卡綁定,另外,除DHCP客戶機選中的服務器外,其他的DHCP服務器都將收回曾提供的IP地址。
5、重新登錄。以后DHCP客戶機每次重新登錄網絡時,就不需要再發送DHCP discover發現信息了,而是直接發送包含前一次所分配的IP地址的DHCP request請求信息。當DHCP服務器收到這一信息后,它會嘗試讓DHCP客戶機繼續使用原來的IP地址,并回答一個DHCP ack確認信息。如果此IP地址已無法再分配給原來的DHCP客戶機使用時(比如此IP地址已分配給其它DHCP客戶機使用),則DHCP服務器給DHCP客戶機回答一個DHCP nack否認信息。當原來的DHCP客戶機收到此DHCP nack否認信息后,它就必須重新發送DHCP discover發現信息來請求新的IP地址。
6、更新租約。DHCP服務器向DHCP客戶機出租的IP地址一般都有一個租借期限,期滿后DHCP服務器便會收回出租的IP地址。如果DHCP客戶機要延長其IP租約,則必須更新其IP租約。DHCP客戶機啟動時和IP租約期限過一半時,DHCP客戶機都會自動向DHCP服務器發送更新其IP租約的信息。
為了便于理解,我們把DHCP客戶機比做餐館里的客人,DHCP服務器比做服務員(一個餐館里也可以有多個服務員),IP地址比做客戶需要的食物。那么可以這樣描述整個過程:客人走進餐館,問:“有沒有服務員啊?”(DHCP discover),多個服務員同時回答:“有,我這有雞翅”“有,我這有漢堡”(DHCP offer)。客人說:“好吧,我要一份漢堡”(DHCP request,這個客人比較死板,總是選擇第一次聽到的食物),端著漢堡的服務員回應了一聲:“來啦”(DHCP ack),并把食物端到客人面前,供其享用(將網卡和IP地址綁定)。客人下次來的時候,就直接找上次那個服務員點自己喜歡的漢堡了(DHCP request),如果還有漢堡,服務員會再次確認并上菜(DHCP ack),而如果已經賣完了,服務員則會告訴客人:“不好意思,已經賣完了”(DHCP nack)。當然,服務員隔一段時間會來收拾一次桌子,除非客人特別說明這菜還要繼續吃的,服務員會將剩菜端走。
非常好我支持^.^
(703) 87%
不好我反對
(105) 13%
相關閱讀:
- [電子說] 在Ubuntu上開啟RNDIS的DHCP服務器的一般的思路 2023-10-19
- [電子說] 「工業樹莓派」dhcpcd 使用介紹 2023-09-14
- [電子說] ENSP華為路由器出口NAT實驗設計 2023-08-17
- [電子說] 三層交換機到底要怎么配置 有哪些常用的配置命令 2023-08-09
- [電子說] 網絡對講終端SV-7011T使用說明 2023-06-25
- [電子說] H3C設備配置DHCP服務 2023-06-20
- [電子說] 手工配置IP地址麻煩還會出錯?普及下DHCP的各種工作原理 2023-06-19
- [RF/無線] wlan沒有找到有效的ip地址 wlan沒有有效的ip配置怎么辦 2023-06-14
( 發表人:陳翠 )