DHCP 出現(xiàn)
電腦或手機(jī)需要 IP 地址才能上網(wǎng)。大劉有兩臺(tái)電腦和兩臺(tái)手機(jī),小美有一臺(tái)筆記本電腦、一臺(tái)平板電腦和兩臺(tái)手機(jī),老王、阿麗、敏敏也有幾臺(tái)終端設(shè)備。如果為每臺(tái)設(shè)備手動(dòng)配置 IP 地址,那會(huì)非常繁瑣,一點(diǎn)兒也不方便。特別是手機(jī)、筆記本電腦、平板電腦等設(shè)備,每移動(dòng)到一個(gè)新的地方,接入不同的網(wǎng)絡(luò),都要重新設(shè)置 IP 地址,實(shí)在是太麻煩了。
于是就有了 DHCP 協(xié)議,會(huì)自動(dòng)配置設(shè)備的網(wǎng)絡(luò)參數(shù),包括 IP 地址、子網(wǎng)掩碼、網(wǎng)關(guān)地址、DNS 服務(wù)器等,替代手動(dòng)配置。還能統(tǒng)一 IP 地址分配,方便網(wǎng)絡(luò)管理。
DHCP 簡(jiǎn)介
DHCP 協(xié)議是從 BOOTP 協(xié)議發(fā)展而來(lái)。但 BOOTP 運(yùn)行在相對(duì)靜態(tài)的環(huán)境中,每臺(tái)設(shè)備配置專(zhuān)門(mén)的 BOOTP 參數(shù)文件,該文件會(huì)在相當(dāng)長(zhǎng)的時(shí)間內(nèi)保持不變。DHCP 從以下兩方面對(duì) BOOTP 進(jìn)行了擴(kuò)展:
- DHCP 允許設(shè)備動(dòng)態(tài)地獲取 IP 地址,而不是靜態(tài)指定每臺(tái)主機(jī)地址。
- DHCP 能夠分配其它的配置參數(shù),客戶(hù)端僅用一個(gè)消息就獲取它所需要的所有配置信息。
大劉他們的設(shè)備使用 DHCP 功能后,只要連接到網(wǎng)絡(luò),就可以進(jìn)行 TCP/IP 通信。對(duì)于路由器和交換機(jī),通常是手動(dòng)配置 IP 地址等參數(shù)。
DHCP 是一種 Client/Server 模式的網(wǎng)絡(luò)協(xié)議,由 DHCP Client 向 DHCP Server 提出配置申請(qǐng),DHCP Server 返回為 DHCP Client 分配的配置信息。這里的 Client 和 Server 是應(yīng)用程序,可以運(yùn)行在電腦、服務(wù)器、路由器等設(shè)備上。
舉個(gè)栗子:
大劉的電腦開(kāi)機(jī)后,自動(dòng)運(yùn)行 DHCP Client ,DHCP Client 主動(dòng)向其它設(shè)備上的 DHCP Server 提出請(qǐng)求,DHCP Server 根據(jù)預(yù)先配置的策略,返回相應(yīng) IP 配置信息,DHCP Client 使用獲得的 IP 配置信息與其它設(shè)備進(jìn)行通信。
DHCP 分配機(jī)制
DHCP 提供了兩種地址分配機(jī)制,可以根據(jù)網(wǎng)絡(luò)需求為不同的 Client 選擇不同的分配策略。
- 動(dòng)態(tài)分配機(jī)制:通過(guò) DHCP 為 Client 分配一個(gè)有使用期限的 IP 地址。如果 Client 沒(méi)有及時(shí)續(xù)約,到達(dá)使用期限后,這個(gè)地址可能會(huì)被其它 Client 使用。絕大多數(shù) Client 使用的都是這種動(dòng)態(tài)分配的地址。
- 靜態(tài)分配機(jī)制:通過(guò) DHCP 為特定的 Client 分配固定的 IP 地址。固定 IP 地址可以永久使用, Client 通常是打印機(jī)、服務(wù)器等設(shè)備。
在實(shí)際情況中,我們發(fā)現(xiàn) DHCP Client 重啟后,也能獲得相同的 IP 地址。DHCP Server 為 DHCP Client 分配 IP 地址時(shí),采用如下的順序:
- DHCP Server 中與 DHCP Client 的 mac 地址靜態(tài)綁定的 IP 地址;
- DHCP Client 曾經(jīng)使用過(guò)的 IP 地址;
- 最先找到的可用 IP 地址。
如果沒(méi)找到可用的 IP 地址,就依次查詢(xún)超過(guò)租期、發(fā)生沖突的 IP 地址,如果找到就進(jìn)行分配,否則報(bào)錯(cuò)處理。
DHCP 系統(tǒng)組成
DHCP 系統(tǒng)由 DHCP Server( DHCP 服務(wù)器)、DHCP Client( DHCP 客戶(hù)端)、DHCP Relay( DHCP 中繼)等組成。
- DHCP Server
- DHCP Server 提供網(wǎng)絡(luò)參數(shù)給 DHCP Client ,通常是一臺(tái)提供 DHCP 服務(wù)功能的服務(wù)器或網(wǎng)絡(luò)設(shè)備(路由器或三層交換機(jī))。比如:家里用的無(wú)線(xiàn)路由器。
- DHCP Client
- DHCP Client 通過(guò) DHCP Server獲取網(wǎng)絡(luò)參數(shù),通常是一臺(tái)主機(jī)或網(wǎng)絡(luò)設(shè)備。比如:大劉的電腦、小美的手機(jī)。
- DHCP Relay
- 通常情況下,DHCP 采用廣播方式實(shí)現(xiàn)報(bào)文交互,DHCP 服務(wù)僅限在本地網(wǎng)段使用。如果需要跨網(wǎng)段實(shí)現(xiàn) DHCP ,那么使用 DHCP Relay 技術(shù)實(shí)現(xiàn)。
- 在 DHCP Server 和 DHCP Client 之間轉(zhuǎn)發(fā)跨網(wǎng)段 DHCP 報(bào)文的設(shè)備,通常是三層網(wǎng)絡(luò)設(shè)備。
DHCP 基本流程
DHCP 協(xié)議報(bào)文采用 UDP 方式封裝,DHCP Server 偵聽(tīng)的端口號(hào)是 67 ,DHCP Client 的端口號(hào)是 68 。DHCP 設(shè)備通過(guò)發(fā)送和接收 UDP 67 和 UPD 68 端口的報(bào)文進(jìn)行協(xié)議交互。DHCP 的基本工作流程分為 4 個(gè)階段,即發(fā)現(xiàn)階段、提供階段、請(qǐng)求階段、確認(rèn)階段。我們假設(shè)大劉的 PC 是一臺(tái)新電腦,下面將描述 PC 第一次是如何通過(guò) DHCP 獲取 IP 地址的。
為方便描述,DHCP Server 簡(jiǎn)稱(chēng) 小 S ,DHCP Client 簡(jiǎn)稱(chēng) 小 C 。
1、發(fā)現(xiàn)階段
小 C 在本地網(wǎng)段中廣播一個(gè) DHCP Discover 報(bào)文,目的尋找能夠分配 IP 地址的 小 S 。
2、提供階段
本地網(wǎng)段的 小 S 收到 DHCP Discover 報(bào)文后,回應(yīng) DHCP Offer 報(bào)文。DHCP Offer 報(bào)文包含了可用 IP 地址和其它網(wǎng)絡(luò)參數(shù)。
小 C 通過(guò)對(duì)比 Discover 報(bào)文和 Offer 報(bào)文中的 xid 字段是否相同,來(lái)判斷 Offer 報(bào)文是不是發(fā)給自己的。
3、請(qǐng)求階段
小 C 會(huì)收到 小 S 發(fā)送的 DHCP Offer 報(bào)文。如果有多個(gè) 小 S ,那么每個(gè) 小 S 都會(huì)回應(yīng) DHCP Offer 報(bào)文。通常 小 C 會(huì)選擇最先收到的 Offer 報(bào)文,并廣播 DHCP Request 報(bào)文來(lái)表明哪個(gè) 小 S 被選擇,其余 小 S 就涼涼了。
如果 小 C 在一定時(shí)間后一直沒(méi)收到 DHCP Offer 報(bào)文,那么它就會(huì)重新發(fā)送 DHCP Discover 報(bào)文。
4、確認(rèn)階段
小 S 收到 DHCP Request 廣播報(bào)文后,發(fā)送 DHCP Ack 報(bào)文作為回應(yīng),其中包含 小 C 的網(wǎng)絡(luò)參數(shù)。DHCP Ack 報(bào)文和之前 DHCP Offer 報(bào)文的參數(shù)不能有沖突,否則 小 S 會(huì)回應(yīng)一個(gè) DHCP Nak 報(bào)文。
當(dāng) 小 C 收到 DHCP Ack 報(bào)文后,會(huì)發(fā)送免費(fèi) ARP 報(bào)文進(jìn)行探測(cè),目的地址為獲得的 IP 地址,如果探測(cè)此地址沒(méi)有被使用,那么 小 C 就會(huì)使用這個(gè)地址,并完成配置。
DHCP 租期
從 DHCP 協(xié)議上看,小 S 才有 IP 地址的所有權(quán),而 小 C 只有 IP 地址的使用權(quán)。小 S 每次給 小 C 分配一個(gè) IP 地址時(shí),會(huì)約定一個(gè) IP 地址的租期,通常是 24 小時(shí)。在租期內(nèi),小 C 才能使用相應(yīng)的 IP 地址。當(dāng)租期到期后,小 C 將不能繼續(xù)使用這個(gè) IP 地址。當(dāng)然了,在租期還沒(méi)到期的時(shí)候,小 C 是可以申請(qǐng)續(xù)租這個(gè) IP 地址的。
T1 時(shí)刻是租期到一半的時(shí)候,T2 時(shí)刻是租期到 87.5% 的時(shí)候。在 T1 時(shí)刻 小 C 會(huì)單播一個(gè) DHCP Request 報(bào)文給 小 S ,請(qǐng)求續(xù)租 IP 地址。如果 小 C 收到了 DHCP Ack 回應(yīng)報(bào)文,則說(shuō)明續(xù)租成功。
如果直到 T2 時(shí)刻,小 C 都未收到 DHCP Ack 回應(yīng)報(bào)文,那么會(huì)廣播發(fā)送一個(gè) DHCP Request 報(bào)文,繼續(xù)請(qǐng)求續(xù)租 IP 地址。如果 小 C 收到了 DHCP Ack 回應(yīng)報(bào)文,則說(shuō)明續(xù)租成功。
如果直到租期到期, 小 C 都未收到 DHCP Ack 回應(yīng)報(bào)文,那么必須停止使用原來(lái)的 IP 地址。 小 C 將從發(fā)現(xiàn)階段開(kāi)始,重新來(lái)申請(qǐng)一個(gè) IP 地址。
DHCP Relay
動(dòng)態(tài)獲取 IP 地址的過(guò)程中,使用廣播方式發(fā)生報(bào)文,因此 DHCP 只適用于 小 C 和 小 S 在同一個(gè)子網(wǎng)內(nèi)的情況。如果為每個(gè)網(wǎng)段配置一個(gè) 小 S ,這顯然太浪費(fèi)了。
實(shí)際上還有 DHCP Relay 這種角色。小 C 通過(guò) DHCP Relay 實(shí)現(xiàn)跨網(wǎng)段與 小 S 通信,獲取 IP 地址。這樣,多個(gè)子網(wǎng)上的 小 C 可以使用同一個(gè) 小 S ,既節(jié)省成本,又方便集中管理。
DHCP Relay 的工作原理如下:
- 小 C 發(fā)送 DHCP Discover 或 DHCP Request 廣播報(bào)文,具有 DHCP Relay 功能的網(wǎng)絡(luò)設(shè)備收到后,根據(jù)配置將報(bào)文單播給指定的 小 S ;
- 小 S 進(jìn)行 IP 地址的分配,單播發(fā)送給 DHCP Relay ,DHCP Relay 再將配置信息廣播給 小 C ,完成對(duì) 小 C 的動(dòng)態(tài)配置。
DHCP 協(xié)議報(bào)文
前面的內(nèi)容有提到 DHCP 的一些報(bào)文類(lèi)型,現(xiàn)在講講 DHCP 主要的 8 種報(bào)文類(lèi)型。常見(jiàn)的 5 種報(bào)文類(lèi)型有:DHCP Discover 、DHCP Offer 、DHCP Request 、DHCP Ack 和 DHCP Release ,用得少的 3 種報(bào)文類(lèi)型有:DHCP Nak 、DHCP Decline 和 DHCP Inform 。
- DHCP Discover 報(bào)文
- 它是 DHCP Client 首次接入網(wǎng)絡(luò),DHCP 交互過(guò)程的第一個(gè)報(bào)文,用來(lái)尋找 DHCP Server的請(qǐng)求報(bào)文。
- DHCP Offer 報(bào)文
- 它是 DHCP Server 用來(lái)回應(yīng) DHCP Discover 報(bào)文的,并攜帶網(wǎng)絡(luò)參數(shù),包括:IP 地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)、DNS 服務(wù)器等。
- DHCP Request 報(bào)文
- 它是 DHCP Client 發(fā)送的報(bào)文,有三種使用場(chǎng)景:根據(jù)策略選擇相應(yīng)的 DHCP Server,并回應(yīng) DHCP Offer 報(bào)文;DHCP Client 非首次接入網(wǎng)絡(luò),直接發(fā)送 DHCP Request 報(bào)文來(lái)申請(qǐng)之前使用過(guò)的 IP 地址等參數(shù);當(dāng) IP 地址的租約到期后,發(fā)送 DHCP Request 進(jìn)行租期更新。
- DHCP Ack 報(bào)文
- 它是 DHCP Server 對(duì) DHCP Request 報(bào)文的回應(yīng)報(bào)文,進(jìn)行最終確認(rèn)。DHCP Client 收到這個(gè)報(bào)文后,才能獲得 IP 地址和相應(yīng)網(wǎng)絡(luò)參數(shù)。
- DHCP Nak 報(bào)文
- 它也是 DHCP Server 對(duì) DHCP Request 報(bào)文的回應(yīng)報(bào)文,當(dāng) DHCP Request 報(bào)文中的各個(gè)參數(shù)都正確時(shí),回應(yīng) DHCP Ack 報(bào)文,否則回應(yīng) DHCP Nak 報(bào)文,告訴 DHCP Client 禁止使用獲得的 IP 地址。
- DHCP Decline 報(bào)文
- 當(dāng) DHCP Client 收到 DHCP Ack 報(bào)文后,還會(huì)發(fā)送免費(fèi) ARP 報(bào)文,確認(rèn)申請(qǐng)的 IP 地址是否已經(jīng)在網(wǎng)絡(luò)上使用了。如果 IP 地址已經(jīng)被其它 Client 使用,那么 DHCP Client 發(fā)送 DHCP Decline 報(bào)文,拒絕分配的 IP 地址,并重新向 DHCP Server 申請(qǐng)地址。
- DHCP Release 報(bào)文
- 當(dāng) DHCP Client 想要釋放獲得的 IP 地址時(shí),向 DHCP Server 發(fā)送 DHCP Release 報(bào)文,DHCP Server 收到報(bào)文后,可將這個(gè) IP 地址分配給其它的 Client 。
- DHCP Inform 報(bào)文
- DHCP Client 通過(guò)手動(dòng)方式獲得 IP 地址后,還想向 DHCP Server 獲取更多網(wǎng)絡(luò)參數(shù)時(shí),比如:默認(rèn)網(wǎng)關(guān)地址、DNS 服務(wù)器地址,DHCP Client 就向 DHCP Server 發(fā)送 DHCP Inform 報(bào)文進(jìn)行申請(qǐng)。
DHCP 狀態(tài)機(jī)
如果把功能各異的 8 種報(bào)文串起來(lái),就是整個(gè) DHCP 協(xié)議交互流程。前面講的 4 種階段(發(fā)現(xiàn)、提供、請(qǐng)求、確認(rèn))不能完全展現(xiàn)出來(lái),這就需要使用 DHCP 協(xié)議的狀態(tài)機(jī)。狀態(tài)指出下一步使用的報(bào)文類(lèi)型,狀態(tài)轉(zhuǎn)換是通過(guò)報(bào)文的接收、發(fā)送或超時(shí)。下面是 Client 的狀態(tài)機(jī)。
Client 從 INIT 狀態(tài)開(kāi)始,廣播 DHCP Discover 報(bào)文。在選擇狀態(tài)時(shí),它收到 DHCP Offer 報(bào)文,并決定使用哪個(gè)地址和 Server 。做出選擇后,通過(guò) DHCP Request 報(bào)文進(jìn)入請(qǐng)求狀態(tài)。如果分配的地址和曾使用過(guò)的地址不一致,那么回應(yīng) DHCP Nak 報(bào)文進(jìn)行拒絕,并返回 INIT 狀態(tài);如果分配的地址已經(jīng)被占用,那么回應(yīng) DHCP Decline 報(bào)文進(jìn)行拒絕,也返回到 INIT 狀態(tài)。通常是收到一個(gè)需要的地址,回應(yīng) DHCP Ack 報(bào)文,獲得租期超時(shí)值 T1 和 T2 ,并進(jìn)入綁定狀態(tài),這個(gè)時(shí)候就可以使用這個(gè)地址直到租期到期。當(dāng) T1 到期時(shí),進(jìn)入更新狀態(tài)并進(jìn)行續(xù)租申請(qǐng)。如果續(xù)租成功,那么可以收到 DHCP Ack 報(bào)文,并返回到綁定狀態(tài);如果續(xù)租不成功,那么在 T2 到期時(shí),再次進(jìn)行續(xù)租申請(qǐng)。如果租期最終到期,那么 Client 將禁止使用所租用的地址,并返回到 INIT 狀態(tài)。
DHCP 網(wǎng)絡(luò)實(shí)戰(zhàn)
DHCP 協(xié)議是為解決網(wǎng)絡(luò)問(wèn)題而生,現(xiàn)在我們就來(lái)模擬實(shí)際環(huán)境,動(dòng)手操作,驗(yàn)證下 DHCP 的功能。
DHCP Server 示例
網(wǎng)絡(luò)拓?fù)?/h1>
實(shí)驗(yàn)要求
- RT(路由器)配置 DHCP Server ,PC 動(dòng)態(tài)獲取 IP 地址等網(wǎng)絡(luò)參數(shù)
操作步驟
配置思路:
- 在 RT 上開(kāi)啟 DHCP 功能,
- 創(chuàng)建一個(gè)地址池,
- 配置地址池的相關(guān)參數(shù),
- 在 RT 的接口下引用地址池,實(shí)現(xiàn) DHCP Server 功能。
配置命令:
使用 DHCP 功能之前,先要開(kāi)啟 DHCP 功能。系統(tǒng)視圖下,使用命令 dhcp enable 啟動(dòng) DHCP 功能。
動(dòng)態(tài)分配 IP 地址,就需要有多個(gè)可分配的 IP 地址,使用 ip pool ip-pool-name 命令來(lái)創(chuàng)建全局地址池,ip-pool-name 表示地址池的名稱(chēng)。
在全局地址池視圖下,通過(guò)命令 network ip-address [ mask { mask | mask-length } ] 配置可分配的 IP 地址段。mask { mask | mask-length } 表示子網(wǎng)掩碼,通常根據(jù)設(shè)備數(shù)量來(lái)確定掩碼長(zhǎng)度。
有了 IP 地址和子網(wǎng)掩碼,再加上默認(rèn)網(wǎng)關(guān),終端設(shè)備就能網(wǎng)絡(luò)互通了。在全局地址池視圖下,使用命令 gateway-list ip-address 配置網(wǎng)關(guān) IP 地址。
網(wǎng)絡(luò)互通,還不能正常訪(fǎng)問(wèn)網(wǎng)站,需要配置 DNS 服務(wù)器,用于域名解析。在全局地址池視圖下,使用 dns-list ip-address 配置 DNS 服務(wù)器的 IP 地址。
地址池配置中,常用的可選命令如下,可根據(jù)需求進(jìn)行選擇性設(shè)置。
lease { day day [ hour hour [ minute minute ] ] | unlimited } :配置 IP 地址的租期,默認(rèn)租期是 1 天。
excluded-ip-address start-ip-address [ end-ip-address ] :在可分配的地址池中,設(shè)置不分配的 IP 地址。比如:地址池是 192.168.100.0/24 ,可設(shè)置 192.168.100.1 - 192.168.100.10 不參與地址分配。
static-bind ip-address ip-address mac-address mac-address :為 Client 固定分配一個(gè) IP 地址。
配置完地址池,還需要進(jìn)行引用,DHCP Server 功能就能正常使用了。在 RT 的接口下配置引用,命令為 dhcp select global 。
功能驗(yàn)證
配置完成后,理論上是 DHCP 功能正常工作了,實(shí)際情況的話(huà),可通過(guò)命令 display ip pool name pool-name used,查看地址池的配置情況,和地址分配情況。
在 RT 上查看 DHCP Server 地址分配狀態(tài)。
同時(shí)也在 PC 上查看動(dòng)態(tài)獲取地址情況,進(jìn)行雙向驗(yàn)證。
抓包還可以看到 DHCP 報(bào)文交互的詳細(xì)過(guò)程,同時(shí)也是檢驗(yàn)理論知識(shí)是否正確。
這里我們發(fā)現(xiàn)抓包看到的是 DHCP Offer 單播報(bào)文,而前面介紹的時(shí)候,DHCP Offer 是廣播報(bào)文。其實(shí) DHCP Offer 報(bào)文有可能是單播,也有可能是廣播。DHCP 在報(bào)文的標(biāo)志字段有一個(gè)廣播位,如果 Client 支持接收 Offer 單播報(bào)文,那么 Client 就會(huì)將發(fā)送報(bào)文中的廣播位設(shè)為 0 ,否則為 1 。
DHCP Relay 示例
網(wǎng)絡(luò)拓?fù)?/h1>
實(shí)驗(yàn)要求
- DHCP Client 和 DHCP Server 在不同網(wǎng)段,DHCP Client 通過(guò) DHCP Relay 獲取到 IP 地址等網(wǎng)絡(luò)參數(shù)。
操作步驟
- PC( DHCP Client )開(kāi)啟 DHCP 功能;
- RT1( DHCP Relay )使用 dhcp select relay 命令開(kāi)啟 DHCP Relay 功能,在 G0/0/1 口下使用 dhcp relay server-ip ip-address 命令,配置 DHCP Server 的 IP 地址;
- RT2(DHCP Server)開(kāi)啟 DHCP 功能,創(chuàng)建地址池并配置相關(guān)參數(shù),在接口下引用地址池,實(shí)現(xiàn) DHCP Server 功能。
功能驗(yàn)證
PC 端能獲取到 IP 配置,并且獲取的配置正確。
在 RT1 的 G0/0/1 抓包,查看 DHCP Client 和 DHCP Relay 的報(bào)文交互過(guò)程。
在 RT1 的 G0/0/0 抓包,查看 DHCP Server 和 DHCP Relay 的報(bào)文交互過(guò)程。
DHCP 報(bào)文格式
如果想要更深入的了解 DHCP 協(xié)議,那就要看它的報(bào)文格式。DHCP 設(shè)備通過(guò)識(shí)別報(bào)文內(nèi)容,實(shí)現(xiàn)協(xié)議功能。
- op(操作類(lèi)型):表示報(bào)文的格式。當(dāng)值為 1 時(shí),表示客戶(hù)端的請(qǐng)求報(bào)文;當(dāng)值為 2 時(shí),表示服務(wù)器的響應(yīng)報(bào)文。
- htype(硬件類(lèi)型):不同的硬件類(lèi)型取不同的值,最常見(jiàn)的以太網(wǎng),值是 1 。
- hlen(硬件地址長(zhǎng)度):表示硬件地址長(zhǎng)度,以太網(wǎng)的值是 6 ,也就是 MAC 地址的長(zhǎng)度。
- hops(跳數(shù)):DHCP 報(bào)文經(jīng)過(guò)的 DHCP 中繼的數(shù)量。
- xid(交互 ID ):DHCP 客戶(hù)端取的隨機(jī)值,收到 DHCP 服務(wù)器的響應(yīng)報(bào)文時(shí),查看 xid 值是否相同,來(lái)判斷報(bào)文是否是發(fā)送給自己的。
- secs(客戶(hù)端啟動(dòng)秒數(shù)):記錄 IP 地址的使用時(shí)間。
- flags(標(biāo)志):廣播響應(yīng)標(biāo)志位,當(dāng)值為 0 時(shí),表示服務(wù)器以單播形式發(fā)送響應(yīng)報(bào)文;當(dāng)值為 1 時(shí),服務(wù)器以廣播形式發(fā)送響應(yīng)報(bào)文。
- ciaddr(客戶(hù)端 IP 地址):客戶(hù)端的 IP 地址,可以是分配的地址,也可以是正在使用的地址,還可以是的 0.0.0.0 。0.0.0.0 是客戶(hù)端初始狀態(tài)沒(méi)有地址的時(shí)候,僅用于臨時(shí)通信,不是有效的地址。
- yiaddr(你的 IP 地址):當(dāng)服務(wù)器發(fā)送響應(yīng)報(bào)文時(shí),將分配給客戶(hù)端的 IP 地址填入這個(gè)字段。
- siaddr(服務(wù)器 IP 地址):用來(lái)標(biāo)識(shí)服務(wù)器的 IP 地址。
- giaddr(中繼設(shè)備 IP 地址):表示 DHCP 中繼的 IP 地址,服務(wù)器通過(guò)識(shí)別這個(gè)字段來(lái)判斷出客戶(hù)端的網(wǎng)段地址,從而選擇合適的地址池,為客戶(hù)端分配該網(wǎng)段的 IP 地址。
- chaddr(客戶(hù)端硬件地址):用來(lái)標(biāo)識(shí)客戶(hù)端的硬件地址,當(dāng)客戶(hù)端發(fā)送廣播發(fā)現(xiàn)報(bào)文時(shí),這個(gè)字段就是自己的硬件地址。
- sname(服務(wù)器名):可選項(xiàng),DHCP 服務(wù)器填寫(xiě)這個(gè)字段。
- file(引導(dǎo)文件名):可選項(xiàng),DHCP 服務(wù)器填寫(xiě)這個(gè)字段。
- options(可選項(xiàng)):可選項(xiàng),DHCP 客戶(hù)端獲取網(wǎng)絡(luò)參數(shù),DHCP 服務(wù)器提供網(wǎng)絡(luò)參數(shù),都是使用的這個(gè)字段。內(nèi)容有很多,例如:租期、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)地址、DNS 服務(wù)器地址等。
拿著 DHCP 報(bào)文格式,就可以看懂抓包獲取的報(bào)文內(nèi)容。
DHCP Discover 報(bào)文
DHCP Offer 報(bào)文
DHCP Request 報(bào)文
DHCP Ack 報(bào)文
飲水思源:
HCNA網(wǎng)絡(luò)技術(shù)學(xué)習(xí)指南 - 華為技術(shù)有限公司
路由交換技術(shù) - 杭州華三通信技術(shù)有限公司
TCP/IP詳解 卷1:協(xié)議 - Kevin R.Fall
高級(jí)網(wǎng)絡(luò)技術(shù) - 田果
圖解TCP/IP - 竹下隆史