當終端裝置和DHCP伺服器不在同一廣播域内的時候,中間裝置就需要指定一個位址來将廣播包轉發出去,即需要設定helper_address來實作中繼。
而事實上,在企業中一般隻需要一個或者兩個DHCP伺服器提供備援就已足夠,完全沒有必要在每一個廣播域單獨設定一台DHCP伺服器,這樣做既增加了成本,也更不利于管理。
要知道這個功能如何實作,我們先來了解一下DHCP伺服器的簡單運作原理:
DHCP伺服器想要給終端裝置配置設定IP資訊,需要擷取兩個重要的資訊,終端所在的網段(即掩碼)、對應裝置的MAC位址。DHCP依靠前者來判斷應當給對應裝置配置設定那個位址池中的位址,然後依靠後者來維護IP和MAC之間的映射好以此來保證不會出現IP位址沖突。
了解了DHCP的簡單運作原理,我們再來說配置了ip helper-address指令之後的路由器工作過程:
DHCP用戶端發送請求,由于沒有ip位址,是以自己的源IP位址為0.0.0.0,而且也不知道目的DHCP伺服器的位址,是以為廣播255.255.255.255,即源IP為0.0.0.0;目的IP位址為255.255.255.255;源MAC位址為自己MAC位址;目的MAC位址為FF:FF:FF:FF:FF:FF
當路由器接收到該資訊,則對其進行替換,用自己的接口位址(接收到資料報的接口,也就是終端所在網段網關)來取代源位址0.0.0.0,并且用ip help-address 指令中指定的位址來取代目的位址255.255.255.255,即源IP為(網關位址);目的IP位址為(ip helper-address指定位址);源MAC位址為終端MAC位址;目的MAC位址為(ip helper-address指定位址對應MAC位址)
如此,當DHCP伺服器接收到路由器轉發來的資訊後,同樣可以獲得相應的資訊來确定網段和MAC位址與IP位址的映射,故而可以讓終端獲得相應的資訊。