DHCP 服務原理:Snooping和Relay

1、DHCP基礎
    1.1 發現階段,即DHCP客戶端發現DHCP服務器的階段。
    1.2 提供階段,即DHCP服務器提供IP地址的階段。
    1.3選擇階段,即DHCP客戶端選擇IP地址的階段。
    1.4 確認階段,即DHCP服務器確認所分配IP地址的階段。
2、DHCP Snooping
3、DHCP Relay(中繼)
4、一個關於DHCP Snooping與 DHCP Relay的小思考


1、DHCP 基礎

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

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

       從圖上可以清晰看出,客戶端通過 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、DHCP Snooping及DHCP relay工作原理入門及實踐

      在二層網絡接入設備(即交換機)啓用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 Snooping及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 Snooping及DHCP relay工作原理入門及實踐
      其中有三個部門即三個網段,而DHCP服務器是一臺路由器,不屬於其中任意一個網段。
在這個網絡中,每個包含DHCP客戶端的二層網絡中都應該啓用DHCP Snooping,而僅包含 DHCP 服務器的二層網絡是不需要啓用DHCP Snooping的。

      備註:客戶端二層網絡啓用 DHCP Snooping 很好理解,而 DHCP 服務器二層網絡無需啓用 DHCP Snooping 的背後原因稍顯複雜。
具體原因是當部署了DHCP Relay後,DHCP 服務器收到的 DHCP 各種報文一定是中繼設備轉換後的單播報文,單播報文有明確且唯一的目的IP,這時就不會存在仿冒 DHCP 服務器的問題
      而實際上如果真的在 DHCP 服務器二層網絡中的交換機上啓用了 DHCP Snooping 功能,它也是不會影響DHCP正常工作的,因爲從中繼設備發過來的單播 DHCP 報文裏面UDP層源端口號已經被中繼設備修改成UDP 67(而原始報文裏則爲UDP 68),交換機一旦檢測到這點變化,就會自動忽略,正常轉發DHCP各類報文,不做 DHCP Snooping 額外處理。

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