圖解DHCP工程抓包的過程

2020-12-16 51CTO

對於DHCP的學習,我們已經開展了一段時間了。那麼這裡我們就來講解一下DHCP工程抓包的一些內容。這裡我們主要DHCP (Dynamic Host Configuration Protocol)是一種動態的向Internet終端提供配置參數的協議。在終端提出申請之後,DHCP可以向終端提供IP位址、網關、DNS伺服器地址等。

它的工作過程是這樣的:

1,首先要DHCP discover。客戶機(drcom)在本網段內廣播DHCPdiscover報文以發現網絡中的DHCP伺服器(T64G),DHCP Relay可將此報文廣播到其他的網段。

如果client不是第一次登陸網絡,他會把他上次使用過的ip封裝在option50(windows xp中),如果該地址未被分配,那麼DHCP server必須優先為client分配該地址。

2,當 DHCP server監聽到客戶端發出的 DHCP discover 廣播後,它會從那些還沒有租出的地址範圍內,選擇最前面的空置 IP ,連同其它 TCP/IP 設定,響應給client一個 DHCP offer 的報文。

此時DHCP server還會ping一下這個預分配的地址以確保這個地址沒有被使用。否則會更換另外的地址給client。在這個DHCP offer中還會包含其它的TCP/IP的設定,不過對於這些設定是否使用由 client決定。(192.168.131.254為DHCP網關地址)

3,如果收到多個DHCPoffer報文,DHCPclient會根據報文的內容從其中選擇一個給與響應。此時client還會發送一個免費arp報文再一次檢查網絡中是否有衝突的地址,

如果有衝突就發送一個DHCP decline報文拒絕DHCP server,並且重新開始DHCP進程。否則就發送一個DHCP request報文給DHCP server來確認接受該ip地址。

4,當 DHCP server接收到client的 DHCP request 之後,會向客戶端發出一個 DHCPack 響應,以確認 IP 租約的正式生效。

這時client會進行最後一次免費arp檢查,如果沒有衝突,也就結束了一個完整的 DHCP 工作過程。

在了解DHCP工程抓包之前,我們再來分析一下以下內容。如果DHCP server不能滿足DHCP request報文的要求就必須發送一個DHCP nak報文使client重新DHCP進程。一旦client從DHCP server處取得lease,在lease到期50%前都可以使用,當lease到了87.5%時client使用DHCP request報文來續約,DHCP server則用DHCP ack報文來確認。如果沒有收到DHCP server的ack報文,client在lease到期85%時必須再次使用DHCP request報文來續約,DHCP server則用DHCP ack來確認,否則client必須放棄該ip地址。而client想要退約時直接使用DHCP release報文通知DHCP server,DHCP server回收該地址以備下次使用。因此如果租約時間設置太短,client將會頻繁想DHCP server續約,當DHCP server來不及響應client的續約請求後就會因為地址老化而需要重新進行DHCP 地址請求過程,從而出現網絡中斷,關於租約時間太短而出現的網絡中斷問題請參考我的報告。

通過上面的分析我們發現DHCP過程中的報文幾乎全是廣播包,只能在同一個網段中傳播,但是如果網絡中劃分了數個vlan呢?有兩種解決方法:

1,  在每個vlan中安裝一臺DHCP server,這種方法適合在特別大型的網絡中使用。

2,  只安裝一臺DHCP server,通過使用DHCP relay來中繼DHCP報文。

DHCP relay原理:

DHCP Relay 為在DHCP Server 和DHCP Client 間傳輸DHCP 報文的設備。區域網內的Client 可以通過DHCP Relay 與其他子網的DHCP Server 通信,最終取得合法的IP 地址。這樣,多個網絡上的DHCP Client 可以使用同一個DHCP Server,既節省了成本,又便於進行集中管理。以下是DHCP relay的工作過程。

Client 和Relay 間的所有報文,從初始狀態獲取IP 地址時,discover和request都是廣播的,offer 和ack 根據請求報文中的廣播標誌位來決定廣播還是單播,如果請求標註位為廣播,則offer 和ack 就是廣播的,否則就是單播的。所以不能說一定就是廣播的。到達50%lease 續租時,request 和ack 都是單播的。使用DHCP Relay 進行地址申請時的步驟與直接進行地址申請的步驟類似,只是Relay 路由器收到Client 的請求報文後,將收到該報文的接口的地址填入該報文,然後進行單播轉發。Server 根據該接口的地址來確定分配給Client 地址的網段,即分配的IP 地址與Relay 路由器收到請求報文的接口的地址屬同一網段。當收到來自Server 單播的DHCPoffer、DHCPack 或DHCPnak 報文時,DHCPRelay 路由器將會對Client 進行單播傳送報文。當DHCP Client 啟動並進行DHCP 初始化時,它在本地網絡廣播配置請求報文。如果本地網絡存在DHCP Server,則可以直接進行DHCP 配置,不需要DHCP Relay。如果本地網絡沒有DHCP Server,但有DHCP Relay 設備,此設備收到該廣播報文後,進行適當處理,即將收到報文的接口的地址填入該報文,並單播轉發給指定的、其它物理子網的DHCP Server。DHCP Server 根據Client 提供的信息進行相應的配置,並通過DHCPRelay 將配置信息發送給Client,完成對Client 的動態配置。

為了更好的學習DHCP relay我構建了如下試驗拓撲:

如上所示,ROUTER上架設了DHCP server,地址是192.168.2.1它有兩個地址池分別是

  1. ip dhcp server pool fox1  
  2. network 192.168.1.0 255.255.255.0  
  3. default-router 192.168.1.1  
  4. ip dhcp server pool fox2  
  5. network 192.168.3.0 255.255.255.0  
  6. default-router 192.168.3.1 

在SW上有兩個用戶vlan,分別是vlan10 和vlan30,SW(三層交換機)上,地址分別是192.168.1.5和 192.168.3.5 。用SW作DHCP relay

DHCP工程抓包如下:

1,尋找DHCP server,vlan30 client端報文如下:

server端報文如下:

2,DHCP server發送offer給客戶端

vlan30 client截包如下:

DHCP server截包如下:

3,client端決定接受該ip地址,響應了DHCP server

client端截包如下:

DHCP server端截包如下:

4,DHCP server確認了client端的響應,正式完成了整個DHCP過程。

client端截包如下:

DHCP server端截包如下:

整個DHCP工程抓包過程完成了,如上lease是24hours。

當vlan30的用戶漫遊至vlan10時會被分配到vlan10相對應的地址。截包如下:

【責任編輯:

佟媛微

TEL:(010)68476606】

相關焦點

  • 圖文共享:H3C交換機設置DHCP中繼的過程
    可以使用這個命令來檢查系統是否已經安裝DHCP服務:rpm –q dhcp如果返回提示「package dhcp is not installed」,說明沒有安裝DHCP服務。把CentOS安裝DVD光碟放入光碟機,執行以下命令:cd /media/CentOS_5.2_Final/CentOSrpm –ivh dhcp-3.0.5-13.el5.i386.rpm系統會安裝進度,安裝成功後再次執行「rpm –q dhcp」命令,系統會返回消息「dhcp-3.0.5-13.el5」,說明DHCP服務已正確安裝。
  • 「新基建」下的網絡實驗:小型園區組網(DHCP snooping、ISG)
    1、分別給設備,設置設備名:(華為設備默認都是Huawei,修改設備名的好處就是,在調試過程中,才不會容易登錄錯設備,配錯相關信息。)c、在各自vlan接口下,調用dhcp地址池:[ACC1]dhcp enable#dhcp snooping enable#vlan 10 description Department-A dhcp snooping enable##interface Eth-Trunk1
  • 關於dhcp relay工作原理的解析
    dhcp協議以客戶端/伺服器(client/server)方式工作,dhcp client向dhcp server動態地請求配置信息,dhcp server根據策略返回相應的配置信息。早期的dhcp協議只適用於dhcp客戶端和伺服器處於同一個子網內的情況,不可以跨網段工作。因此,為實現動態主機配置,需要為每一個子網設置一個dhcp 伺服器,這顯然是不經濟的。
  • 華為技術:配置 DHCP Snooping 防止 DHCP Server 仿冒者攻擊示例
    一、主要知識點:DHCP Snooping 簡介 在一次DHCP客戶端動態獲取IP位址的過程中,DHCP Snooping會對客戶端和伺服器之間的DHCP報文進行分析和過濾。通過合理的配置實現對非法伺服器的過濾,防止用戶端獲取到非法DHCP伺服器提供的地址而無法上網。
  • 靜態IP dhcp snooping的設置
    靜態IP dhcp snooping的設置 這裡我們介紹了靜態IP dhcp snooping的配置內容。結合IP Source Guard進行設置,那麼具體操作請從下文來了解一下吧。
  • H3C交換機設置DHCP中繼:多VLAN提供DHCP
    可以使用這個命令來檢查系統是否已經安裝DHCP服務:rpm–qdhcp,如果返回提示「packagedhcpisnotinstalled」,說明沒有安裝DHCP服務。」命令,系統會返回消息「dhcp-3.0.5-13.el5」,說明DHCP服務已正確安裝。
  • 詳解DHCP Snooping的使用
    DHCP Snooping配置的其他注意事項 DHCP Snooping功能與 1x的 DHCP Option 82 功能是互斥的,即不能同時使用DHCP Snooping和 DHCP Option82DHCP Snooping僅對用戶的DHCP過程進行窺探,若想控制用戶必須使用DHCP分配的 IP 上網,
  • 華為交換機上部署DHCP服務以及DHCP中繼
    2、三層與二層之間配置trunk[sw-s2700]int g0/0/2[sw-s2700-GigabitEthernet0/0/2]port link-type trunk[sw-s2700-GigabitEthernet0/0/2]port trunk allow-pass vlan 2 to 3說明:允許VLAN
  • Centos7安裝及配置DHCP服務
    計算機在不同的Vlan間移動時,不需要重新設置ip地址,dhcp會自動給其分配相應的ip地址。工作階段:客戶機廣播方式發送dhcp discover報文來尋找dhcp伺服器Dhcp伺服器收到dhcp discover報文後,從尚未出租的ip的盒子中挑選一個ip地址分配給dhcp客戶端,向客戶端發送一個包含出租ip
  • 帶你認識DHCP中繼
    另外在配置過程中,我們應該了解有關於DHCP中繼的相關內容。本文主要從技術層面向大家介紹了如何利用路由器進行DHCP的搭建,具體操作步驟看完此文章,相信你會有所了解。做DHCP伺服器的方式有多種,這裡我給大家介紹下如何運用路由器來做DHCP伺服器。項目需求,XX企業有三個部門,以在三層交換上分別為這三個部門劃分了VLAN.
  • DHCP Snooping配置明細
    2 DHCP Snooping配置switch(config)#ip dhcp snoopingswitch(config)#ip dhcp snoopingvlan 10switch(config-if)#ip dhcp snooping limit rate 10/*dhcp包的轉發速率,超過就接口就shutdown,默認不限制switch(config-if)#ip dhcp snooping trust/*這樣這個埠就變成了信任埠,信任埠可以正常接收並轉發DHCP Offer報文,不記錄
  • 樓宇交換機S5300配置實例(Vlan、路由、ACL、DHCP、Arp綁定)
    某校在校園網絡改造工程配備了S5300交換機做為樓宇交換機,用來與學校核心交換機互聯,為整幢大樓提供網絡信號。根據校方要求,對交換機進行了相關配置。為後期運維需要,按分為基礎信息、業務配置、管理配置、故障排除四部分記錄如下,請重點關注業務處理這一部分。配置中有一部分屬於知識拓展,用於後續維護和業務擴展。
  • 怎樣停止、啟動DHCP服務
    dhcp-3.0pl1-23  dhclient-3.0pl1-23  dhcp-devel-3.0pl1-23  [root@rh9 test]# 確認安裝完成如果你想以原代碼方式安裝,那麼請下載DHCP軟體包tar vxzf dhcp-3.X.tar.gz  cd dhcp-3.X  .
  • 路由器配置DHCP伺服器實例解析
    excluded-address 192.168.1.1 //需要排除路由器的接口既網關地址  Router(config)#ip dhcp pool DHCP //創建DHCP池  Router(dhcp-config)#network 192.168.1.0 /24 //宣告可分配網段
  • linux下的DHCP伺服器的配置
    而作為伺服器,Web,dhcp,和dns又是網際網路上最主要的服務,這一講,我和朋友們討論dhcp的應用。(注意:配置網絡伺服器,如果你在現有的網絡環境中選擇安裝或者使用VM的橋接網絡的時候,有可能會對你當前的網絡環境造成影響,請在配置之前諮詢你的網絡管理人員。)
  • 3750配置DHCP snooping的具體命令
    通過文章所示的命令以及代碼,相信大家能夠掌握這個配置過程。(無用的部分已經刪除了)具體操作如下:clock timezone WST 8  switch 1 provision ws-c3750g-48ts  system mtu routing 1500  ip subnet-zero  ip dhcp excluded-address 192.168.1.1 (保留地址)  !
  • 妙用中繼代理 讓DHCP服務多個VLAN
    可是在實際網絡維護過程中可能會遇到這樣的現象,那就是當區域網中安裝配置了三層交換機,同時根據工作部門的不同將若干臺工作站人為劃分成了幾個VLAN後,區域網中的所有工作站就不能同時從同一臺DHCP伺服器那裡申請得到有效的IP位址了,這是因為DHCP伺服器無法工作在多個VLAN中,也就是說區域網中的普通工作站發出的地址申請請求信息是不能在多個Vlan中進行廣播的,當普通工作站位於不同VLAN中時,地址申請請求信息就由於不能準確找到普通工作站而發送失敗
  • Cisco IOS DHCP Server實現的三個步驟
    詳細步驟如下:dwzxconfig #ip dhcp pool global'配置一個根地址池,global是地址池的名稱,你可以採用有意義的字符串來表示dwzxdhcp-config #network 202.115.0.0 255.255.0.0'動態分配的地址段dwzxdhcp-config #domain-name
  • 深論DHCP中繼的原理和配置
    第二步:DHCP伺服器端配置(此處用路由器來當DHCPserver.PC機上配置類似):route(config)#ip dhcp pool vlan10//配置一個地址池,vlan10是地址池的名稱,  route(dhcp-config
  • windows10系統提示未啟用dhcp是怎麼回事?
    windows10系統提示未啟用dhcp是怎麼回事?近來一些用戶在使用電腦過程中都遇到了這樣的問題,帶來非常不好的上網體驗。為了幫助大家更好地使用網絡,下面系統城小編就分享windows10系統提示未啟用dhcp問題的解決方法。