计算机网络——DHCP协议详解(大学如何自学计算机科学与技术)
點贊后看,養(yǎng)成習(xí)慣
喜歡的話 可以點個關(guān)注喲
你們的點贊支持對博主們來說很重要哦 !!!
本文將針對以下問題逐條進行解答:
01 DHCP協(xié)議是什么?
02 客戶端與服務(wù)端處于同一廣播域內(nèi),DHCP協(xié)議如何工作的?
03 客戶端和服務(wù)端不在同一網(wǎng)段,客戶端如何通過廣播發(fā)現(xiàn)服務(wù)器?
04 客戶端和服務(wù)端不在同一網(wǎng)段時,服務(wù)器為什么能給客戶端分配到所屬網(wǎng)段的IP地址?
05 DHCP有哪些安全漏洞 ?
06 如何解決DHCP的安全漏洞呢?
01 DHCP協(xié)議簡介
一臺電腦,需要被分配到IP地址、網(wǎng)絡(luò)掩碼、缺省網(wǎng)關(guān)、DNS服務(wù)器IP才算獲得了完整的IP參數(shù)。那么這些IP參數(shù),是不是需要我們一個個去用戶電腦里手動配置呢?
答案是不用的,TCP/IP協(xié)議的發(fā)明者,為了讓TCP/IP協(xié)議簡單易用,發(fā)明了一個自動化配置工具,這就是DHCP(動態(tài)主機配置協(xié)議)。
這相當于,人類最初想要點火,需要手動鉆木取火,而現(xiàn)在只需要一個簡單的打火機,按鈕一按便可以點火一樣。
02 客戶端與服務(wù)端處于同一廣播域內(nèi),DHCP協(xié)議工作機制
1、客戶端發(fā)現(xiàn)服務(wù)端 ( 客戶端:親愛的,我的禮物在哪里?)
電腦的操作系統(tǒng)安裝了TCP/IP協(xié)議棧,這個協(xié)議棧其中包含了DHCP客戶端進程,這個客戶端會廣播發(fā)送一個發(fā)現(xiàn)服務(wù)器的報文,格式為UDP封裝,目的端口號為68,源端口號為67
2、服務(wù)端回復(fù)客戶端 ( 服務(wù)端:親愛的,這個禮物你要嘛)
服務(wù)端接收到客戶端的發(fā)現(xiàn)報文,會從IP地址池中選擇一個空閑的IP地址、對應(yīng)的子網(wǎng)掩碼、缺省網(wǎng)關(guān)、DNS服務(wù)器IP地址,并以單播的方式發(fā)給客戶端,目的端口是67,源端口號為68
3、客戶端請求IP參數(shù) ( 客戶端:親愛的,我要我要)
客戶端接收到服務(wù)器的回應(yīng),接受服務(wù)器分配的IP參數(shù),以單播的方式請求服務(wù)器提供的IP參數(shù),發(fā)給服務(wù)器。
4、服務(wù)端確認請求 ( 服務(wù)端:親愛的,給你,你喜歡就好 )
服務(wù)器最終確認客戶端的請求,以單播方式發(fā)送給客戶端。
5、客戶端ARP廣播確認 ( 客戶端接過禮物,看看自己的周圍有沒有一樣的禮物,如果沒有的話,就說:親愛的,這個禮物好獨特啊,我接受了;如果發(fā)現(xiàn)其他人也有這個禮物,就說,你給我的其他人也有了,我不要)
客戶端接收到服務(wù)端的確認后,會嘗試ARP請求自己IP所對應(yīng)的MAC地址,看看有沒有回復(fù)。如果沒有回復(fù),那就說明自己現(xiàn)在這個IP地址是該廣播域內(nèi)獨一無二的,不會引起IP地址沖突。于是將自己獲得IP參數(shù)配置到TCP/IP協(xié)議棧
03 客戶端和服務(wù)端不在同一網(wǎng)段時,客戶端通過廣播發(fā)現(xiàn)服務(wù)器的機制
在02 里說到了同一個網(wǎng)段里面DHCP協(xié)議的過程,我們會發(fā)現(xiàn)一個網(wǎng)段需要一個DHCP服務(wù)器。 但是,對于有成千上萬個網(wǎng)段的大型網(wǎng)段中,是不是需要巨大數(shù)量的DHCP服務(wù)器呢?這顯然是不現(xiàn)實的。
那么,當客戶端和服務(wù)端不在同一個網(wǎng)段的時候,廣播包跨越不過不同網(wǎng)段的時候,客戶端如何通過廣播發(fā)現(xiàn)服務(wù)端呢?其實也簡單,你找個幫手,幫你喊話就得了,這個幫手就是DHCP中繼代理
簡單來說,DHCP中繼代理就是讓客戶端和服務(wù)端互相發(fā)現(xiàn)彼此的中介結(jié)構(gòu)。 就是我們所謂的中介,幫我們傳話的。
具體是這樣的,每個網(wǎng)段都配置一個DHCP中繼代理,DHCP中繼代理先靜態(tài)配置DHCP服務(wù)器的IP地址,DHCP中繼代理,自然可以接收到本網(wǎng)段的客戶端DHCP廣播報文,然后廣播報文修改成單播報文,目的IP地址為DHCP服務(wù)器,源IP地址代理為自己的,然后單播發(fā)送給服務(wù)器,服務(wù)器的回復(fù)自然也是單播發(fā)給代理,代理再將服務(wù)器的回復(fù)單播發(fā)給客戶端。
04 客戶端和服務(wù)端不在同一網(wǎng)段時,服務(wù)器給客戶端分配到所屬網(wǎng)段的IP地址的方法
有DHCP中繼代理的情況下,接收到客戶端廣播的DHCP發(fā)現(xiàn)包時,會在DHCP報文內(nèi)部填寫一個字段【中繼代理:10.1.1.1】
這樣服務(wù)器接受到DHCP中繼代理發(fā)過來的包時,就會根據(jù)中繼代理的地址,找到網(wǎng)段10.1.1.0地址池,然后找出空閑的地址分配會客戶端。
05 DHCP協(xié)議存在的安全漏洞
服務(wù)器會依據(jù)DHCP報文來唯一分配一個IP地址,這就是最大的安全漏洞。
設(shè)想一下, 一臺惡意電腦,偽造了成千上萬的MAC地址,用這些MAC地址分別發(fā)送DHCP消息報文。
而如果沒有防護機制的話,DHCP就會分配出去IP地址,造成的結(jié)果是:IP地址池耗盡了,同一網(wǎng)段的其他用戶無法自動拿到地址上網(wǎng)了。 這不就相當于,你占著茅坑不拉屎,浪費了資源嘛。
06 解決DHCP的安全漏洞的方法
這里我們需要引入一個配置,叫 DHCP Snooping(DHCP 窺探)
通過在網(wǎng)絡(luò)的入口,最靠近用戶的二層交換機上配置 DHCP Snooping,讓二層交換機偷窺主機與DHCP服務(wù)器信息交換,當看到主機信息途經(jīng)交換機時,交換機修改報文,在原報文的基礎(chǔ)上添加一個安全選項【Option 82】,這個選項具體有哪些內(nèi)容呢?
交換機名稱、交換機端口名稱,即這條消息是從哪個交換機、哪個端口接收到的。
交換機把這個定位主機的位置消息,添加到【Option 82】字段里。服務(wù)器不僅要看客戶端MAC地址,還要參考主機的位置消息。 如果設(shè)定一個交換機/端口最多只能分配兩個IP地址,那么來自同一個交換機/端口的偽造DHCP報文都會被拒絕分配IP地址,因為超出了2個IP地址。
除此之外,交換機還偷窺到服務(wù)器給主機分配的IP地址,還知道主機連接的端口號、主機的硬件地址MAC地址,生成一張表,用于記錄交換機端口、MAC地址、IP地址的綁定關(guān)系。
擴展:其實DHCP Snooping不僅可以解決DHCP欺騙問題,還可以解決ARP欺騙問題
ARP欺騙
當同網(wǎng)段進行通信的時候,需要使用ARP廣播來發(fā)現(xiàn)彼此的MAC地址。
但是如果小A和小B進行通信的時候,小A問小B的MAC地址,而小C聽到了,用自己的MAC地址來回應(yīng)。讓小A信以為真,覺得小C是小B,原來發(fā)給小B的流量都發(fā)給小C了。如何小C看完內(nèi)容后,再用小B的MAC地址作為目的MAC發(fā)給小B。這就是網(wǎng)絡(luò)流量的劫持
而如果小C冒充網(wǎng)關(guān)的話,則網(wǎng)段里面訪問其他網(wǎng)段的流量都會被小C劫持。這很危險
而使用了DHCP Snooping后,二層交換機有了一份綁定表,當小C試圖欺騙小A,自稱小B時。交換機因為已經(jīng)有了小B的MAC、IP、端口號,所以就會發(fā)現(xiàn)這個欺詐行為,如何直接丟棄,并在日志文件里記錄這個欺騙行為。
以上文章,作為自己的學(xué)習(xí)筆記,僅供參考
本文完,感謝你的閱讀!!!
最后,如果本文對你有所幫助,希望可以點個贊支持一下。你們的鼓勵將會是博主原創(chuàng)的動力。
總結(jié)
以上是生活随笔為你收集整理的计算机网络——DHCP协议详解(大学如何自学计算机科学与技术)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eclipse 搭建Android 开发
- 下一篇: 解决IllegalStateExcept