IT運維 dhcp工作過程詳解
2020-04-29 16:16 作者:艾銻無限 瀏覽量:
對于學習DHCP來說,很重要的一部分就是對于DHCP工作過程的理解。那么首先DHCP分為兩個部分:一個是服務器端,另一個是客戶端。所有客戶機的IP地址設定資料都由DHCP服務器集中管理,并負責處理客戶端的DHCP要求;而客戶端則會使用從服務器分配下來的IP地址。
DHCP服務器提供三種IP分配方式:自動分配(Automa
TIc Alloca
TIon)、動態分配(Dynamic Alloca
TIon)和手動分配。自動分配是當DHCP客戶端第一次成功地從DHCP服務器端分配到一個IP地址之后,就永遠使用這個地址。動態分配是當DHCP客戶端第一次從DHCP服務器分配到IP地址后,并非永久地使用該地址,每次使用完后,DHCP客戶端就得釋放這個IP地址,以給其他客戶端使用,而手動分配是由DHCP服務器管理員專門指定IP地址。
DHCP客戶機在啟動時,會搜尋網絡中是否存在DHCP服務器。如果找到,則給DHCP服務器發送一個請求。DHCP服務器接到請求后,為DHCP客戶機選擇TCP/IP配置的參數,并把這些參數發送給客戶端。如果已配置沖突檢測設置,則DHCP 服務器在將租約中的地址提供給客戶機之前會試用Ping測試作用域中每個可用地址的連通性。這可確保提供給客戶的每個IP地址都沒有被使用手動TCP/IP配置的另一臺非DHCP 計算機使用。
DHCP工作過程的六個主要步驟
根據客戶端是否第一次登錄網絡,DHCP的工作形式會有所不同。客戶端從DHCP服務器上獲得IP地址的整個過程分為以下六個步驟:
1、尋找DHCP服務器
當 DHCP客戶端第一次登錄網絡的時候,計算機發現本機上沒有任何IP地址設定,將以廣播方式發送DHCP discover發現信息來尋找DHCP服務器,即向255.255.255.255發送特定的廣播信息。網絡上每一臺安裝了TCP/IP協議的主機都會 介紹這個廣播信息,但只有DHCP服務器才會做出響應。
2、分配IP地址
在網絡中接收到DHCP discover發現信息的DHCP服務器都會做出相應,它從尚未分配的IP地址中挑選一個分配給DHCP客戶機,向DHCP客戶機發送一個包含分配的IP地址和其他設置的DHCP offer提供信息。
3、接受 IP地址
DHCP客戶端接受到DHCP offer提供信息之后,選擇第一個接收到的提供信息,然后以廣播的方式回答一個DHCP request請求信息,該信息包含向它所選定的DHCP服務器請求IP地址的內容。
4、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客戶機使用時,則DHCP服務器給DHCP客戶機回答一個DHCP nack否認信息。當原來的DHCP客戶機收到此DHCP nack否認信息后,它就必須重新發送DHCPdiscover發現信息來請求新的IP地址。
6、更新租約
DHCP 服務器向DHCP客戶機出租的IP地址一般都有一個租借期限,期滿后DHCP服務器便會收回出租的IP地址。如果DHCP客戶機要延長其IP租約,則必須 更新其IP租約。DHCP客戶機啟動時和IP租約期限過一半時,DHCP客戶機都會自動向DHCP服務器發送更新其IP租約的信息。
dhcp工作過程詳解
DHCP客戶端通過和DHCP服務器的交互通訊以獲得IP地址租約。為了從DHCP服務器獲得一個IP地址,在標準情況下DHCP客戶端和DHCP服務器之間會進行四次通訊。DHCP協議通訊使用端口UDP 67(服務器端)和UDP 68(客戶端)進行通訊,UDP68端口用于客戶端請求,UDP67用于服務器響應,并且大部分DHCP協議通訊使用廣播進行。
DHCP客戶端和DHCP服務器的這四次通訊過程
1、DHCP DISCOVER
當DHCP客戶端計算機處于以下三種情況之一時,觸發DHCPDISCOVER廣播消息:
當TCP/IP協議作為DHCP客戶端(自動獲取IP地址)進行初始化(DHCP客戶端啟動計算機、啟用網絡適配器或者連接到網絡時);
DHCP客戶端請求某個IP地址被DHCP服務器拒絕,通常發生在已獲得租約的DHCP客戶端連接到不同的網絡中;
DHCP客戶端釋放已有租約并請求新的租約。
此時,DHCP客戶端發起DHCPDISCOVER廣播消息,向所有DHCP服務器獲取IP地址租約。此時由于DHCP客戶端沒有IP地址,因此在數據包中,使用0.0.0.0作為源IP地址,然后廣播地址255.255.255.255作為目的地址。在此請求數據包中同樣會包含客戶端的MAC地址和計算機名,以便DHCP服務器進行區分。
如果沒有DHCP服務器答復DHCP客戶端的請求,DHCP客戶端在等待1秒后會再次發送DHCPDISCOVER廣播消息。除了第一個DHCPDISCOVER廣播消息外,DHCP客戶端還會發出三個DHCPDISCOVER廣播消息,等待時延分別為9秒、13秒和16秒加上一個長度為0~1000毫秒之間的隨機時
延。如果仍然無法聯系DHCP服務器,則認為自動獲取IP地址失敗,默認情況下將隨機使用APIPA(自動專有IP地址,169.254.0.0/16)中定義的未被其他客戶使用的IP地址,子網掩碼為255.255.0.0,但是不會配置默認網關和其他TCP/IP選項,因此只能和同子網的使用APIPA地址的客戶端計算機進行通訊。你可以通過注冊表中的DWORD鍵值IPAutoconfigura
TIonEnabled來禁止客戶端計算機使用APIPA地址進行自動配置,此鍵值位于
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
當其值設置為0時,則不使用APIPA地址進行自動配置。
在Windows XP和Windows Server 2003中,針對客戶端計算機的TCP/IP選項中有一個備用配置選項,只有當客戶端計算機配置為DHCP客戶端(自動獲取IP地址)時才有此備用配置。你可以通過備用配置來為DHCP客戶端在無法聯系DHCP服務器時為DHCP客戶端指定靜態IP地址,如下圖所
示:
如果沒有配置APIPA地址和備用IP地址,則DHCP客戶端會每隔5分鐘再發送DHCPDISCOVER廣播消息,直到從DHCP服務器獲取IP地址為止。
2、DHCP OFFER
所有接收到DHCP客戶端發送的DHCPDISCOVER廣播消息的DHCP服務器會檢查自己的配置,如果具有有效的DHCP作用域和富余的IP地址,則DHCP服務器發起DHCPOFFER廣播消息來應答發起DHCPDISCOVER廣播的DHCP客戶端,此消息包含以下內容:
客戶端MAC地址;
DHCP服務器提供的客戶端IP地址;
DHCP服務器的IP地址;
DHCP服務器提供的客戶端子網掩碼;
其他作用域選項,例如DNS服務器、網關、WINS服務器等;
租約期限等。
因此DHCP客戶端沒有IP地址,所以DHCP服務器同樣使用廣播進行通訊:源IP地址為DHCP服務器的IP地址,而目的IP地址為255.255.255.255。同時,DHCP服務器為此客戶保留它提供的IP地址,從而不會為其他DHCP客戶分配此IP地址。如果有多個DHCP服務器給予此DHCP客戶端回復
DHCPOFFER消息,則DHCP客戶端接受它接收到的第一個DHCPOFFER消息中的IP地址。
3、DHCP REQUEST
當DHCP客戶端接受DHCP服務器的租約時,它將發起DHCPREQUEST廣播消息,告訴所有DHCP服務器自己已經做出選擇,接受了某個DHCP服務器的租約。
在此DHCPREQUEST廣播消息中包含了DHCP客戶端的MAC地址、接受的租約中的IP地址、提供此租約的DHCP服務器地址等,所有其他的DHCP服務器將收回它們為此DHCP客戶端所保留的IP地址租約,以給其他DHCP客戶端使用。
此時由于沒有得到DHCP服務器最后確認,DHCP客戶端仍然不能使用租約中提供的IP地址,所以在數據包中仍然使用0.0.0.0作為源IP地址,廣播地址255.255.255.255作為目的地址。
4、DHCP ACK
提供的租約被接受的DHCP服務器在接收到DHCP客戶端發起的DHCPREQUEST廣播消息后,會發送DHCPACK廣播消息進行最后的確認,在這個消息中同樣包含了租約期限及其他TCP/IP選項信息。
如果DHCP客戶端的操作系統為Windows 2000及其后版本,當DHCP客戶端接收到DHCPACK廣播消息后,會向網絡發出三個針對此IP地址的ARP解析請求以執行沖突檢測,確認網絡上沒有其他主機使用DHCP服務器提供的IP地址,從而避免IP地址沖突。如果發現該IP已經被其他主機所使用(有其他主機應答此ARP解析請求),則DHCP客戶端則會廣播發送(因為它仍然沒有有效的IP地址)DHCPDECLINE消息給DHCP服務器拒絕此IP地址租約,然后重新發起DHCP DISCOVER進程。此時,在DHCP服務器管理控制臺中,會顯示此IP地址為BAD_ADDRESS。
如果沒有其他主機使用此IP地址,則DHCP客戶端的TCP/IP使用租約中提供的IP地址完成初始化,從而可以和其他網絡中的主機進行通訊。至于其他TCP/IP選項,如DNS服務器和WINS服務器等,本地手動配置將覆蓋從DHCP服務器獲得的值。
租約續約
DHCP服務器將IP地址提供給DHCP客戶端時,會包含租約的有效期,默認租約期限為8天(691200秒)。除了租約期限外,還具有兩個時間值T1和T2,其中T1定義為租約期限的一半,默認情況下是四天(345600秒),而T2定義為租約期限的的7/8,默認情況下為7天(604800秒)。當到達T1定義的時間期限時,DHCP客戶端會向提供租約的原始DHCP服務器發起DHCP REQUEST請求對租約進行更新,如果DHCP服務器接受此請求則回復DHCP ACK消息,包含更新后的租約期限;如果DHCP服務器不接受DCHP客戶端的租約更新請求(例如此IP已經從作用域中去除),則向DHCP客戶端位于回復DHCP NACK消息,此時DHCP客戶端立即發起DHCP DISCOVER進程以尋求IP地址。如果DHCP客戶端沒有從DHCP服務器得到任何回復,則繼續使用此IP地址直到到達T2定義的時間限制。此時,DHCP客戶端再次向提供租約的原始DHCP服務器發起DHCP REQUEST請求對租約進行更新,如果仍然沒有得到DHCP服務器的回復則發起DHCP DISCOVER進程以尋求IP地址。
艾銻無限科技專業:IT外包、企業外包、北京IT外包、桌面運維、弱電工程、網站開發、wifi覆蓋方案,網絡外包,網絡管理服務,網管外包,綜合布線,服務器運維服務,中小企業it外包服務,服務器維保公司,硬件運維,網站運維服務
以上文章由北京艾銻無限科技發展有限公司整理