深夜八一八-DHCP Relay


因為疫情的緣故,小乙在家宅了整整一個月,胖的跟zhu

深夜八一八-DHCP Relay

老黃昨日還在追問我最近是不是胖寫不動公眾號了?

深夜八一八-DHCP Relay

那就給大家深夜八一八-DHCP Relay。相信很多正在學習網絡的同學,對DHCP這個協議即熟悉又陌生,這個協議是我們正常生活中想要通過終端設備上網必備的協議。而今天我們就來好好嘮嘮這個既熟悉也陌生的上網協議。

動態主機配置協議DHCP(Dynamic Host Configuration Protocol)是一種用於集中對用戶IP地址進行動態管理和配置的技術。而在我們HCIA階段學習該知識的時候,給的場景是很簡單的----DHCP client和DHCP server在同一網段;而今天我們來普及下DHCP client和DHCP server不在同網段的場景下,如何讓DHCP client可以獲得ipv4地址的。

深夜八一八-DHCP Relay

如上圖所示:假如DHCP client與DHCP server中間的路由器設備沒有開啟DHCP Relay功能,那麼DHCP client要獲取ipv4地址此時會發送DHCP discover廣播報文,此時由於中間的路由器是隔離廣播的,那麼此時DHCP client發送的discover廣播報文是無法通過這個中間路由器傳遞給DHCP server的。這就導致DHCP client永遠無法從DHCP server中獲得ipv4地址的。那麼為了解決這個問題,我們就讓中間的路由器設備開啟DHCP Relay中繼功能,當中間路由器開啟了中繼功能後,其會將client發來的discover廣播報文轉換為單播報文轉發給DHCP server,此後所有的DHCP client與中繼路由器之間相互發送的廣播報文,在經過中繼路由器之後,中繼路由器與DHCP server之間都是以單播的方式相互交流。

接下來我們通過一個具體的實驗來給大家演示上面的理論


深夜八一八-DHCP Relay

實驗場景描述:DHCP server和DHCP Relay之間屬於10.1.1.0/24網段,DHCP Relay和DHCP client之間屬於192.168.0.0/24網段,現在的目的就是讓DHCP client PC1可以從DHCP server那裡獲得一個192.168.0.x/24的ipv4地址,通過該地址可以進行上網。

此時我們在R1的接口G0/0/1抓包

深夜八一八-DHCP Relay

此時我們在R2的接口G0/0/2抓包

深夜八一八-DHCP Relay

如上面兩個抓包截圖所示:DHCP Relay和DHCP client之間discover和Request報文都是廣播,而這兩個報文在DHCP server和DHCP Relay之間確實單播報文,這正好驗證了前面關於報文的理論的。那麼PC1到底有沒有獲得192.168.0.x/24的ipv4地址呢?是怎麼獲得的呢?PC1發送discover廣播報文到了dhcp中繼路由器R1上,dhcp中繼路由器R1由將該discover報文變為單播報文傳給了dhcp server上,而DHCP server通過這個discover報文中的“relay agent ip address=192.168.0.1“並且自己的服務器也有192.168.0.0/24的地址池。此時dhcp server就知道該給DHCP client分配一個192.168.0.x/24的地址了。如下圖所示,最終PC1獲得了一個192.168.0.254/24的地址。

深夜八一八-DHCP Relay

最後我給大家留兩個思考題:

1.DHCP server是通過什麼判斷應該分配哪個網段的ipv4地址?

2.根據我們實驗client在192.168.0.0/24這個網段中,而服務器在10.1.1.0/24這個網段中,那麼server怎麼知道應該給客戶端分配是192.168.0.0/24這個網段ip地址而不是分配10.1.1.0/24這個網段的ip地址的呢?

深夜八一八-DHCP Relay


分享到:


相關文章: