【基礎】通過抓包分析微軟DHCP報文和其它系統DHCP報文的不同(對比後才知道微軟有多次)


1.    實驗網絡拓撲

 

使用ENSP模擬器(版本V100R002C00 1.2.00.350

wKiom1SPxK6yp6zgAABOj8xNwUc951.jpg

 

 

2.      實驗需求:

1)       使用華爲模擬器配置DHCPC1自動分配IP地址

2)     使用VMware station搭建WindowsServer2008 DHCP服務器,併爲Windows客戶機分配IP地址

3)       使用wireshark抓取DHCP數據包

3.    實驗步驟:

1)     華爲設備IP地址規劃配置如下:

     R2G0/0/0ip192.168.8.1/24

  C1IP爲自動獲得

2)    微軟設備IP地址規劃配置如下:

① 服務器的ip設爲192.168.8.8/2

② 分配給客戶端的ip地地池爲:                                                    

         192.168.8.10/24--192.168.8.20/24

                   

3)      配置腳本:

① 配置我們之前都學過,這裏不再寫,我們重點看DHCP抓包結果;使用命令ipconfig/release釋放原ip,再用ipconfig/renew重新獲得ip

 

4.    抓包結果:

a.       華爲設備DHCP抓包結果

1)        DHCP數據包:

wKioL1SPxVmSkKi5AAGqjQ0YQBA431.jpg

通過抓取的數據包結果,我們看出DHCP有四個數據包,分別爲:DHCPDiscoverDHCP OfferDHCP RequestDHCP ACK;其中DHCP DiscoverDHCP Request爲廣播,DHCP Offer

DHCP ACK爲單播,下面詳細分析。

2)       DHCP Discover數據報文:

wKiom1SPxNHTIwJXAAG7BBM79JM489.jpg

wKioL1SPxXDzxu1iAAJaDnv7Vg8203.jpg

wKiom1SPxNKjpDCMAAJgn_X9ZV4007.jpg 

 由上圖可得,Discove數據報文是C1向整個廣播域進行廣播,ip地址、網關、掩碼等三層信息都沒有。意爲:C1向廣播域內尋找DHCP服務提供者,並申請爲自己分配ip地址。

 

3)       DHCP Offer數據報文:

wKiom1SPxPLx_lEJAACnSQqotIc551.jpg

wKioL1SPxZSyHEiSAAGyllx-G5U664.jpg


 通過上面兩張圖片的分析,我們會發現華爲設備發出的DHCP-OFFER報文的二層是單播的,三層也是單播的,儘管服務器分配的地址客戶端還沒有使用(甚至客戶端都還沒有收到這個OFFER報文),但是服務器已經將這個IP填充到了三層包頭中。這樣做的好處是,即使二層設備,由於各種原因,廣播了數據幀,但是三層包頭中的目標地址也不會和在線的任何一個主機一樣,其它在線主機根本不會處理這個不屬於自己目標IP的報文的。對於大型網絡來說,這對網絡性能和主機性能都是一種優化。

wKiom1SPxSLTOQzxAAFYHVUNsYo814.jpg

 

 由上圖可得,Offer數據報文是R1C1進行單播。意爲:提供DHCP服務的R2收到C1的申請,並告訴C1可用的ip地址(192.168.8.254)、網關(192.168.8.1)、掩碼(/24)DNS服務器(8.8.8.8)等,如果域中有多臺DHCP服務器提供服務,則C1採取的是先到先得的準則

 

4)         DHCP Request數據報文

 

wKioL1SPxeCiFqMgAAD81tAZWp8008.jpg

wKiom1SPxUOD3xwiAAGEAz5L_eQ452.jpg

由上圖可得,C1收到R2的報文後並沒有立刻就使用報文中的信息,而是C1向廣播域進行廣播,意爲:C1DHCP 服務器彙報自己收到的IP地址信息,並申請使用自己所得到的ip等信息,這就是Request數據報文。

5)        DHCP ACK數據報文:


wKiom1SPxW6SFpyuAAEBXbcy58Y573.jpg

wKiom1SPxW_RuHNIAAE3T8gwjso879.jpg

由上圖可得,R2收到C1是使用申請後,就向進行C1單播,告訴C1 ip地址就是192.168.8.254、網關是92.168.8.1、掩碼是/24DNS服務器是8.8.8.8等,C1收到後就會將信息保留起來並使用,這就是ACK報文。需要注意的是,這個報文在華爲設備發出的時候二層和三層也都是單播的。

 

b.      微軟設備DHCP抓包結果

1)      DHCP報文

wKiom1SPxYORYNxDAAEebQAWaf0497.jpg

2)        DHCP Discover數據報文:

wKioL1SPxjrSd9tyAAFAihzABbg496.jpg

wKiom1SPxZyzM0c9AAETZ7oxrcY371.jpg

  通過上圖的分析,微軟系統發出的Discover報文和其它系統發出的沒有區別,二層三層都是廣播(這很容易理解,第一報文,客戶端根本不知道服務器的任何信息,只能廣播)

3)      DHCP Offer數據報文:

wKiom1SPxb3Bpt3eAAETZ7oxrcY062.jpg

wKioL1SPxl_CFloaAAFYqGit73g673.jpg

但是通過上圖我們會發現,微軟系統發出的OFFER報文,二層和三層都是廣播的,這個真是不可以理解,這會導致同一廣播域中的主機,浪費大量的資源來處理這些報文,一直要處理到應用層才知道這個報文原來和自己無關。非常的不夠優化。

4)        DHCP Request數據報文

wKiom1SPxdujPUVJAAEuP3pKIeU673.jpg

wKioL1SPxnzSYIoUAAEBD670kW8643.jpg

wKiom1SPxd6C47V9AAD6Gw8wLBo239.jpg

請求報文並沒有什麼特殊,所有系統都是一樣的二三層廣播。

5)        DHCP ACK數據報文

wKiom1SPxfOj9A4EAAEXEhCnjEo915.jpg

wKiom1SPxfXhyDd5AAEHuOtyo3I611.jpg

微軟系統的ACK報文依然是二三層全網廣播,很浪費同一廣播域中其它主機的資源,不夠優化。

wKioL1SPxqTCIp5sAAFchdz6pbk191.jpg

5.     結論:

通過分析可看出,微軟DHCP四個報文都是廣播,很不優化,對於同一廣播域中其它主機的資源是一種浪費(只要有主機向服務器請求地址,其它主機就要處理和自己無關的四個報文。)而華爲設備,思科設備,LINUX系統等DHCPOffer ACK兩個報文則是單播的,這就大大節省了網絡設備和同一廣播域中其它主機的資源。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章