大家有沒有這樣的經曆呢?在火車站明明發現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報文格式
括号的數字代表字段長度,單位為字節
字段的含義
DHCP報文類型
DHCP報文Options字段說明
DHCP報文中的Options字段可以用來存放沒有定義的控制信息和參數。如果用戶在DHCP服務器端配置了Options字段,DHCP客戶端在申請IP地址的時候,會通過服務器端回應的DHCP報文獲得Options字段中的配置信息。
options字段格式
options字段含義
常用options選項
DHCP工作原理
初次接入網絡
初次接入網絡示意圖
① 客戶端發起DHCP DISCOVER廣播;
② 所有服務端收到DISCOVER報文後,通過DHCP OFFER(帶有IP地址、租約等信息)報文進行回複;
③ 客戶端接收到的第一個OFFER報文,以廣播的形式發送DHCP REQUEST報文(為什麼是發廣播?答案在文尾);
④ 服務端收到REQUEST報文,對比報文中的MAC地址是否有相應的租約記錄,如果有,就直接通過ACK報文确認,如果沒有相應的租約記錄或無法正常分配IP地址,則發送DHCP NAK應答,通知客戶端重新申請新的IP地址
⑤ 客戶端收到服務端發送的ACK報文後,會發送一個免費的ARP,探測該地址是否在被使用,在規定時間内未收到回應,才會使用該地址
⑥ 客戶端獲取地址後,上線之前會檢查網關的狀态,如果網段地址錯誤或者網關設備故障,DHCP将重新啟動以上過程
DHCP客戶端重新獲取分配的IP地址
獲取曾經分配的IP地址
① 客戶端再次連接到網絡中,且租約還未過期,直接發送DHCP REQUEST報文。
② 服務端收到該報文後,檢查該地址的分配情況,如果地址還未被分配,直接返回ACK,如果被使用,将返回DHCP NAK,客戶端收到後,重新通過4步完成地址申請。(服務器如何知道客戶曾經使用過什麼地址?答案在文末)
DHCP客戶端租約
租約作為DHCP的最大特點,合理的規劃租期,可以避免資源的浪費和新增用戶接入異常。
更新租約過程
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中繼過程
1.DHCP中繼收到DHCP DISCOVER或DHCP REQUEST報文後:
2.DHCP服務器根據中繼的Relay Agent IP Address字段為客戶分配IP地址等參數,并将DHCP應答報文發送給Relay Agent IP Address字段表示的DHCP中繼,中繼收到報文後:
客戶端通過DHCP Relay更新租約
通過Relay方式更新租約
DHCP Relay支持向DHCP服務端發送DHCP RELEASE報文
IP地址分配優先原則
防止IP重複分配方法
DHCP服務端會定期通過ARP探測,确認沒有回複認為該地址未分配(除預留地址外)
防止多DHCP服務器存在同一個網絡
通過DHCP Snooping功能,接DHCP服務端接口設置為信任,其他默認為不信任,網絡設備會自動丢棄DHCP報文,從而避免私接或誤接DHCP服務器,導緻業務異常。
寫在最後上文中,留下了兩道思考題,這裡做出解答:
1.為什麼客戶端發起的REQUEST報文會是廣播?
這是由于前面發送的DISCOVER報文會發給所有DHCP服務端,這裡的REQUEST會攜帶options 54,告訴其他DHCP服務器,我已經選擇了該服務器作為我的DHCP服務器,讓其他服務器不要再回複了。
2.DHCP服務端怎麼知道客戶端曾經使用過的IP
雖然DHCP章節非常簡單,但具體的過程還是比較複雜的,情況很多,所以需要不斷的實踐加深你的理解。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!