DHCP詳解完全

2021-03-04 01:13:06 字數 3888 閱讀 5872

dhcp

動態主機配置協議(dynamic host configuration protocol,dhcp)提供了即插即用聯網的機制,這種機制允許一台計算機加入新的網路和獲取ip位址而不用手工參與。它常用於給主機動態地分配ip位址。dhcp是應用層協議,它是基於udp的。

dhcp協議工作原理:它使用客戶/伺服器方式,需要ip位址的主機在啟動時就向dhcp伺服器廣播傳送發現報文,這時該主機就成為dhcp客戶。本地網路上所有主機都能收到此廣播報文,但只有dhcp伺服器才回答此廣播報文。

dhcp伺服器先在其資料庫中查詢該計算機的配置資訊。若找到,則返回找到的資訊。若找不到,則從伺服器的ip位址池中取乙個位址分配給該計算機。

dhcp伺服器的回答報文叫做提供報文。

dhcp伺服器分配給dhcp客戶的ip位址是臨時的,因此dhcp客戶只能在一段有限的時間內使用這個分配到的ip位址。dhcp稱這段時間為租用期。租用期的數值應由dhcp伺服器自己決定,dhcp客戶也可在自己傳送的報文中提出對租用期的要求。

dhcp 共有八種報文,分別為 dhcp discover、 dhcp offer、 dhcp request、 dhcp ack、dhcp nak、 dhcp release、 dhcp decline、 dhcp inform。各報文型別功能如表所述。dhcp 報文型別描述

dhcpdiscover

dhcp 客戶端請求位址時,並不知道 dhcp 伺服器的位置,因此 dhcp 客戶端會在本地網路內以廣播方式傳送請求報文,這個報文成為 discover 報文,目的是發現網路中的 dhcp 伺服器,所有收到 discover 報文的 dhcp 伺服器都會傳送回應報文, dhcp客戶端據此可以知道網路中存在的 dhcp 伺服器的位置。dhcpoffer

dhcp伺服器收到 discover 報文後,就會在所配置的位址池中查詢乙個合適的ip 位址,加上相應的租約期限和其他配置資訊(如閘道器、 dns 伺服器等),構造乙個 offer報文,傳送給使用者,告知使用者本伺服器可以為其提供 ip 位址。《只是告訴 client可以提供,是預分配,還需要 client 通過 arp 檢測該 ip 是否重複》

dhcprequest

dhcp 客戶端可能會收到很多 offer,所以必須在這些回應中選擇乙個。 client 通常選擇第乙個回應 offer 報文的伺服器作為自己的目標伺服器,並回應乙個廣播ack 報文,在租期過去 3/4 時,傳送廣播 request 報文續延租期。

dhcp ack

dhcp 伺服器收到 request 報文後,根據 request 報文中攜帶的使用者 mac 來查詢有沒有相應的租約記錄,如果有則傳送 ack 報文作為回應,通知使用者可以使用分配的 ip位址。

dhcp nak

如果 dhcp 伺服器收到 request 報文後,沒有發現有相應的租約記錄或者由於某些原因無法正常分配 ip 位址,則傳送 nak 報文作為回應,通知使用者無法分配合適的 ip位址。

dhcprelease

當使用者不再需要使用分配 ip 位址時,就會主動向 dhcp 伺服器傳送 release 報文,告知伺服器使用者不再需要分配 ip 位址, dhcp 伺服器會釋放被繫結的租約。

dhcpdecline

dhcp 客戶端收到 dhcp 伺服器回應的 ack 報文後,通過位址衝突檢測發現伺服器分配的位址衝突或者由於其他原因導致不能使用,則傳送 decline 報文,通知伺服器所分配的 ip 位址不可用。

dhcpinform

dhcp客戶端如果需要從 dhcp 伺服器端獲取更為詳細的配置資訊,則傳送 inform 報

dhcp是基於客戶—伺服器模型設計的,dhcp客戶和dhcp伺服器之間通過收發dhcp訊息進行通訊,如圖所示。

不論是dhcp客戶還是dhcp伺服器,都是通過按dhcp訊息格式要求來填寫各個段的,形成具體的dhcp訊息,dhcp使用的傳輸協議是非面向連線的udp(使用者資料報協議),從dhcp客戶發出的dhcp訊息送往dhcp伺服器的埠67,dhcp伺服器發給客戶的dhcp訊息送往dhcp客戶的埠68,由於在取得伺服器賦予的ip之前,dhcp客戶並沒有自己的ip,所以包含dhcp訊息的udp資料報的ip頭的源位址段是0.0.0.

0,目的位址則是255.255.255.

255。

當 dhcp 客戶端第一次登入網路的時候,也就是客戶發現本機上沒有任何 ip 資料設定,它會向網路發出乙個 dhcp discover 封包。因為客戶端還不知道自己屬於哪乙個網路,所以封包的**位址會為 0.0.

0.0,而目的位址則為 255.255.

255.255,然後再附上dhcpdiscover的資訊,向網路進行廣播。在 windows 的預設情形下, dhcp discover 的等待時間預設為1 秒,也就是當客戶端將第乙個 dhcp discover 封包送出去之後,在 1 秒之內沒有得到響應的話,就會進行第二次 dhcp discover 廣播。

若一直得不到響應的情況下,客戶端一共會有四次 dhcp discover 廣播(包括第一次在內 ) ,除了第一次會等待 1 秒之外,其餘三次的等待時間分別是 9、 13、 16 秒。如果都沒有得到 dhcp 伺服器的響應,客戶端則會顯示錯誤資訊,宣告 dhcp discover 的失敗。之後,基於使用者的選擇,系統會繼續在 5 分鐘之後再重複一次 dhcp discover 的過程。

在dhcp環境下,由於dhcp伺服器不工作、dhcp伺服器故障、dhcp客戶機和伺服器通訊故障等原因,導致若dhcp客戶端無法從伺服器端租用乙個ip位址時,dhcp客戶機會給自己分配乙個apipa(自動專有ip定址)位址,該位址是乙個b類位址,範圍是169.254.0.

1~169.254.255.

254。

借助中繼**,dhcp客戶機可以從外網段獲取ip位址;dhcp不會同時租借相同的ip位址給兩台主機;預設情況下dhcp分配的ip位址租約期為8天;dhcp客戶機可以收到多個dhcpoffer,通常從中選擇最先到達的作為本機的ip位址。

dhcp租約週期是ip位址的有效期。租約週期可長可短,取決於使用者的上網環境和工作性質。一般把移動使用者劃分到租約期較短的管理類,把固定使用者劃分到租約期較長的管理類,遠端訪問使用者劃分到預設路由類。

對於伺服器主機則要為其保留固定的ip位址,並且要把保留的ip位址與伺服器主機的mac位址進行繫結。

在dhcp客戶端上,在dos提示符下輸入「ipconfig/all」命令,即可檢視客戶端tcp/ip的詳細配置資訊。此時可以在客戶端執行「ipconfig/release」命令,手工釋放ip位址。執行「ipconfig/renew」命令可以重新向dhcp伺服器申請1p位址,此時,客戶機向dhcp伺服器傳送乙個dhcpdiscover資料報來請求租用ip位址。

ip位址169. 254.220.

167實際上是自動私有ip位址。當dhcp客戶端無法與dhcp伺服器通訊時,在windows 2000以前的系統中,如果計算機無法獲取ip位址,則自動配置成「ip位址:0.

0.0.0 」、「子網掩碼:

0.0.0.

0」的形式,導致其不能與其他計算機進行通訊。而對於windows 2000以後的作業系統,則在無法獲取ip位址時自動配置成「ip位址:169.

254.x.x」、「子網掩碼:

255.255.0.

0」的形式,這樣可以使所有獲取不到ip位址的計算機之間能夠通訊。

dhcp的客戶端可在每次啟動並加入網路時動態地獲得ip位址和相關配置引數。dhcp伺服器以位址租約的形式將該配置提供給發出請求的客戶端。

dhcp的租約期限為dhcp伺服器所分配的ip位址的有效期,租約定義了指派的ip位址可以使用的時間長度。預設情況下dhcp的租約期限為8天,當租約期過了一半時(按預設時間算是4天),客戶端將和設定它的tcp/ip配置的dhcp伺服器更新租約。當租期過了87.

5%時,如果客戶端仍然無法與當初的dhcp伺服器聯絡上,它將與其他dhcp伺服器通訊,如果網路上再沒有任何dhcp伺服器在執行時,該客戶端必須停止使用該ip位址,並從傳送乙個dhcpdiscover資料報開始,再一次重複整個過程。

linux下dhcp服務的配置檔案是/etc/

DHCP協議解碼詳解

協議分析 dhcp協議解碼詳解 dhcp,全稱是dynamichostconfigurationprotocol 中文名為動態主機配置協議,它的前身是bootp,它工作在osi的應用層,是一種幫助計算機從指定的dhcp伺服器獲取它們的配置資訊的自舉協議。dhcp使用客戶端 伺服器模式,請求配置資訊的...

家用DHCP設定

家庭無線網中沒有必要開啟dhcp功能。dhcp伺服器的作用是向申請接入本路由器的裝置自動分配ip位址,開啟此服務可以減少裝置設定網路的時間,比較適合於接入裝置不固定,裝置流動頻繁的無線網路。如果是家庭無線網,這個功能則可有可無,原因如下 1 接入家庭無線網的裝置通常都是固定的幾個,這幾個裝置完全可以...

專題完全平方公式課後練習二及詳解

主講教師 傲德 題一 下列運算中,正確的是 a x 3y 2 x2 6xy 9y2b 2x 3y 2 4x2 9y2 c a 2b 2 2b a 2d 題二 1 已知xy 4,x2 y2 10,求代數式2x2 2y2的值 2 已知 x y 2 20,x y 2 12,分別求及x2 4xy y2的值 ...