日常工作必備之DHCP入門與安全

書源發表於2020-04-06

前言

大家有沒有思考過為什麼在公司上班,我們電腦插上網線就能自動上網?又或者在麥當勞肯德基店裡連上WiFi就能自動連線網路了呢?這就是我們今天的主題DHCP。

前言故事

為了更好地理解DHCP我們講一個租房的故事。我們到了一個新的居住地環境需要租房,但是我們不知道房東是誰,那麼我們租房的流程可以按照如下的流程來進行。

我:“誰是房東,我要租房” (為了尋找房東,需要大喊一聲,也就是廣播)
房東1:“我是房東,我這有房租給你”
我:“我租房東1的房,其它房東的房我就不租了”(看完租房合同,確認沒有問題)
房東1:“好的,房子給你,以後你就住這兒了”複製程式碼

至此,我們便和房東簽了合同,並且有房子住了。在往後想想,租房是由期限的,假如租房期限快到了我們還想和繼續租房怎麼辦呢?這個時候我們只需要在房子快到期的時候通知一下房東,我們還要繼續租房是否就OK了呢?DHCP的工作流程和這個相似~

日常工作必備之DHCP入門與安全

DHCP工作流程

日常工作必備之DHCP入門與安全

上圖是我們DHCP協議的工作流程,我們結合前言故事一起來理解下具體流程:
1、當客戶端開機或者是重新啟動網路卡時,客戶端主機會傳送出搜尋DHCP伺服器的UDP封包給所有物理網段內的計算機。此封包的目標IP會是255.255.255.255,所以一般主機接收到這個封包後會直接予以丟棄,但若區域網路內有DHCP伺服器時,則會開始進行後續行為。

2、DHCP伺服器在接收到這個客戶端的要求後,在條件許可的情況下(比如說有空閒IP)則取用目前沒有被使用的IP給客戶端,並記錄下來,並且此時伺服器端會保留這個租約然後開始等待客戶端的回應。

3、客戶端決定選擇的DHCP伺服器提供的網路引數租約並回報伺服器,但是由於區域網路內可能並非僅有一部 DHCP 伺服器,但客戶端僅能接受一組網路引數的租約。因此客戶端必需要選擇是否要認可該伺服器提供的相關網路引數的租約。當決定好使用此伺服器的網路引數租約後,客戶端便開始使用這組網路引數來設定自己的網路環境。此外,客戶端也會傳送一個廣播封包給所有物理網段內的主機,告知已經接受該伺服器的租約。此時若有第二臺以上的DHCP伺服器,則這些沒有被接受的伺服器會收回該IP租約。至於被接受的DHCP伺服器會繼續進行底下的動作。

4、 伺服器端記錄該次租約行為並回報客戶端已確認的響應封包資訊。

5、DHCP伺服器向DHCP客戶機出租的IP地址一般都有一個租借期限,期滿後DHCP伺服器便會收回出租的IP地址。如果DHCP客戶機要延長其IP租約,則必須更新其IP租約。DHCP客戶機啟動時和IP租約期限過一半時,DHCP客戶機都會自動向DHCP伺服器傳送更新其IP租約的資訊

6、伺服器端更新該次租約行為並回報客戶端已確認的響應封包資訊。

DHCP租期

列舉如下兩個場景:
1、假如我們在公司裡面辦公,我們的IP地址幾乎不會更改,這個租期是否可以設定的長一點?
2、假如我們在快餐店,快餐店有WiFi,無數的人連線WiFi,如果時間設定的太長,那麼儲備的IP地址會很快就耗盡,這個時候就該考慮將租期設定的短一點

既然有租約時間,那麼是否代表我用DHCP取得的IP就得要手動的在某個時間點去重新取得新的IP呢?
答案是不需要!因為目前的DHCP客戶端程式大多會主動的依據租約時間去重新申請IP (renew)的!也就是說在租約到期前你的DHCP客戶端程式就已經又重新申請更新租約時間了。所以除非DHCP主機掛點,否則你所取得的IP應該是可以一直使用下去的!

一般來說假設租約期限是T小時,那麼客戶端在0.5T會主動向DHCP伺服器發出重新要求網路引數的封包。如果這次封包要求沒有成功,那麼在 0.875T 後還會再次的傳送封包一次,這次如果還沒有成功,那麼客戶機會去尋找其它DHCP伺服器。

既然租期有時間,那麼該次租約何時會到期而被解約呢?或者說什麼情況下會再次重新獲取IP呢?

1、客戶端離線:
不論是關閉網路介面、重新啟動、關機等行為,皆算是離線狀態,這個時候DHCP就會將
該IP回收,並放到DHCP自己的備用區中,等待未來的使用
2、客戶端租約到期:
前面提到DHCP服務端發放的IP有使用的期限,客戶端使用這個IP到達期限規定的時間,而且沒有重新提出DHCP的申請時,就需要將IP繳回去!這個時候就會造成斷線。但使用者也可以再向DHCP伺服器要求再次分配IP
3、可以使用如下命令來重新獲取IP注意是cmd的命令

ipconfig /release         釋放指定DHCP介面卡的 IPv4 地址。
ipconfig /release6        釋放指定DHCP介面卡的 IPv6 地址。
ipconfig /renew           更新指定DHCP介面卡的 IPv4 地址。
ipconfig /renew6          更新指定DHCP介面卡的 IPv6 地址。複製程式碼

DHCP地址保留

工作中其實會遇到一種場景是,一些員工需要繫結固定的IP,因為部門很多功能都通過防火牆限制了許可權,只能由麼些固定IP才有許可權訪問。那麼固定IP該如何實現呢?

我們電腦的網路卡都有一個唯一的標誌稱之為MAC,只要不換網路卡,那麼MAC肯定不會改變(不過有模擬軟體可以創造虛擬MAC),我們通過將MAC和特定的IP繫結就可以實現固定IP了。

windows上檢視MAC和租期資訊的命令為:

ipconfig /all複製程式碼

結果如圖所示:

dhcp01.png

預設情況下,我們電腦連上DHCP伺服器獲得的IP都不是固定的,都直接經由DHCP伺服器隨機獲取的。

DHCP攻擊與防禦

攻擊DHCP伺服器:頻繁的傳送偽裝DHCP請求,知道將DHCP地址池的資源耗盡
防禦:在交換機(必須是管理型)的埠做動態MAC地址繫結

偽裝DHCP伺服器攻擊:黑客將自己部署為DHCP伺服器,為客戶提供非法IP地址
防禦:在交換機(必須是管理型),除和法的DHCP伺服器所在介面外,全部設定為禁止傳送DHCP OFFER包


相關文章