dhcp工作過(guò)程詳解
對(duì)于學(xué)習(xí)DHCP來(lái)說(shuō),很重要的一部分就是對(duì)于DHCP工作過(guò)程的理解。那么首先DHCP分為兩個(gè)部分:一個(gè)是服務(wù)器端,另一個(gè)是客戶(hù)端。所有客戶(hù)機(jī)的IP地址設(shè)定資料都由DHCP服務(wù)器集中管理,并負(fù)責(zé)處理客戶(hù)端的DHCP要求;而客戶(hù)端則會(huì)使用從服務(wù)器分配下來(lái)的IP地址。
DHCP服務(wù)器提供三種IP分配方式:自動(dòng)分配(Automatic Allocation)、動(dòng)態(tài)分配(Dynamic Allocation)和手動(dòng)分配。自動(dòng)分配是當(dāng)DHCP客戶(hù)端第一次成功地從DHCP服務(wù)器端分配到一個(gè)IP地址之后,就永遠(yuǎn)使用這個(gè)地址。動(dòng)態(tài)分配是當(dāng)DHCP客戶(hù)端第一次從DHCP服務(wù)器分配到IP地址后,并非永久地使用該地址,每次使用完后,DHCP客戶(hù)端就得釋放這個(gè)IP地址,以給其他客戶(hù)端使用,而手動(dòng)分配是由DHCP服務(wù)器管理員專(zhuān)門(mén)指定IP地址。
DHCP客戶(hù)機(jī)在啟動(dòng)時(shí),會(huì)搜尋網(wǎng)絡(luò)中是否存在DHCP服務(wù)器。如果找到,則給DHCP服務(wù)器發(fā)送一個(gè)請(qǐng)求。DHCP服務(wù)器接到請(qǐng)求后,為DHCP客戶(hù)機(jī)選擇TCP/IP配置的參數(shù),并把這些參數(shù)發(fā)送給客戶(hù)端。如果已配置沖突檢測(cè)設(shè)置,則DHCP 服務(wù)器在將租約中的地址提供給客戶(hù)機(jī)之前會(huì)試用Ping測(cè)試作用域中每個(gè)可用地址的連通性。這可確保提供給客戶(hù)的每個(gè)IP地址都沒(méi)有被使用手動(dòng)TCP/IP配置的另一臺(tái)非DHCP 計(jì)算機(jī)使用。
DHCP工作過(guò)程的六個(gè)主要步驟
根據(jù)客戶(hù)端是否第一次登錄網(wǎng)絡(luò),DHCP的工作形式會(huì)有所不同??蛻?hù)端從DHCP服務(wù)器上獲得IP地址的整個(gè)過(guò)程分為以下六個(gè)步驟:
1、尋找DHCP服務(wù)器
當(dāng) DHCP客戶(hù)端第一次登錄網(wǎng)絡(luò)的時(shí)候,計(jì)算機(jī)發(fā)現(xiàn)本機(jī)上沒(méi)有任何IP地址設(shè)定,將以廣播方式發(fā)送DHCP discover發(fā)現(xiàn)信息來(lái)尋找DHCP服務(wù)器,即向255.255.255.255發(fā)送特定的廣播信息。網(wǎng)絡(luò)上每一臺(tái)安裝了TCP/IP協(xié)議的主機(jī)都會(huì) 介紹這個(gè)廣播信息,但只有DHCP服務(wù)器才會(huì)做出響應(yīng)。
2、分配IP地址
在網(wǎng)絡(luò)中接收到DHCP discover發(fā)現(xiàn)信息的DHCP服務(wù)器都會(huì)做出相應(yīng),它從尚未分配的IP地址中挑選一個(gè)分配給DHCP客戶(hù)機(jī),向DHCP客戶(hù)機(jī)發(fā)送一個(gè)包含分配的IP地址和其他設(shè)置的DHCP offer提供信息。
3、接受 IP地址
DHCP客戶(hù)端接受到DHCP offer提供信息之后,選擇第一個(gè)接收到的提供信息,然后以廣播的方式回答一個(gè)DHCP request請(qǐng)求信息,該信息包含向它所選定的DHCP服務(wù)器請(qǐng)求IP地址的內(nèi)容。
4、IP地址分配確認(rèn)
當(dāng) DHCP服務(wù)器收到DHCP客戶(hù)端回答的DHCP request請(qǐng)求信息之后,便向DHCP客戶(hù)端發(fā)送一個(gè)包含它所提供的IP地址和其他設(shè)置的DHCP ack確認(rèn)信息,告訴DHCP客戶(hù)端可以使用它提供的IP地址。然后,DHCP客戶(hù)機(jī)便將其TCP/IP協(xié)議與網(wǎng)卡綁定,另外,除了DHCP客戶(hù)機(jī)選中的 服務(wù)器外,其他的DHCP服務(wù)器將收回曾經(jīng)提供的IP地址。
5、重新登錄
以 后DHCP客戶(hù)端每次重新登錄網(wǎng)絡(luò)時(shí),就不需要再發(fā)送DHCP discover發(fā)現(xiàn)信息了,而是直接發(fā)送包含前一次所分配的IP地址的DHCP request請(qǐng)求信息。當(dāng)DHCP服務(wù)器收到這一信息后,它會(huì)嘗試讓DHCP客戶(hù)機(jī)繼續(xù)使用原來(lái)的IP地址,并回答一個(gè)DHCP ack確認(rèn)信息。如果此IP地址已無(wú)法再分配給原來(lái)的DHCP客戶(hù)機(jī)使用時(shí),則DHCP服務(wù)器給DHCP客戶(hù)機(jī)回答一個(gè)DHCP nack否認(rèn)信息。當(dāng)原來(lái)的DHCP客戶(hù)機(jī)收到此DHCP nack否認(rèn)信息后,它就必須重新發(fā)送DHCPdiscover發(fā)現(xiàn)信息來(lái)請(qǐng)求新的IP地址。
6、更新租約
DHCP 服務(wù)器向DHCP客戶(hù)機(jī)出租的IP地址一般都有一個(gè)租借期限,期滿(mǎn)后DHCP服務(wù)器便會(huì)收回出租的IP地址。如果DHCP客戶(hù)機(jī)要延長(zhǎng)其IP租約,則必須 更新其IP租約。DHCP客戶(hù)機(jī)啟動(dòng)時(shí)和IP租約期限過(guò)一半時(shí),DHCP客戶(hù)機(jī)都會(huì)自動(dòng)向DHCP服務(wù)器發(fā)送更新其IP租約的信息。
dhcp工作過(guò)程詳解
DHCP客戶(hù)端通過(guò)和DHCP服務(wù)器的交互通訊以獲得IP地址租約。為了從DHCP服務(wù)器獲得一個(gè)IP地址,在標(biāo)準(zhǔn)情況下DHCP客戶(hù)端和DHCP服務(wù)器之間會(huì)進(jìn)行四次通訊。DHCP協(xié)議通訊使用端口UDP 67(服務(wù)器端)和UDP 68(客戶(hù)端)進(jìn)行通訊,UDP68端口用于客戶(hù)端請(qǐng)求,UDP67用于服務(wù)器響應(yīng),并且大部分DHCP協(xié)議通訊使用廣播進(jìn)行。
DHCP客戶(hù)端和DHCP服務(wù)器的這四次通訊過(guò)程
1、DHCP DISCOVER
當(dāng)DHCP客戶(hù)端計(jì)算機(jī)處于以下三種情況之一時(shí),觸發(fā)DHCPDISCOVER廣播消息:
當(dāng)TCP/IP協(xié)議作為DHCP客戶(hù)端(自動(dòng)獲取IP地址)進(jìn)行初始化(DHCP客戶(hù)端啟動(dòng)計(jì)算機(jī)、啟用網(wǎng)絡(luò)適配器或者連接到網(wǎng)絡(luò)時(shí));
DHCP客戶(hù)端請(qǐng)求某個(gè)IP地址被DHCP服務(wù)器拒絕,通常發(fā)生在已獲得租約的DHCP客戶(hù)端連接到不同的網(wǎng)絡(luò)中;
DHCP客戶(hù)端釋放已有租約并請(qǐng)求新的租約。
此時(shí),DHCP客戶(hù)端發(fā)起DHCPDISCOVER廣播消息,向所有DHCP服務(wù)器獲取IP地址租約。此時(shí)由于DHCP客戶(hù)端沒(méi)有IP地址,因此在數(shù)據(jù)包中,使用0.0.0.0作為源IP地址,然后廣播地址255.255.255.255作為目的地址。在此請(qǐng)求數(shù)據(jù)包中同樣會(huì)包含客戶(hù)端的MAC地址和計(jì)算機(jī)名,以便DHCP服務(wù)器進(jìn)行區(qū)分。
如果沒(méi)有DHCP服務(wù)器答復(fù)DHCP客戶(hù)端的請(qǐng)求,DHCP客戶(hù)端在等待1秒后會(huì)再次發(fā)送DHCPDISCOVER廣播消息。除了第一個(gè)DHCPDISCOVER廣播消息外,DHCP客戶(hù)端還會(huì)發(fā)出三個(gè)DHCPDISCOVER廣播消息,等待時(shí)延分別為9秒、13秒和16秒加上一個(gè)長(zhǎng)度為0~1000毫秒之間的隨機(jī)時(shí)延。如果仍然無(wú)法聯(lián)系DHCP服務(wù)器,則認(rèn)為自動(dòng)獲取IP地址失敗,默認(rèn)情況下將隨機(jī)使用APIPA(自動(dòng)專(zhuān)有IP地址,169.254.0.0/16)中定義的未被其他客戶(hù)使用的IP地址,子網(wǎng)掩碼為255.255.0.0,但是不會(huì)配置默認(rèn)網(wǎng)關(guān)和其他TCP/IP選項(xiàng),因此只能和同子網(wǎng)的使用APIPA地址的客戶(hù)端計(jì)算機(jī)進(jìn)行通訊。你可以通過(guò)注冊(cè)表中的DWORD鍵值IPAutoconfigurationEnabled來(lái)禁止客戶(hù)端計(jì)算機(jī)使用APIPA地址進(jìn)行自動(dòng)配置,此鍵值位于
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
當(dāng)其值設(shè)置為0時(shí),則不使用APIPA地址進(jìn)行自動(dòng)配置。
在Windows XP和Windows Server 2003中,針對(duì)客戶(hù)端計(jì)算機(jī)的TCP/IP選項(xiàng)中有一個(gè)備用配置選項(xiàng),只有當(dāng)客戶(hù)端計(jì)算機(jī)配置為DHCP客戶(hù)端(自動(dòng)獲取IP地址)時(shí)才有此備用配置。你可以通過(guò)備用配置來(lái)為DHCP客戶(hù)端在無(wú)法聯(lián)系DHCP服務(wù)器時(shí)為DHCP客戶(hù)端指定靜態(tài)IP地址,如下圖所示:
如果沒(méi)有配置APIPA地址和備用IP地址,則DHCP客戶(hù)端會(huì)每隔5分鐘再發(fā)送DHCPDISCOVER廣播消息,直到從DHCP服務(wù)器獲取IP地址為止。
2、DHCP OFFER
所有接收到DHCP客戶(hù)端發(fā)送的DHCPDISCOVER廣播消息的DHCP服務(wù)器會(huì)檢查自己的配置,如果具有有效的DHCP作用域和富余的IP地址,則DHCP服務(wù)器發(fā)起DHCPOFFER廣播消息來(lái)應(yīng)答發(fā)起DHCPDISCOVER廣播的DHCP客戶(hù)端,此消息包含以下內(nèi)容:
客戶(hù)端MAC地址;
DHCP服務(wù)器提供的客戶(hù)端IP地址;
DHCP服務(wù)器的IP地址;
DHCP服務(wù)器提供的客戶(hù)端子網(wǎng)掩碼;
其他作用域選項(xiàng),例如DNS服務(wù)器、網(wǎng)關(guān)、WINS服務(wù)器等;
租約期限等。
因此DHCP客戶(hù)端沒(méi)有IP地址,所以DHCP服務(wù)器同樣使用廣播進(jìn)行通訊:源IP地址為DHCP服務(wù)器的IP地址,而目的IP地址為255.255.255.255。同時(shí),DHCP服務(wù)器為此客戶(hù)保留它提供的IP地址,從而不會(huì)為其他DHCP客戶(hù)分配此IP地址。如果有多個(gè)DHCP服務(wù)器給予此DHCP客戶(hù)端回復(fù)DHCPOFFER消息,則DHCP客戶(hù)端接受它接收到的第一個(gè)DHCPOFFER消息中的IP地址。
3、DHCP REQUEST
當(dāng)DHCP客戶(hù)端接受DHCP服務(wù)器的租約時(shí),它將發(fā)起DHCPREQUEST廣播消息,告訴所有DHCP服務(wù)器自己已經(jīng)做出選擇,接受了某個(gè)DHCP服務(wù)器的租約。
在此DHCPREQUEST廣播消息中包含了DHCP客戶(hù)端的MAC地址、接受的租約中的IP地址、提供此租約的DHCP服務(wù)器地址等,所有其他的DHCP服務(wù)器將收回它們?yōu)榇薉HCP客戶(hù)端所保留的IP地址租約,以給其他DHCP客戶(hù)端使用。
此時(shí)由于沒(méi)有得到DHCP服務(wù)器最后確認(rèn),DHCP客戶(hù)端仍然不能使用租約中提供的IP地址,所以在數(shù)據(jù)包中仍然使用0.0.0.0作為源IP地址,廣播地址255.255.255.255作為目的地址。
4、DHCP ACK
提供的租約被接受的DHCP服務(wù)器在接收到DHCP客戶(hù)端發(fā)起的DHCPREQUEST廣播消息后,會(huì)發(fā)送DHCPACK廣播消息進(jìn)行最后的確認(rèn),在這個(gè)消息中同樣包含了租約期限及其他TCP/IP選項(xiàng)信息。
如果DHCP客戶(hù)端的操作系統(tǒng)為Windows 2000及其后版本,當(dāng)DHCP客戶(hù)端接收到DHCPACK廣播消息后,會(huì)向網(wǎng)絡(luò)發(fā)出三個(gè)針對(duì)此IP地址的ARP解析請(qǐng)求以執(zhí)行沖突檢測(cè),確認(rèn)網(wǎng)絡(luò)上沒(méi)有其他主機(jī)使用DHCP服務(wù)器提供的IP地址,從而避免IP地址沖突。如果發(fā)現(xiàn)該IP已經(jīng)被其他主機(jī)所使用(有其他主機(jī)應(yīng)答此ARP解析請(qǐng)求),則DHCP客戶(hù)端則會(huì)廣播發(fā)送(因?yàn)樗匀粵](méi)有有效的IP地址)DHCPDECLINE消息給DHCP服務(wù)器拒絕此IP地址租約,然后重新發(fā)起DHCP DISCOVER進(jìn)程。此時(shí),在DHCP服務(wù)器管理控制臺(tái)中,會(huì)顯示此IP地址為BAD_ADDRESS。
如果沒(méi)有其他主機(jī)使用此IP地址,則DHCP客戶(hù)端的TCP/IP使用租約中提供的IP地址完成初始化,從而可以和其他網(wǎng)絡(luò)中的主機(jī)進(jìn)行通訊。至于其他TCP/IP選項(xiàng),如DNS服務(wù)器和WINS服務(wù)器等,本地手動(dòng)配置將覆蓋從DHCP服務(wù)器獲得的值。
租約續(xù)約
DHCP服務(wù)器將IP地址提供給DHCP客戶(hù)端時(shí),會(huì)包含租約的有效期,默認(rèn)租約期限為8天(691200秒)。除了租約期限外,還具有兩個(gè)時(shí)間值T1和T2,其中T1定義為租約期限的一半,默認(rèn)情況下是四天(345600秒),而T2定義為租約期限的的7/8,默認(rèn)情況下為7天(604800秒)。當(dāng)?shù)竭_(dá)T1定義的時(shí)間期限時(shí),DHCP客戶(hù)端會(huì)向提供租約的原始DHCP服務(wù)器發(fā)起DHCP REQUEST請(qǐng)求對(duì)租約進(jìn)行更新,如果DHCP服務(wù)器接受此請(qǐng)求則回復(fù)DHCP ACK消息,包含更新后的租約期限;如果DHCP服務(wù)器不接受DCHP客戶(hù)端的租約更新請(qǐng)求(例如此IP已經(jīng)從作用域中去除),則向DHCP客戶(hù)端位于回復(fù)DHCP NACK消息,此時(shí)DHCP客戶(hù)端立即發(fā)起DHCP DISCOVER進(jìn)程以尋求IP地址。如果DHCP客戶(hù)端沒(méi)有從DHCP服務(wù)器得到任何回復(fù),則繼續(xù)使用此IP地址直到到達(dá)T2定義的時(shí)間限制。此時(shí),DHCP客戶(hù)端再次向提供租約的原始DHCP服務(wù)器發(fā)起DHCP REQUEST請(qǐng)求對(duì)租約進(jìn)行更新,如果仍然沒(méi)有得到DHCP服務(wù)器的回復(fù)則發(fā)起DHCP DISCOVER進(jìn)程以尋求IP地址。
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%
相關(guān)閱讀:
- [電子說(shuō)] 在Ubuntu上開(kāi)啟RNDIS的DHCP服務(wù)器的一般的思路 2023-10-19
- [電子說(shuō)] 「工業(yè)樹(shù)莓派」dhcpcd 使用介紹 2023-09-14
- [電子說(shuō)] ENSP華為路由器出口NAT實(shí)驗(yàn)設(shè)計(jì) 2023-08-17
- [電子說(shuō)] 三層交換機(jī)到底要怎么配置 有哪些常用的配置命令 2023-08-09
- [電子說(shuō)] 網(wǎng)絡(luò)對(duì)講終端SV-7011T使用說(shuō)明 2023-06-25
- [電子說(shuō)] H3C設(shè)備配置DHCP服務(wù) 2023-06-20
- [電子說(shuō)] 手工配置IP地址麻煩還會(huì)出錯(cuò)?普及下DHCP的各種工作原理 2023-06-19
- [RF/無(wú)線] wlan沒(méi)有找到有效的ip地址 wlan沒(méi)有有效的ip配置怎么辦 2023-06-14
( 發(fā)表人:陳翠 )