1. 程式人生 > >第9章 應用層(2)_動態主機配置協議(DHCP)

第9章 應用層(2)_動態主機配置協議(DHCP)

2. 動態主機配置協議(DHCP)

2.1 靜態地址和動態地址的應用場景

(1)靜態地址應用場景

  ①IP地址不經常更改的裝置(如伺服器地址)

  ②使用有規律的IP地址以便於管理(如學校機房為方便教師管理學生)

(2)動態地址應用場景

  ①網路中的計算機不固定(如學生在不同教室上課,如果讓學生自己指定IP很可能發生地址衝突)

  ②無線裝置最好使用動態IP(這樣,移動到哪裡都無需進行網路設定,只要輸入無線連線密碼即可)

  ③ADSL撥號上網通常也使用自動獲得IP。ISP運營商為撥號上網的使用者自動分配上網使用的公網IP地址、閘道器和DNS設定。客戶不知道ISP使用哪些網段的地址,也不知道哪些地址沒有被其他使用者使用。

2.2 DHCP地址租約

(1)地址租約:DHCP伺服器為網路中的計算機分配IP並記錄下來,以保證這些地址不再分配給其他計算機使用。如果租約到期客戶端仍不續約,則伺服器會單方面廢除將分配的地址回收。

(2)租約生成過程(DHCP協議的4種資料包

  ①DHCPDISCOVER資料包:DHCP客戶端會先發送DHCPDISCOVER的廣播資訊到網路,以便尋找一臺能夠提供IP地址的DHCP伺服器。

  ②DHCPOFFER資料包:當DHCP伺服器收到資訊後,就會從IP地址池選擇一個可用的IP地址,然後利用廣播方式傳送給DHCP客戶端。之所以用廣播方式,是因為此時客戶端還沒有IP地址。如果網路中有多臺DHCP伺服器收到客戶端的DHCPDISCOVER資訊,並且也都響應給DHCP客戶端(表示它們都可以提供IP地址給此客戶端),則DHCP客戶端會從中挑選第一個收到的DHCPOFFER

資訊。

  ③DHCPREQUEST資料包:當DHCP客戶端挑選好第一個收到的DHCPOFFER資訊後,就利用廣播方式,響應一個DHCPREQUEST資訊給伺服器。之後以利用廣播方式,是因為它不但要通知所和挑所的DHCP伺服器,還必須通知沒有被選上的其他DHCP伺服器,以便這些DHCP伺服器能夠將原本欲分配的IP地址收回。

  ④DHCPACK資料包:DHCP伺服器收到DHCPREQUEST資訊後,就會利用廣播的方式傳送DHCPACK資訊給DHCP客戶端。之所以利用廣播方式,是因為此時DHCP客戶端還沒有IP地址。客戶端收到DHCPACK後完成了獲取IP地址的步驟。

2.3 DHCP

地址租約的更新

(1)更新過程

  ①當租約時間過去一半時,客戶端向DHCP伺服器發出一個續約請求(最多可重發三次,分別在4、8和16s時)。如果找到DHCP伺服器,它會向客戶端傳送一個DHCPOFFER資訊以更新當前租約。如果找不到原DHCP伺服器,則進入第2步。

  ②當租約時間過去87.5%時,客戶端會進入重繫結狀態,它向任何可用的DHCP伺服器廣播(最多重複三次,分別在4、8和16s時)一個DHCPDISCOVER訊息來續約該IP(注意不是申請新的IP。如果IP無效或存在衝突則會被伺服器拒絕,強迫客戶端釋放其IP並獲得一個新的IP)。如果仍得不到響應,則進入第3步。

  ③當租約終止而且沒連線伺服器,客戶端立即停止使用其租約IP,並執行與它初始啟動期間相同的過程來獲得新的IP地址。如果仍然無法得到一個新的IP,則會自己產生一個臨時地址(169.254.0.0/16網段)

(2)租約更新的方法

  ①自動更新:按以上過程自動產生

  ②手動更新:ipconfig /renew

2.4 實戰:安裝和配置DHCP服務

(1)網路拓撲圖

(2)搭建測試環境

  ①DHCP服務由Win2003伺服器提供,該伺服器必須設定成靜態IP(地址如上圖)。XP虛擬機器的IP地址和DNS均設定為“自動獲取”。

  ②WinXP和Win2003主機都放在同一個網路(VMNet8)

  ③開始實驗之前,要先關閉物理機上的DHCP服務:開啟服務管理工具(執行services.msc)→將VMwareDHCP服務設定為禁用狀態,停止該服務。

(3)DHCP服務設定

  ①新建作用域:“新建作用域”(一個作用域對應一個網段)→在“IP地址範圍”中輸入起始和結束IP,指定子網掩碼→…→在“租約期限”中設定為2小時…→在“配置DHCP選項”中選擇“否”

  ②配置選項:右擊“作用域選項”→“配置選項”→勾選“003 路由器”,並輸入192.168.80.2(閘道器地址)→然後勾選“006 DNS伺服器”,輸入8.8.8.8。

(4)檢視、重新整理和釋放租約(在XP虛擬機器上測試)

  ①檢視租約:在xp上執行ipconfig /all可檢視其IP和DNS設定情況。同時在DNS伺服器上右擊“地址租約”→“重新整理”即能看到為xp分配IP地址的資訊。

  ②更新租約ipconfir /renew

  ③釋放租約ipconfig /release

(5)抓包分析

  ①DHCP服務會產生4個數據包:DHCPDISCOVER、DHCPOFFER、DHCPREQUEST和DHCPACK。這四個資料包均以廣播方式傳送給對方。

  ②XP的源地址都是0.0.0.0。資料包的目標MAC地址是廣播地址(ff-ff-ff-ff-ff-ff),目標地址是廣播地址(255.255.255.255)

2.5 實戰:跨網段分配IP地址

(1)網路拓撲

(2)搭建測試環境

  ①DHCP伺服器部置於單獨的網段(192.168.10.0/24)。並在DHCP伺服器中新建兩個作用域(用來為兩個網段的客戶機提供DHCP服務,注意一定要為每個網段配置閘道器)

  ②在R1路由器上啟用DHCP中繼代理

//為VMnet8和VMnet6啟用DHCP中繼代理
R1(config)#interface fastEthernet 0/0          //注意,中繼的介面是這個!
R1(config-if)#ip helper-address 192.168.10.20  //告訴該介面收到DHCPDISCOVER廣播,就產生
                                               //一個DHCP請求包,目標地址192.168.10.20,
                                               //源地址是該介面地址(如192.168.80.1)
                                               //DHCP伺服器收到這個請求包,就知道是來自
                                               //哪個網段的請求,於是從相應的作用域選擇
                                               //一個地址提供出來
R1(config-if)#exit
R1(config)#interface fastEthernet 0/1
R1(config-if)#ip helper-address 192.168.10.20  //轉發DHCP請求的廣播包
R1(config-if)#exit
R1(config)#exit

  ③客戶端設定為自動獲取IP:PC1> ip dhcp  //動態獲取DHCP