計算機網絡——DHCP協議詳解

點贊後看,養成習慣
喜歡的話 可以點個關注喲
你們的點贊支持對博主們來說很重要哦 !!!

本文將針對以下問題逐條進行解答:

01 DHCP協議是什麼?

02 客戶端與服務端處於同一廣播域內,DHCP協議如何工作的?

03 客戶端和服務端不在同一網段,客戶端如何通過廣播發現服務器?

04 客戶端和服務端不在同一網段時,服務器爲什麼能給客戶端分配到所屬網段的IP地址

05 DHCP有哪些安全漏洞*

06 如何解決DHCP的安全漏洞呢?


在這裏插入圖片描述


01 DHCP協議簡介

一臺電腦,需要被分配到IP地址、網絡掩碼、缺省網關、DNS服務器IP纔算獲得了完整的IP參數。那麼這些IP參數,是不是需要我們一個個去用戶電腦裏手動配置呢?

答案是不用的,TCP/IP協議的發明者,爲了讓TCP/IP協議簡單易用,發明了一個自動化配置工具,這就是DHCP(動態主機配置協議)。

這相當於,人類最初想要點火,需要手動鑽木取火,而現在只需要一個簡單的打火機,按鈕一按便可以點火一樣。

在這裏插入圖片描述


02 客戶端與服務端處於同一廣播域內,DHCP協議工作機制

在這裏插入圖片描述
1、客戶端發現服務端 ( 客戶端:親愛的,我的禮物在哪裏?

電腦的操作系統安裝了TCP/IP協議棧,這個協議棧其中包含了DHCP客戶端進程,這個客戶端會廣播發送一個發現服務器的報文,格式爲UDP封裝,目的端口號爲68,源端口號爲67

2、服務端回覆客戶端 ( 服務端:親愛的,這個禮物你要嘛)

服務端接收到客戶端的發現報文,會從IP地址池中選擇一個空閒的IP地址、對應的子網掩碼、缺省網關、DNS服務器IP地址,並以單播的方式發給客戶端,目的端口是67,源端口號爲68

3、客戶端請求IP參數 ( 客戶端:親愛的,我要我要

客戶端接收到服務器的迴應,接受服務器分配的IP參數,以單播的方式請求服務器提供的IP參數,發給服務器。

4、服務端確認請求 ( 服務端:親愛的,給你,你喜歡就好

服務器最終確認客戶端的請求,以單播方式發送給客戶端。

5、客戶端ARP廣播確認 ( 客戶端接過禮物,看看自己的周圍有沒有一樣的禮物,如果沒有的話,就說:親愛的,這個禮物好獨特啊,我接受了;如果發現其他人也有這個禮物,就說,你給我的其他人也有了,我不要
在這裏插入圖片描述

客戶端接收到服務端的確認後,會嘗試ARP請求自己IP所對應的MAC地址,看看有沒有回覆。如果沒有回覆,那就說明自己現在這個IP地址是該廣播域內獨一無二的,不會引起IP地址衝突。於是將自己獲得IP參數配置到TCP/IP協議棧




03 客戶端和服務端不在同一網段時,客戶端通過廣播發現服務器的機制

在02 裏說到了同一個網段裏面DHCP協議的過程,我們會發現一個網段需要一個DHCP服務器。 但是,對於有成千上萬個網段的大型網段中,是不是需要巨大數量的DHCP服務器呢?這顯然是不現實的。

那麼,當客戶端和服務端不在同一個網段的時候,廣播包跨越不過不同網段的時候,客戶端如何通過廣播發現服務端呢?其實也簡單,你找個幫手,幫你喊話就得了,這個幫手就是DHCP中繼代理

簡單來說,DHCP中繼代理就是讓客戶端和服務端互相發現彼此的中介結構。 就是我們所謂的中介,幫我們傳話的。

在這裏插入圖片描述


具體是這樣的,每個網段都配置一個DHCP中繼代理,DHCP中繼代理先靜態配置DHCP服務器的IP地址,DHCP中繼代理,自然可以接收到本網段的客戶端DHCP廣播報文,然後廣播報文修改成單播報文,目的IP地址爲DHCP服務器,源IP地址代理爲自己的,然後單播發送給服務器,服務器的回覆自然也是單播發給代理,代理再將服務器的回覆單播發給客戶端。



04 客戶端和服務端不在同一網段時,服務器給客戶端分配到所屬網段的IP地址的方法

有DHCP中繼代理的情況下,接收到客戶端廣播的DHCP發現包時,會在DHCP報文內部填寫一個字段【中繼代理:10.1.1.1

這樣服務器接受到DHCP中繼代理髮過來的包時,就會根據中繼代理的地址,找到網段10.1.1.0地址池,然後找出空閒的地址分配會客戶端。




05 DHCP協議存在的安全漏洞

服務器會依據DHCP報文來唯一分配一個IP地址,這就是最大的安全漏洞。

設想一下, 一臺惡意電腦,僞造了成千上萬的MAC地址,用這些MAC地址分別發送DHCP消息報文。

而如果沒有防護機制的話,DHCP就會分配出去IP地址,造成的結果是:IP地址池耗盡了,同一網段的其他用戶無法自動拿到地址上網了。 這不就相當於,你佔着茅坑不拉屎,浪費了資源嘛。

在這裏插入圖片描述


06 解決DHCP的安全漏洞的方法

這裏我們需要引入一個配置,叫 DHCP Snooping(DHCP 窺探)

通過在網絡的入口,最靠近用戶的二層交換機上配置 DHCP Snooping,讓二層交換機偷窺主機與DHCP服務器信息交換,當看到主機信息途經交換機時,交換機修改報文,在原報文的基礎上添加一個安全選項【Option 82】,這個選項具體有哪些內容呢?

交換機名稱、交換機端口名稱,即這條消息是從哪個交換機、哪個端口接收到的。

交換機把這個定位主機的位置消息,添加到【Option 82】字段裏。服務器不僅要看客戶端MAC地址,還要參考主機的位置消息。 如果設定一個交換機/端口最多隻能分配兩個IP地址,那麼來自同一個交換機/端口的僞造DHCP報文都會被拒絕分配IP地址,因爲超出了2個IP地址。



在這裏插入圖片描述
除此之外,交換機還偷窺到服務器給主機分配的IP地址,還知道主機連接的端口號、主機的硬件地址MAC地址,生成一張表,用於記錄交換機端口、MAC地址、IP地址的綁定關係



擴展:其實DHCP Snooping不僅可以解決DHCP欺騙問題,還可以解決ARP欺騙問題

ARP欺騙

當同網段進行通信的時候,需要使用ARP廣播來發現彼此的MAC地址。
但是如果小A和小B進行通信的時候,小A問小B的MAC地址,而小C聽到了,用自己的MAC地址來回應。讓小A信以爲真,覺得小C是小B,原來發給小B的流量都發給小C了。如何小C看完內容後,再用小B的MAC地址作爲目的MAC發給小B。這就是網絡流量的劫持

而如果小C冒充網關的話,則網段裏面訪問其他網段的流量都會被小C劫持。這很危險
在這裏插入圖片描述

而使用了DHCP Snooping後,二層交換機有了一份綁定表,當小C試圖欺騙小A,自稱小B時。交換機因爲已經有了小B的MAC、IP、端口號,所以就會發現這個欺詐行爲,如何直接丟棄,並在日誌文件裏記錄這個欺騙行爲。





以上文章,作爲自己的學習筆記,僅供參考

本文完,感謝你的閱讀!!!

最後,如果本文對你有所幫助,希望可以點個贊支持一下。你們的鼓勵將會是博主原創的動力。
在這裏插入圖片描述

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