tft每日頭條

 > 圖文

 > dhcp選項的概念

dhcp選項的概念

圖文 更新时间:2024-07-29 11:22:43
開篇

大家有沒有這樣的經曆呢?在火車站明明發現WiFi信号是滿格,卻無法訪問網絡,這就是今天的主人翁導緻的。

---------------------------------------------------------------------------------------

本文比較長,大約3000字,如果感覺對您有用,可以收藏,轉發,防止文章丢失。

---------------------------------------------------------------------------------------

BOOTP

在進入主題之前,不得不提另外一個協議,BOOTP,該協議是DHCP的前身。

在遠古時代,很多企業采用無盤工作站,具有節省成本,共享空間等特點(網吧較多),無盤的核心是通過引導請求幀(Find幀,攜帶ID号)進行廣播,服務端收到後,檢查本地數據庫是否存在該ID号,如果存在就發送機器名稱、IP地址、啟動鏡像等,此時客戶機就可以啟動了。

那麼這裡和BOOTP有什麼關系呢?最初采用RARP協議來分配地址,但由于RARP工作在二層,而且是靜态分配,如果跨網段或者網段資源用盡就需要部署更多的RARP服務器,因此BOOTP應運而生。

BOOTP通過UDP的67/68端口(67用于客戶機,68用于服務器),由RARP擴展而來,支持動态分配地址。但是不支持租期等功能,所以逐漸被淘汰

DHCP

作為BOOTP擴展而來的協議,DHCP正式拉開了計算機平民化的腳步,扪心自問,有多少人不會配置IP地址的,可以舉個手,但你可以暢遊網絡世界,原因就是DHCP服務在幫你配置。

DHCP作用

自動分配地址給終端

DHCP角色組成

  • DHCP Client
  • DHCP Relay
  • DHCP Server

DHCP報文格式

dhcp選項的概念(讓你明白的遨遊在網絡的世界裡)1

括号的數字代表字段長度,單位為字節

dhcp選項的概念(讓你明白的遨遊在網絡的世界裡)2

字段的含義

DHCP報文類型

  • DHCP DISCOVER:尋找DHCP Server
  • DHCP OFFER:服務端響應報文,并攜帶相關信息
  • DHCP request:⑴客戶端回應OFFER報文⑵客戶端重啟,發送request确認之前分發的IP地址信息⑶客戶端與IP地址靜态綁定,發送request單播或廣播更新IP地址租約
  • DHCP ACK:服務器确認客戶端的request報文,此報文為終止
  • DHCP NAK:拒絕客戶端的request響應報文
  • DHCP DECLINE:客戶端發現分配的地址發生沖突通知服務器的報文
  • DHCP RELEASE:客戶端主動IP釋放報文
  • DHCP INFORM:客戶端獲取地址後,需要向DHCP服務端獲取詳細的信息(網關、DNS等)發送的報文

DHCP報文Options字段說明

DHCP報文中的Options字段可以用來存放沒有定義的控制信息和參數。如果用戶在DHCP服務器端配置了Options字段,DHCP客戶端在申請IP地址的時候,會通過服務器端回應的DHCP報文獲得Options字段中的配置信息。

dhcp選項的概念(讓你明白的遨遊在網絡的世界裡)3

options字段格式

dhcp選項的概念(讓你明白的遨遊在網絡的世界裡)4

options字段含義

dhcp選項的概念(讓你明白的遨遊在網絡的世界裡)5

常用options選項

DHCP工作原理

初次接入網絡

dhcp選項的概念(讓你明白的遨遊在網絡的世界裡)6

初次接入網絡示意圖

① 客戶端發起DHCP DISCOVER廣播;

② 所有服務端收到DISCOVER報文後,通過DHCP OFFER(帶有IP地址、租約等信息)報文進行回複;

③ 客戶端接收到的第一個OFFER報文,以廣播的形式發送DHCP REQUEST報文(為什麼是發廣播?答案在文尾);

④ 服務端收到REQUEST報文,對比報文中的MAC地址是否有相應的租約記錄,如果有,就直接通過ACK報文确認,如果沒有相應的租約記錄或無法正常分配IP地址,則發送DHCP NAK應答,通知客戶端重新申請新的IP地址

⑤ 客戶端收到服務端發送的ACK報文後,會發送一個免費的ARP,探測該地址是否在被使用,在規定時間内未收到回應,才會使用該地址

⑥ 客戶端獲取地址後,上線之前會檢查網關的狀态,如果網段地址錯誤或者網關設備故障,DHCP将重新啟動以上過程

DHCP客戶端重新獲取分配的IP地址

dhcp選項的概念(讓你明白的遨遊在網絡的世界裡)7

獲取曾經分配的IP地址

① 客戶端再次連接到網絡中,且租約還未過期,直接發送DHCP REQUEST報文。

② 服務端收到該報文後,檢查該地址的分配情況,如果地址還未被分配,直接返回ACK,如果被使用,将返回DHCP NAK,客戶端收到後,重新通過4步完成地址申請。(服務器如何知道客戶曾經使用過什麼地址?答案在文末)

DHCP客戶端租約

租約作為DHCP的最大特點,合理的規劃租期,可以避免資源的浪費和新增用戶接入異常。

dhcp選項的概念(讓你明白的遨遊在網絡的世界裡)8

更新租約過程

DHCP客戶端租約更新過程

IP租約期達到50%(T1)時,DHCP客戶端會以單播的形式向DHCP REQUEST報文,請求更新,收到ACK,則更新租約;如果收到NAK,則重新發起申請過程;

IP租約期達到87.5%(T2)時,如果仍未收到回應,DHCP客戶端向DHCP服務器發送其IP租約更新的REQUEST報文,後續過程與T1一緻

如果租約到期,則停止使用該地址,重新發起申請IP過程。

DHCP主動釋放IP地址

DHCP客戶端不再使用自動分配地址,會主動發送DHCP RELEASE報文,通知DHCP服務器釋放地址租約。DHCP服務器會保留該客戶端的信息,以便客戶端重新申請IP地址時,重新使用這些參數。

DHCP Relay工作原理

在企業中,一般DHCP服務器都集中在一台設備,而DHCP的大部分報文都是廣播,如何跨廣播域申請呢?那麼通過中繼的方式可以實現。

dhcp選項的概念(讓你明白的遨遊在網絡的世界裡)9

DHCP中繼過程

1.DHCP中繼收到DHCP DISCOVER或DHCP REQUEST報文後:

  • 防止DHCP報文形成環路,設置HOPS的值,每經過一個中繼,将hops字段加1,當大于規定值,會丢棄該報文(hops值為TTL的值);
  • 檢查giaddr字段,如果該字段置位為0,需要将giaddr字段設置為接收請求報文的接口IP地址,如為1,保持不變;
  • DHCP請求報文的目的地址改為DHCP服務器或下一個中繼的IP地址。

2.DHCP服務器根據中繼的Relay Agent IP Address字段為客戶分配IP地址等參數,并将DHCP應答報文發送給Relay Agent IP Address字段表示的DHCP中繼,中繼收到報文後:

  • 如果Relay Agent IP Address字段不是本地接口的地址,DHCP中繼将丢棄應答報文。(Relay Agent IP Address字段用來識别與客戶端直連的接口)
  • DHCP中繼檢查報文的廣播标志位。如果廣播标志位為1,則将DHCP應答報文廣播發送給DHCP客戶端;否則将DHCP應答報文單播發送給DHCP客戶端,其目的地址為客戶端IP地址字段内容,鍊路層地址為MAC地址。

客戶端通過DHCP Relay更新租約

dhcp選項的概念(讓你明白的遨遊在網絡的世界裡)10

通過Relay方式更新租約

  • DHCP客戶端再次網絡後,直接以單播的形式發送DHCP REQUEST報文。
  • DHCP服務器直接向客戶端發送單播的确認OFFER報文或者NAK響應報文。

DHCP Relay支持向DHCP服務端發送DHCP RELEASE報文

IP地址分配優先原則

  • IP與MAC地址靜态綁定
  • 客戶端曾經分配過的地址
  • DHCP順序查找的地址

防止IP重複分配方法

DHCP服務端會定期通過ARP探測,确認沒有回複認為該地址未分配(除預留地址外)

防止多DHCP服務器存在同一個網絡

通過DHCP Snooping功能,接DHCP服務端接口設置為信任,其他默認為不信任,網絡設備會自動丢棄DHCP報文,從而避免私接或誤接DHCP服務器,導緻業務異常。

寫在最後

上文中,留下了兩道思考題,這裡做出解答:

1.為什麼客戶端發起的REQUEST報文會是廣播?

這是由于前面發送的DISCOVER報文會發給所有DHCP服務端,這裡的REQUEST會攜帶options 54,告訴其他DHCP服務器,我已經選擇了該服務器作為我的DHCP服務器,讓其他服務器不要再回複了。

2.DHCP服務端怎麼知道客戶端曾經使用過的IP

  • 客戶端申請時,會将options 50寫入自己曾經用過的IP。
  • 服務端會保留客戶端信息一段時間

雖然DHCP章節非常簡單,但具體的過程還是比較複雜的,情況很多,所以需要不斷的實踐加深你的理解。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved