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/houduan/4730.html
標籤:python
下一篇:JZ48 不用加減乘除做加法
