DHCP***和防禦

 DHCP的租約分爲一下6個過程:

1.客戶機請求IP:客戶機以廣播的方式發送DHCP Discover包來尋找DHCP服務器,廣播中包含DHCP客戶機的MAC和計算機名。

2.服務器響應:DHCP服務器接收到來到客戶機的請求IP地址信息時,服務器就在自己的IP地址池中查找是否有合法的IP提供給客戶機,如果有,DHCP服務器就把此IP地址做上標記,加入到DHCP Offer的消息中,然後DHCP服務器就廣播一條Offer消息:DHCP客戶機的MAC、提供的合法IP、子網掩碼、默認網關、租約期限、DHCP服務器的IP地址。

3.客戶機選擇IP:客戶機接收到DHCP Offer包後,提取裏面的IP地址,然後廣播DHCP Resquest消息到所有DHCP服務器,表明他接受提供的內容。數據包裏包含客戶機提供IP配置的服務標識符(服務器IP地址)。服務器查看服務器標識字段,以確定提供的IP地址時候被接受。

4.服務器確定租約:服務器收到DHCP Resquest後,就向客戶機廣播DHCP ACK消息成功確認。DHCP ACK中包含 地址的有效租期和其它配置的消息。

5.重新登錄:DHCP客戶機每次重新登錄,不用再發送DHCP DIscover消息,直接發送包含前一次所分配的IP地址的DHCP Request 請求信息,DHCP服務器嘗試讓DHCP客戶機繼續使用原來的IP地址。如果此IP地址不能分配給原來的客戶機,則服務器發送一個DHCP Nack否認信息,客戶機收到此消息後就會重新發送DHCP Discover消息來請求新的地址。

6.更新租約:客戶機到了50%的時候就開始準備續約了,85%的時候是第二次了,如果85%的時候還沒有能獲取到dhcp服務器的地址續約,客戶端得趕緊另謀出路了,發DHCP discover包,找DHCP服務器

注:如果 DHCP客戶機無法找到DHCP服務器,它將從TCP/IP的B類網段169.254.0.0中挑選一個 地址作爲自己的 地址,並且每隔5 min 嘗試與DHCP服務器進行通信。

 下面我們來考慮怎樣***DHCP服務器,看看如下拓撲圖:

我們可以通過***主機D,發送DHCP Discover 包來瞬間耗盡DHCP服務器A的地址池,然後建立流氓DHCP服務器,再發送RELEASE包,這樣主機C就會在網上尋找DHCP服務器,D就會告訴DHCP客戶端虛假的地址和網關。就達到了***DHCP的目的。用到的***是基於Ubuntu下的yersinia 軟件

那麼我們來講講怎麼防禦DHCP***:我們可以在交換機上啓用端口監聽,設置信任端口和非信任端口,默認下交換機端口都是非信任端口。 

非信任端口:連接終端設備的端口,該端口客戶端只能發送DHCP請求報文,而丟棄來自該端口的其他所有DHCP報文(DHCP offer等)

信任端口:連接合法的DHCP服務器或者匯聚接口,能夠轉發和接收所有DHCP報文

防禦DHCP的拓撲圖:

開啓交換機端口監聽功能: Switch(config)#ipdhcp snooping

設置DHCP監聽作用於那個VLAN: Switch(config)#ipdhcp snooping vlannumber

配置端口信任或非信任:  Switch(config-if)#ipdhcp snooping trust

報文中插入選項82信息:Switch(config)# ip dhcp snoopling infornamation option

限制DHCP報文速率,jianhuan DHCP 耗盡***:Switch(config-if)# ip dhcp snoopling limit rate rate(速率)

這樣就可以達到防禦DHCP***的目的。

 

 

 

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