DHCP 服务原理:Snooping和Relay
1、DHCP基礎(chǔ)
? ??1.1 發(fā)現(xiàn)階段,即DHCP客戶端發(fā)現(xiàn)DHCP服務(wù)器的階段。
? ??1.2 提供階段,即DHCP服務(wù)器提供IP地址的階段。
? ??1.3選擇階段,即DHCP客戶端選擇IP地址的階段。
? ??1.4 確認(rèn)階段,即DHCP服務(wù)器確認(rèn)所分配IP地址的階段。
2、DHCP Snooping
3、DHCP Relay(中繼)
4、一個(gè)關(guān)于DHCP Snooping與 DHCP Relay的小思考
1、DHCP 基礎(chǔ)
? ? ? ?DHCP 全稱動(dòng)態(tài)主機(jī)配置協(xié)議(Dynamic Host Configuration Protocol),用于給終端設(shè)備如 PC、IPad、手機(jī)等自動(dòng)分配 IP地址。
? ? ? ?工作過程簡潔高效,易于掌握,首先借著一張圖介紹 DHCP 基本的工作原理:
? ? ? ?從圖上可以清晰看出,客戶端通過 DHCP 協(xié)議獲取IP地址等信息的過程可以分為四個(gè)步驟:
1.1 發(fā)現(xiàn)階段,即 DHCP 客戶端發(fā)現(xiàn) DHCP 服務(wù)器的階段。
? ? ? ?DHCP客戶端發(fā)送DHCP DISCOVER報(bào)文來發(fā)現(xiàn)DHCP服務(wù)器。由于DHCP客戶端不知道DHCP服務(wù)器的IP地址,所以DHCP客戶端以廣播方式發(fā)送DHCP DISCOVER報(bào)文(目的IP地址為255.255.255.255,源IP地址為0.0.0.0),同一網(wǎng)段內(nèi)所有DHCP服務(wù)器都能收到此報(bào)文。
1.2 提供階段,即 DHCP 服務(wù)器提供 IP 地址的階段。
? ? ? ?服務(wù)器接收到 DHCP DISCOVER 報(bào)文后,選擇跟接收?DHCP DISCOVER報(bào)文接口的 IP 地址處于同一網(wǎng)段的地址池,并且從中選擇一個(gè)可用的IP地址,然后通過DHCP OFFER報(bào)文發(fā)送給DHCP客戶端。DHCP OFFER 報(bào)文里面攜帶了希望分配給指定MAC地址客戶端的IP地址(DHCP報(bào)文中的 yiaddr 字段)及其租期等配置參數(shù)。
1.3選擇階段,即DHCP客戶端選擇IP地址的階段。
? ? ? ?因?yàn)镈HCP DISCOVER報(bào)文是廣播發(fā)送的,所以如果同一網(wǎng)段內(nèi)存在多個(gè)DHCP服務(wù)器,接收到DHCP DISCOVER報(bào)文的服務(wù)器都會(huì)回應(yīng)DHCP OFFER報(bào)文。如果有多個(gè)DHCP服務(wù)器向DHCP客戶端回應(yīng)DHCP OFFER報(bào)文,則DHCP客戶端一般只接收第一個(gè)收到的DHCP OFFER報(bào)文。
? ? ? ?以廣播方式發(fā)送DHCP REQUEST報(bào)文,是為了通知所有的DHCP服務(wù)器,它將選擇某個(gè)DHCP服務(wù)器提供的IP地址,其他DHCP服務(wù)器可以重新將曾經(jīng)分配給客戶端的IP地址分配給其他客戶端。
1.4 確認(rèn)階段,即DHCP服務(wù)器確認(rèn)所分配IP地址的階段。
? ? ? ?當(dāng)DHCP服務(wù)器收到 DHCP 客戶端發(fā)送的 DHCP REQUEST 報(bào)文后,DHCP服務(wù)器回應(yīng) DHCP ACK 報(bào)文,表示 DHCP REQUEST?報(bào)文中請(qǐng)求的IP地址分配給客戶端使用。
小結(jié):DHCP工作過程四個(gè)步驟涉及四種數(shù)據(jù)包,分別是DISCOVER、OFFER、REQUEST、ACK。
2、DHCP Snooping
? ? ? 在企業(yè)實(shí)際網(wǎng)絡(luò)環(huán)境中,經(jīng)常會(huì)遇到電腦獲取到錯(cuò)誤IP地址等情況,導(dǎo)致無法正常上網(wǎng),這是因?yàn)榫W(wǎng)絡(luò)中非法接入了DHCP服務(wù)器(最常見的非法DHCP服務(wù)器就是TP-link家用路由器)。
這時(shí)候就需要在網(wǎng)絡(luò)交換機(jī)上配置DHCP snooping功能來防止非法DHCP服務(wù)器給客戶端分配IP地址。
? ? ? DHCP Snooping不論從配置上還是工作原理上也都很簡單,繼續(xù)用一張圖說明:
? ? ? 在二層網(wǎng)絡(luò)接入設(shè)備(即交換機(jī))啟用DHCP Snooping場景中,一般將與合法DHCP服務(wù)器直接連接的接口設(shè)置為信任接口(如上圖中的if1接口),其他接口設(shè)置為非信任接口(如上圖中的if2接口),啟用了DHCP Snooping功能的交換機(jī)會(huì)檢測從每個(gè)接口收到的DHCP各類數(shù)據(jù)包,如果從非信任接口收到,則丟棄;使DHCP的四種數(shù)據(jù)包僅能從信任接口轉(zhuǎn)發(fā)或者接受,從而保證DHCP客戶端只能從合法的DHCP服務(wù)器獲取IP地址,私自架設(shè)的DHCP Server仿冒者無法為DHCP客戶端分配IP地址。
小結(jié):DHCP Snooping在交換機(jī)上啟用,并將連接合法服務(wù)器的接口設(shè)置為信任接口,其他接口默認(rèn)都是非信任接口。
3、DHCP Relay(中繼)
? ? ? 上面提到的DHCP客戶端與服務(wù)器都在同一個(gè)網(wǎng)段,比較適用于家庭網(wǎng)絡(luò)和小型企業(yè)網(wǎng)絡(luò)。但在中到大型企業(yè)網(wǎng)絡(luò)中,有很多網(wǎng)段,不推薦在每個(gè)網(wǎng)段都部署一個(gè)DHCP服務(wù)器,既不經(jīng)濟(jì)也不好管理。
? ? ? ?實(shí)際情況是,在大型網(wǎng)絡(luò)中,往往采用一臺(tái)高性能的服務(wù)器當(dāng)作DHCP服務(wù)器,它只存在于一個(gè)網(wǎng)段。由于DHCP的工作高度依賴于廣播,而我們知道廣播包是不能跨網(wǎng)段傳輸?shù)?#xff0c;所以正常情況下其他網(wǎng)段的客戶端是無法獲取IP地址的。
? ? ? DHCP Relay的出現(xiàn)就是為了解決這個(gè)問題,用一張圖說明:
? ? ? 還是之前熟悉的四個(gè)步驟,不過這次在客戶端與服務(wù)器中間多了一個(gè)DHCP中繼設(shè)備,通常DHCP中繼為網(wǎng)絡(luò)中每個(gè)網(wǎng)段的網(wǎng)關(guān)設(shè)備(即啟用了DHCP Relay功能的三層交換機(jī))。
? ? ? DHCP中繼將從客戶端接收到的廣播報(bào)文轉(zhuǎn)換成單播報(bào)文,這樣報(bào)文就可以跨越網(wǎng)段進(jìn)行傳輸。單播報(bào)文意味著明確且唯一的目的IP地址,所以開啟DHCP中繼的設(shè)備必須手工明確配置DHCP服務(wù)器的IP地址。
? ? ? ?有了DHCP中繼,不論企業(yè)網(wǎng)絡(luò)中有多少個(gè)IP網(wǎng)段,我們只需要在一個(gè)網(wǎng)段部署DHCP服務(wù)器,其他網(wǎng)段則由網(wǎng)關(guān)設(shè)備開啟中繼功能,這樣整個(gè)網(wǎng)絡(luò)都能通過DHCP服務(wù)器獲取IP地址。
? ? ? 小結(jié):在三層交換機(jī)的各個(gè)網(wǎng)段開啟DHCP Relay功能,并手動(dòng)指定DHCP服務(wù)器的IP地址,可實(shí)現(xiàn)整網(wǎng)共享一臺(tái)DHCP服務(wù)器。
4、一個(gè)關(guān)于DHCP Snooping與 DHCP Relay的小思考
? ? ? 在一個(gè)部署了DHCP Relay的網(wǎng)絡(luò)中,DHCP Snooping應(yīng)該啟用哪些設(shè)備上?
如圖所示:
? ? ? 其中有三個(gè)部門即三個(gè)網(wǎng)段,而DHCP服務(wù)器是一臺(tái)路由器,不屬于其中任意一個(gè)網(wǎng)段。
在這個(gè)網(wǎng)絡(luò)中,每個(gè)包含DHCP客戶端的二層網(wǎng)絡(luò)中都應(yīng)該啟用DHCP Snooping,而僅包含 DHCP 服務(wù)器的二層網(wǎng)絡(luò)是不需要啟用DHCP Snooping的。
? ? ? 備注:客戶端二層網(wǎng)絡(luò)啟用 DHCP Snooping 很好理解,而 DHCP 服務(wù)器二層網(wǎng)絡(luò)無需啟用 DHCP Snooping 的背后原因稍顯復(fù)雜。
具體原因是當(dāng)部署了DHCP Relay后,DHCP 服務(wù)器收到的 DHCP 各種報(bào)文一定是中繼設(shè)備轉(zhuǎn)換后的單播報(bào)文,單播報(bào)文有明確且唯一的目的IP,這時(shí)就不會(huì)存在仿冒 DHCP 服務(wù)器的問題。
? ? ? 而實(shí)際上如果真的在 DHCP 服務(wù)器二層網(wǎng)絡(luò)中的交換機(jī)上啟用了 DHCP Snooping 功能,它也是不會(huì)影響DHCP正常工作的,因?yàn)閺闹欣^設(shè)備發(fā)過來的單播 DHCP 報(bào)文里面UDP層的源端口號(hào)已經(jīng)被中繼設(shè)備修改成UDP 67(而原始報(bào)文里則為UDP 68),交換機(jī)一旦檢測到這點(diǎn)變化,就會(huì)自動(dòng)忽略,正常轉(zhuǎn)發(fā)DHCP各類報(bào)文,不做 DHCP Snooping 額外處理。
總結(jié)
以上是生活随笔為你收集整理的DHCP 服务原理:Snooping和Relay的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IO虚拟化——Intel VT-d原理
- 下一篇: Linux 系统双网卡绑定 bond的7