DHCP、DHCP Snooping及DHCP relay工做原理入門及實踐(轉)

原文https://blog.51cto.com/5167020/2312718安全

 

序:DHCP服務相對簡單,寫本文的目的是爲了講一些DHCP安全方面的技術。服務器

一、DHCP基礎網絡

DHCP 全稱動態主機配置協議(Dynamic Host Configuration Protocol),用於給終端設備如PC、IPad、手機等自動分配IP地址。
工做過程簡潔高效,易於掌握,首先借着一張圖介紹DHCP基本的工做原理:oop

DHCP、DHCP Snooping及DHCP relay工做原理入門及實踐

從圖上能夠清晰看出,客戶端經過DHCP協議獲取IP地址等信息的過程能夠分爲四個步驟:性能

1.1發現階段,即DHCP客戶端發現DHCP服務器的階段。blog

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。


二、DHCP Snooping

在企業實際網絡環境中,常常會遇到電腦獲取到錯誤IP地址等狀況,致使沒法正常上網,這是由於網絡中非法接入了DHCP服務器(最多見的非法DHCP服務器就是TP-link家用路由器)。
這時候就須要在網絡交換機上配置DHCP snooping功能來防止非法DHCP服務器給客戶端分配IP地址。

DHCP Snooping不論從配置上仍是工做原理上也都很簡單,繼續用一張圖說明:
DHCP、DHCP Snooping及DHCP relay工做原理入門及實踐

在二層網絡接入設備(即交換機)啓用DHCP Snooping場景中,通常將與合法DHCP服務器直接鏈接的接口設置爲信任接口(如上圖中的if1接口),其餘接口設置爲非信任接口(如上圖中的if2接口),啓用了DHCP Snooping功能的交換機會檢測從每一個接口收到的DHCP各種數據包,若是從非信任接口收到,則丟棄;使DHCP的四種數據包僅能從信任接口轉發或者接受,從而保證DHCP客戶端只能從合法的DHCP服務器獲取IP地址,私自架設的DHCP Server仿冒者沒法爲DHCP客戶端分配IP地址。

小結:DHCP Snooping在交換機上啓用,並將鏈接合法服務器的接口設置爲信任接口,其餘接口默認都是非信任接口。


三、DHCP Relay(中繼)
上面提到的DHCP客戶端與服務器都在同一個網段,比較適用於家庭網絡和小型企業網絡。但在中到大型企業網絡中,有不少網段,不推薦在每一個網段都部署一個DHCP服務器,既不經濟也很差管理。
實際狀況是,在大型網絡中,每每採用一臺高性能的服務器看成DHCP服務器,它只存在於一個網段。因爲DHCP的工做高度依賴於廣播,而咱們知道廣播包是不能跨網段傳輸的,因此正常狀況下其餘網段的客戶端是沒法獲取IP地址的。

DHCP Relay的出現就是爲了解決這個問題,用一張圖說明:
DHCP、DHCP Snooping及DHCP relay工做原理入門及實踐
仍是以前熟悉的四個步驟,不過此次在客戶端與服務器中間多了一個DHCP中繼設備,一般DHCP中繼爲網絡中每一個網段的網關設備(即啓用了DHCP Relay功能的三層交換機)。

DHCP中繼將從客戶端接收到的廣播報文轉換成單播報文,這樣報文就能夠跨越網段進行傳輸。單播報文意味着明確且惟一的目的IP地址,因此開啓DHCP中繼的設備必須手工明確配置DHCP服務器的IP地址。
有了DHCP中繼,不論企業網絡中有多少個IP網段,咱們只須要在一個網段部署DHCP服務器,其餘網段則由網關設備開啓中繼功能,這樣整個網絡都能經過DHCP服務器獲取IP地址。

小結:在三層交換機的各個網段開啓DHCP Relay功能,並手動指定DHCP服務器的IP地址,可實現整網共享一臺DHCP服務器。


四、一個關於DHCP Snooping與 DHCP Relay的小思考

在一個部署了DHCP Relay的網絡中,DHCP Snooping應該啓用哪些設備上?
如圖所示:
DHCP、DHCP Snooping及DHCP relay工做原理入門及實踐
其中有三個部門即三個網段,而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額外處理。

相關文章
相關標籤/搜索