主頁 > 移動端開發 > DHCP協議及其抓包分析

DHCP協議及其抓包分析

2020-09-10 16:53:44 移動端開發

DHCP

1.DHCP概述

DHCP是Bootstrap協議的一種擴展,基于UDP協議,客戶端的埠號是68,服務器的埠號是67

Application Layer DHCP
Transport Layer UDP
Network Layer IP
Data-link Layer NO-limited
Physical Layer NO-limited

DHCP協議特性

1.保證任何IP地址在同一時刻只能由一個DHCP客戶機所使用

2.DHCP應當可以給用戶分配永久的IP地址

3.DHCP應當可以通過其他方法獲得IP地址的主機共存(如手工配置IP地址的主機)

4.DHCP服務器應當向現有的DHCP客戶端提供服務

DHCP資料包結構

在這里插入圖片描述

  • 操作碼(1位元組):該欄位用于定義BOOTP報文型別,請求報文1,應答報文為2,
  • 硬體型別(1位元組):用于定義物理網路的型別,每種型別的網路被分配一個整數,10M以太網,這個欄位值為1
  • 硬體地址長度(1位元組):用于定義以位元組為單位的物理地址長度,對于以太網,該欄位值為6.
  • 條數(1位元組):該欄位的初始值為0 ,DHCP中繼代理負責填寫這一欄位,
  • 事務標識(4位元組):由DHCP客戶隨機選擇,用來對DHCP請求/應答報文進行匹配,DHCP服務器在應答報文中回傳同樣的值,
  • 秒數(2位元組):由DHCP客戶端設定,給出DHCP從獲得IP地址或更新租約所經歷的時間,
  • 標志:該欄位最高位是廣播標志位,其余位必須設為0,當DHCP客戶不知道自己的IP地址時,要設定廣播標志,通知服務器發送應答報文時采用IP廣播方式,
  • 客戶IP地址:如果DHCP客戶知道自己的IP地址,則在發送請求時,將自己的IP地址填入該欄位,同時將前面的廣播標志位設為0,通知服務器以單播方式發送應答報文;如果DHCP客戶不知道自己IP地址,則該欄位全部填0
  • 您的IP地址:DHCP服務器回傳給客戶的IP地址
  • 服務器IP地址:由DHCP服務器在DHCPOFFER和DHCPACK報文中提供的引導服務器IP地址
  • 網關IP地址:
  • 客戶硬體地址:
  • 服務器名字:
  • 引導檔案名:
  • 選項(長度可變):

常用的option:

  • 1 netmask
  • 3 router
  • 6 DNS
  • 12 host name
  • 51 ip address lease time
  • 53 message type (dhcp報文8種型別,下一頁介紹)
  • 54 server identification
  • 55 parameter request list (需要服務器給你提供哪些東西:ip地址,域名,網關)
  • 61 client identification
  • 82 relay agent
  • 255 end

DHCP報文8種型別

報文型別 含義
DHCP DISCOVER 客戶端用來尋找DHCP服務器
DHCP OFFER DHCP服務器用來回應DHCP DISCOVER報文,此報文攜帶了各種配置資訊
DHCP REQUEST 客戶端請求配置確認,或者續借租期
DHCP ACK 服務器對REQUSET報文的確認回應報文
DHCP NAK 服務器對REQUSET報文的拒絕回應報文(廣播)
DHCP RELEASE 客戶端要釋放地址時來通知服務器,(單播)
DHCP DECLINE decinePC收到DHCP服務器的地址后,發送分配地址免費ARP,如果有回應,會發送DHCP DECINE報文(即向DHCP報告該IP被占用)
DHCP INFORM PC單獨請求域名、DNS這些引數的時候

在這里插入圖片描述

2.DHCP協議作業原理

作業程序:

(1)請求IP地址

1.發現階段,DHCP客戶機以廣播方式發送DHCP DISCOVER報文

2.提供階段,DHCP服務器提供IP地址的階段,收到DHCPdiscover報文后,從IP地址池中選擇一個尚未分配的IP地址分配給DHCp客戶機,向DHCP客戶發送包含租借的IP地址和其他配置引數的DHCPoffer,

3.選擇階段,DHCP客戶選擇IP地址的階段,如果多臺DHCP服務器向該DHCP客戶發送DHCPoffer報文,則DHCP客戶從中隨機挑選,然后以廣播方式向各DHCP服務器回應DHCPrequest,宣告宣告使用他挑中的DHCP服務器提供的地址,并正式請求DHCP服務器分配地址,其他發送DHCPoffer報文的DHCP服務器接收到該報文后,將釋放已經offer(預分配)DHCP客戶的IP地址,

如果發送給DHCP客戶的DHCPoffer報文中包含無效的配置引數,DHCP客戶會發送DHCPdecline報文拒絕,

4.確認階段,DHCP服務器確認所提供的的IP地址的階段,當DHCP服務器收到DHCPrequest報文后,向客戶發送包含它所提供的IP地址及其他配置資訊的DHCPACK確認報文,然后DHCP客戶將接收并使用IP地址及其他TCP/IP配置引數

(2)續租IP地址

在DHCP中,每個IP地址都是有一定租期的,若租期已到,則DHCP服務器就可以將該IP地址分配給其他計算機,續租在租期達到50%時就將啟動,DHCP客戶發送DHCPrequest報文請求續租,若服務端回復DHCPack報文,續租成功,若此次不成功在租期87.5%時再次續租,若DHCP服務器回復則續租成功,否則租期一到釋放該IP地址

(3)釋放IP地址

DHCP客戶可以通過向DHCP服務器發送DHCErelease報文主動釋放IP地址,同時將IP地址設定為0.0.0.0

在這里插入圖片描述

3.DHCP中繼及snooping

DHCP中繼

考慮到成本,無需每個子網都配備一臺DHCP服務器,所以DHCP協議應當可以通過路由器或者BOOTP代理透傳(DHCP中繼),

由于DHCP請求報文采用廣播方式發送報文,因此當DHCP客戶端和DHCP服務器處于不同子網時,必須要通過DHCP中繼進行通信,最侄訓取到IP地址,

多個網路上的DHCP客戶端可以使用同一個DHCP服務器,既節省了成本,又便于進行集中管理

在這里插入圖片描述

DHCP Snooping

DHCP Snooping是 DHCP 的一種安全特性,主要應用在 交換機 上,作用是屏蔽接入網路中的非法的 DHCP 服務器,即開啟 DHCP Snooping 功能后,網路中的客戶端只有從管理員指定的 DHCP 服務器獲取 IP 地址,

DHCP在設計上未從分考慮安全因素,從而留下了許多安全漏洞,使得DHCP很容易受到攻擊,實際網路中,針對DHCP的攻擊行為主要有以下三種:

DHCP餓死攻擊

攻擊原理:攻擊者持續大量的向DHCP Server申請地址,直到耗盡DHCP Server地址池中的IP地址,導致DHCP Server不能給正常的用戶進行分配,

解決方法:通過校驗CHADDR與MAC值,

在這里插入圖片描述

仿冒DHCP Server攻擊

攻擊原理:攻擊者仿冒DHCP Server,向客戶端分配錯誤的IP地址及提供錯誤的網關地址等,導致客戶端無法正常訪問網路,

解決辦法:通過配置trust與untrust口區分轉發,

在這里插入圖片描述

DHCP中間人攻擊

攻擊原理:攻擊者利用ARP機制,讓PC-A學習到IP-S與MAC-B的映射關系,又讓Server學習到IP-A與MAC-B的映射關系,如此一來,PC-A與Server之間交付的IP報文都會經過攻擊者中轉,

解決辦法:開啟ARP檢測,

在這里插入圖片描述

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/2788.html

標籤:其他

上一篇:資料結構與演算法——第一節課實驗題解

下一篇:JZ48 不用加減乘除做加法

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more