您好,登錄后才能下訂單哦!
序:DHCP服務相對簡單,寫本文的目的是為了講一些DHCP安全方面的技術。
1、DHCP基礎
DHCP 全稱動態主機配置協議(Dynamic Host Configuration Protocol),用于給終端設備如PC、IPad、手機等自動分配IP地址。
工作過程簡潔高效,易于掌握,首先借著一張圖介紹DHCP基本的工作原理:
從圖上可以清晰看出,客戶端通過DHCP協議獲取IP地址等信息的過程可以分為四個步驟:
1.1發現階段,即DHCP客戶端發現DHCP服務器的階段。
DHCP客戶端發送DHCP DISCOVER報文來發現DHCP服務器。由于DHCP客戶端不知道DHCP服務器的IP地址,所以DHCP客戶端以廣播方式發送DHCP DISCOVER報文(目的IP地址為255.255.255.255,源IP地址為0.0.0.0),同一網段內所有DHCP服務器都能收到此報文。
1.2提供階段,即DHCP服務器提供IP地址的階段。
服務器接收到DHCP DISCOVER報文后,選擇跟接收DHCP DISCOVER報文接口的IP地址處于同一網段的地址池,并且從中選擇一個可用的IP地址,然后通過DHCP OFFER報文發送給DHCP客戶端。DHCP OFFER報文里面攜帶了希望分配給指定MAC地址客戶端的IP地址(DHCP報文中的yiaddr字段)及其租期等配置參數。
1.3選擇階段,即DHCP客戶端選擇IP地址的階段。
因為DHCP DISCOVER報文是廣播發送的,所以如果同一網段內存在多個DHCP服務器,接收到DHCP DISCOVER報文的服務器都會回應DHCP OFFER報文。如果有多個DHCP服務器向DHCP客戶端回應DHCP OFFER報文,則DHCP客戶端一般只接收第一個收到的DHCP OFFER報文。
以廣播方式發送DHCP REQUEST報文,是為了通知所有的DHCP服務器,它將選擇某個DHCP服務器提供的IP地址,其他DHCP服務器可以重新將曾經分配給客戶端的IP地址分配給其他客戶端。
1.4確認階段,即DHCP服務器確認所分配IP地址的階段。
當DHCP服務器收到DHCP客戶端發送的DHCP REQUEST報文后,DHCP服務器回應DHCP ACK報文,表示DHCP REQUEST報文中請求的IP地址分配給客戶端使用。
小結:DHCP工作過程四個步驟涉及四種數據包,分別是DISCOVER、OFFER、REQUEST、ACK。
2、DHCP Snooping
在企業實際網絡環境中,經常會遇到電腦獲取到錯誤IP地址等情況,導致無法正常上網,這是因為網絡中非法接入了DHCP服務器(最常見的非法DHCP服務器就是TP-link家用路由器)。
這時候就需要在網絡交換機上配置DHCP snooping功能來防止非法DHCP服務器給客戶端分配IP地址。
DHCP Snooping不論從配置上還是工作原理上也都很簡單,繼續用一張圖說明:
在二層網絡接入設備(即交換機)啟用DHCP Snooping場景中,一般將與合法DHCP服務器直接連接的接口設置為信任接口(如上圖中的if1接口),其他接口設置為非信任接口(如上圖中的if2接口),啟用了DHCP Snooping功能的交換機會檢測從每個接口收到的DHCP各類數據包,如果從非信任接口收到,則丟棄;使DHCP的四種數據包僅能從信任接口轉發或者接受,從而保證DHCP客戶端只能從合法的DHCP服務器獲取IP地址,私自架設的DHCP Server仿冒者無法為DHCP客戶端分配IP地址。
小結:DHCP Snooping在交換機上啟用,并將連接合法服務器的接口設置為信任接口,其他接口默認都是非信任接口。
3、DHCP Relay(中繼)
上面提到的DHCP客戶端與服務器都在同一個網段,比較適用于家庭網絡和小型企業網絡。但在中到大型企業網絡中,有很多網段,不推薦在每個網段都部署一個DHCP服務器,既不經濟也不好管理。
實際情況是,在大型網絡中,往往采用一臺高性能的服務器當作DHCP服務器,它只存在于一個網段。由于DHCP的工作高度依賴于廣播,而我們知道廣播包是不能跨網段傳輸的,所以正常情況下其他網段的客戶端是無法獲取IP地址的。
DHCP Relay的出現就是為了解決這個問題,用一張圖說明:
還是之前熟悉的四個步驟,不過這次在客戶端與服務器中間多了一個DHCP中繼設備,通常DHCP中繼為網絡中每個網段的網關設備(即啟用了DHCP Relay功能的三層交換機)。
DHCP中繼將從客戶端接收到的廣播報文轉換成單播報文,這樣報文就可以跨越網段進行傳輸。單播報文意味著明確且唯一的目的IP地址,所以開啟DHCP中繼的設備必須手工明確配置DHCP服務器的IP地址。
有了DHCP中繼,不論企業網絡中有多少個IP網段,我們只需要在一個網段部署DHCP服務器,其他網段則由網關設備開啟中繼功能,這樣整個網絡都能通過DHCP服務器獲取IP地址。
小結:在三層交換機的各個網段開啟DHCP Relay功能,并手動指定DHCP服務器的IP地址,可實現整網共享一臺DHCP服務器。
4、一個關于DHCP Snooping與 DHCP Relay的小思考
在一個部署了DHCP Relay的網絡中,DHCP Snooping應該啟用哪些設備上?
如圖所示:
其中有三個部門即三個網段,而DHCP服務器是一臺路由器,不屬于其中任意一個網段。
在這個網絡中,每個包含DHCP客戶端的二層網絡中都應該啟用DHCP Snooping,而僅包含服務器的二層網絡是不需要啟用DHCP Snooping的。
備注:客戶端二層網絡啟用DHCP Snooping很好理解,而服務器二層網絡無需啟用DHCP Snooping的背后原因稍顯復雜。具體原因是當部署了DHCP Relay后,DHCP服務器收到的DHCP各種報文一定是中繼設備轉換后的單播報文,單播報文有明確且唯一的目的IP,這時就不會存在仿冒DHCP服務器的問題。
而實際上如果真的在服務器二層網絡中的交換機上啟用了DHCP Snooping功能,它也是不會影響DHCP正常工作的,因為從中繼設備發過來的單播DHCP報文里面UDP層的源端口號已經被中繼設備修改成UDP 67(而原始報文里則為UDP 68),交換機一旦檢測到這點變化,就會自動忽略,正常轉發DHCP各類報文,不做DHCP Snooping額外處理。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。