DHCP理解

文章目錄

  • DHCP理解
    • DHCP的核心作用
    • DHCP默認端口
    • DHCP的工作原理(4個步驟)
    • 圖示說明(含中繼代理)
      • DHCP Discover(客戶端發現階段)
      • DHCP Offer(服務器提供階段)
      • DHCP Request(客戶端請求階段)
      • DHCP Ack(服務器確認階段)
      • 附加過程
      • 流程圖關鍵點
    • DHCP vs 靜態IP
      • 基礎概念
      • 核心差異對比
      • 典型應用場景
    • 如何查看設備是否使用DHCP?
    • DHCP的注意事項
    • 如何關閉DHCP?

DHCP理解

DHCP(Dynamic Host Configuration Protocol,動態主機配置協議) 是一種網絡協議,用于自動為設備分配IP地址和其他網絡配置參數(如子網掩碼、默認網關、DNS服務器等),簡化網絡管理并避免手動配置的繁瑣和沖突。

DHCP的核心作用

  • 自動分配IP地址:設備接入網絡時,DHCP服務器會從地址池中分配一個可用的IP地址,避免手動設置的麻煩。

  • 集中管理網絡配置:統一管理IP、子網掩碼、網關、DNS等參數,確保所有設備遵循相同的網絡規則。

  • 避免IP沖突:動態分配可回收閑置IP,減少因手動設置導致的地址沖突。

DHCP默認端口

角色端口號說明
DHCP 客戶端68客戶端使用 UDP 68 端口發送請求(Discover/Request)和接收響應(Offer/Ack)。
DHCP 服務器67服務器使用 UDP 67 端口監聽客戶端請求,并發送響應(Offer/Ack)。

注:DHCP 基于 UDP(無連接協議),而非 TCP。

DHCP的工作原理(4個步驟)

當設備(如電腦、手機)連接到網絡時,DHCP的工作流程如下:

  • DHCP Discover:設備廣播發送“發現”消息,尋找可用的DHCP服務器。

  • DHCP Offer:DHCP服務器響應,提供一個未被使用的IP地址(租約)。

  • DHCP Request:設備確認接受該IP地址。

  • DHCP Ack:服務器最終確認分配,并發送完整的網絡配置(IP、網關、DNS等)。

比喻:就像去餐廳吃飯,服務員(DHCP)自動給你分配座位(IP地址),并告訴你餐具在哪里(網關)、菜單怎么用(DNS)。

在這里插入圖片描述

圖示說明(含中繼代理)

在這里插入圖片描述

詳細步驟說明(DORA過程)

DHCP Discover(客戶端發現階段)

  • 客戶端行為:
    開機后,客戶端沒有IP地址(0.0.0.0),向局域網發送 廣播包(目標IP:255.255.255.255,目標MAC:FF:FF:FF:FF:FF:FF),攜帶以下信息:

    • 客戶端MAC地址

    • 請求的IP租期

    • 可選參數(如子網掩碼、DNS服務器等)。

  • 中繼代理(可選):
    如果客戶端和服務器不在同一網段,路由器(DHCP中繼代理)會接收廣播包,將其轉為 單播包,并轉發到指定的DHCP服務器。

    • 中繼代理作用:

      • 監聽 67 端口的廣播包。

      • 修改報文:

        • 將源IP從 0.0.0.0 改為 中繼代理自身IP(如 10.0.0.1)。

        • 目標IP從廣播地址改為 DHCP服務器IP(如 192.168.1.1)。

      • 保持端口不變:仍使用 67 端口轉發給服務器。

  • 服務器行為:
    服務器收到請求后,記錄客戶端的MAC地址,準備分配IP。

DHCP Offer(服務器提供階段)

  • 服務器行為:
    從地址池中選擇一個可用IP,通過 單播或廣播 發送 DHCP Offer 包,包含:

    • 分配的IP地址

    • 子網掩碼

    • 默認網關

    • DNS服務器

    • IP租期(如24小時)。

  • 中繼代理二次轉發:

    • 將服務器單播包轉為 廣播包(因客戶端尚無IP):

    • 目標端口改為客戶端的 68 端口。

  • 客戶端行為:
    客戶端可能收到多個服務器的Offer,但通常選擇 第一個到達的Offer。

DHCP Request(客戶端請求階段)

  • 客戶端行為:
    客戶端廣播 DHCP Request 包,明確告知選擇的IP和服務器。

    • 廣播目的:通知其他DHCP服務器“已選擇某臺服務器的IP”。

    • 如果跨網段,中繼代理會將其轉為單播轉發給服務器。

  • 中介代理行為:
    流程與Discover/Offer類似,確保IP分配一致性。

  • 服務器行為:
    被選中的服務器保留該IP,未被選中的服務器釋放IP。

DHCP Ack(服務器確認階段)

  • 服務器行為:
    發送 DHCP Ack 包(單播或廣播),正式確認IP分配,并攜帶網絡配置參數。

    • 如果客戶端收到Ack,則使用該IP。

    • 如果未收到(如網絡超時),客戶端重新發起Discover。

  • 中介代理行為:
    流程與Discover/Offer類似,確保IP分配一致性。

  • 客戶端行為:
    收到Ack后:

    • 配置IP地址和網絡參數。

    • 啟動租期計時器(默認50%租期時嘗試續租)。

附加過程

  • IP租期更新

    • T1(50%租期):客戶端直接向原服務器發送DHCP Request(單播)請求續租。

    • T2(87.5%租期):若原服務器無響應,客戶端廣播DHCP Request請求其他服務器續租。

    • 租期到期:IP被回收,客戶端重新發起DORA過程。

  • 跨網段通信

    • 依賴 DHCP中繼代理(如路由器),它會在不同網段間轉發DHCP消息。

流程圖關鍵點

  • 廣播 vs 單播:

    • Discover和Request通常是廣播(初始無IP)。

    • Offer和Ack可能是單播(客戶端已有臨時IP)或廣播。

  • 中繼代理:跨網段時必需,負責修改DHCP包的源/目的IP。

    • 維護端口規則

      • 始終保證:

        • 客戶端側:68 → 67

        • 服務器側:67 → 67

DHCP vs 靜態IP

基礎概念

特性DHCP靜態IP
定義動態主機配置協議,自動分配IP地址手動配置固定的IP地址
管理方式由服務器集中管理由管理員或用戶手動設置
IP變化可能隨時間變化(租期到期后重新分配)永久固定,除非手動修改

核心差異對比

對比維度DHCP靜態IP
配置效率? 自動分配,無需人工干預? 需手動輸入IP、掩碼、網關等參數
靈活性🔄 適合設備頻繁接入/離開的網絡🔒 適合需要固定地址的關鍵設備
管理復雜度📊 集中管理,減少配置錯誤🛠? 維護成本高,易出現地址沖突
IP利用率?? 動態回收閑置IP,提高地址池利用率📌 IP長期占用,可能造成浪費
適用規模🌐 大/中型網絡(如企業、校園網)🏠 小型網絡或特定設備(如服務器)

典型應用場景

場景推薦方案原因
企業辦公電腦DHCP員工設備多且流動頻繁,自動分配更高效
家庭WiFi設備DHCP手機/平板等設備無需固定IP
服務器(Web/數據庫)靜態IP需通過固定IP提供穩定服務,避免DNS解析失效
網絡打印機靜態IP確保所有用戶始終能通過同一IP訪問設備
物聯網設備(如攝像頭)DHCP+保留通過DHCP服務器為特定MAC地址分配固定IP(兼顧自動管理和地址穩定)

如何查看設備是否使用DHCP?

Windows:

ipconfig /all

查看對應網卡信息,若顯示 DHCP Enabled: Yes 則表示通過DHCP獲取IP。

Linux/macOS:

ifconfigip a

結合以下命令檢查DHCP配置:

cat /etc/network/interfaces  # Ubuntu舊版#或
cat /etc/netplan/*.yaml      # Ubuntu新版

DHCP的注意事項

  • 租約時間:DHCP分配的IP有有效期(如24小時),到期后會續租或重新分配。

  • 地址池耗盡:如果網絡中設備過多,可能導致IP地址不足,需擴大DHCP地址池范圍。

  • 安全性:惡意DHCP服務器可能劫持網絡(如“DHCP欺騙攻擊”),企業網絡需啟用防護(如DHCP Snooping)。

  • 靜態IP沖突:如果局域網內有設備手動配置了靜態IP,且該IP在DHCP地址池范圍內,可能導致沖突。

    • 解決方法:將靜態IP設置在DHCP地址池之外,或使用DHCP保留地址(Reservation)。
  • 雙DHCP服務器場景: 當同一局域網中存在 兩個DHCP服務器 時,會出現以下問題:

    問題原因后果
    IP地址重復分配兩個服務器獨立管理地址池,可能分配相同的IP設備IP沖突,網絡中斷
    租期信息不一致服務器A分配的IP,服務器B不知情,可能提前回收或重復分配設備頻繁斷網
    配置參數混亂兩臺服務器配置的子網掩碼、網關、DNS不同設備無法正常上網
    • 解決方案

      • 避免多DHCP服務器共存
        企業網絡:僅部署一臺主DHCP服務器,并配置備用服務器(如Windows DHCP故障轉移集群)。

      家庭網絡:關閉路由器自帶的DHCP功能,避免與光貓DHCP沖突。

      • 劃分地址池(高級方案)
        如果必須使用多臺DHCP服務器,需手動劃分不重疊的IP地址池:

        - DHCP服務器A:192.168.1.100 ~ 192.168.1.150  
        - DHCP服務器B:192.168.1.151 ~ 192.168.1.200  
        
      • 啟用DHCP Snooping(企業級交換機)
        在交換機上配置 DHCP Snooping,只允許信任端口(Trusted Port)響應DHCP請求,阻斷非法DHCP服務器。

      • 檢測并關閉非法DHCP服務器

        • Windows命令:
        netsh dhcp show server  # 列出合法DHCP服務器
        
        • Linux工具:
        dhcpdump -i eth0       # 抓包分析DHCP流量來源
        

如何關閉DHCP?

如果需要手動設置靜態IP(如服務器或虛擬機固定IP),需禁用DHCP:

  • 路由器管理界面:找到LAN/DHCP設置,關閉DHCP服務。

  • 虛擬機網絡:在VMware/VirtualBox的虛擬網絡設置中取消勾選“使用DHCP”。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/79794.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/79794.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/79794.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

云計算-容器云-部署CICD-jenkins連接gitlab

安裝 Jenkins 將Jenkins部署到default命名空間下。要求完成離線插件的安裝,設置Jenkins的登錄信息和授權策略。 上傳BlueOcean.tar.gz包 [root@k8s-master-node1 ~]#tar -zxvf BlueOcean.tar.gz [root@k8s-master-node1 ~]#cd BlueOcean/images/ vim /etc/docker/daemon.json…

AI 大模型新浪潮:從 DeepSeek-Prover 到 Qwen3,再到 DeepSeek-R2,邁向自動推理的新時代20250507

🧠 AI 大模型新浪潮:從 DeepSeek-Prover 到 Qwen3,再到 DeepSeek-R2,邁向自動推理的新時代 🚀 引言:大模型,不止是語言處理器,而是思維建構者 在 2025 年春天,我們見證了…

觀察者模式(Observer Pattern)詳解

文章目錄 1. 什么是觀察者模式?2. 為什么需要觀察者模式?3. 觀察者模式的核心概念4. 觀察者模式的結構5. 觀察者模式的基本實現簡單的氣象站示例6. 觀察者模式的進階實現推模型 vs 拉模型6.1 推模型(Push Model)6.2 拉模型(Pull Model)7. 觀察者模式的復雜實現7.1 在線商…

前端代碼規范詳細配置

以下是現代前端項目的完整代碼規范配置方案,涵蓋主流技術棧和自動化工具鏈配置: 一、基礎工程配置 1. 項目結構規范 project/ ├── src/ │ ├── assets/ # 靜態資源 │ ├── components/ # 通用組件 │ ├── layouts/ …

Missashe考研日記-day34

Missashe考研日記-day34 1 專業課408 學習時間:3h學習內容: 今天是學習I/O管理第二小節的內容,聽了課也做了題,這是操作系統倒數第二節知識了,還差最后一節就完結了。知識點回顧: 1.I/O核心子系統&#x…

Milvus 向量數據庫詳解與實踐指南

一、Milvus 核心介紹 1. 什么是 Milvus? Milvus 是一款開源、高性能、可擴展的向量數據庫,專門為海量向量數據的存儲、索引和檢索而設計。它支持近似最近鄰搜索(ANN),適用于圖像檢索、自然語言處理(NLP&am…

算力經濟模型研究:從云計算定價到去中心化算力市場設計

引言:算力商品化的雙重革命 在H800 GPU集群的算力供給能力突破2.3 EFLOPS的今天,算力定價機制正經歷從"資源租賃"到"動態市場"的范式轉變。傳統云計算定價模型(如AWS按需實例)的靜態價格機制已難以適應大模型…

[D1,2] 貪心刷題

文章目錄 擺動序列最大子數組合買賣股票跳躍游戲跳躍2 擺動序列 不像是貪心,只要抓住擺動這個點,前一個上升,那下一個就要下降,記錄上一次的狀態為1的話,那下一次就要更新為-1,如果上一次為1,這…

Spring Boot操作MongoDB的完整示例大全

以下是基于Spring Boot操作MongoDB的完整示例大全&#xff0c;涵蓋增刪改查、聚合查詢、索引、事務等核心功能&#xff1a; 一、基礎CRUD操作 1. 環境配置 依賴配置&#xff08;pom.xml&#xff09; <dependency><groupId>org.springframework.boot</groupId…

【實戰教程】零基礎搭建DeepSeek大模型聊天系統 - Spring Boot+React完整開發指南

&#x1f525; 本文詳細講解如何從零搭建一個完整的DeepSeek AI對話系統&#xff0c;包括Spring Boot后端和React前端&#xff0c;適合AI開發入門者快速上手。即使你是編程萌新&#xff0c;也能輕松搭建自己的AI助手&#xff01; &#x1f4da;博主匠心之作&#xff0c;強推專欄…

Linux系統基本指令和知識指南

一、Linux系統簡介 Linux是一種自由和開放源代碼的類UNIX操作系統&#xff0c;由林納斯托瓦茲在1991年首次發布。它以穩定性、安全性和靈活性著稱&#xff0c;廣泛應用于服務器、嵌入式系統和個人計算機。 Linux主要特點&#xff1a; 開源免費 多用戶、多任務 良好的安全性…

【計算機視覺】OpenCV實戰項目:Long-Exposure:基于深度學習的長時間曝光合成技術

Long-Exposure&#xff1a;基于深度學習的長時間曝光合成技術 項目概述與技術背景項目核心功能技術原理 環境配置與安裝硬件要求建議詳細安裝步驟可選組件安裝 實戰應用指南1. 基礎使用&#xff1a;視頻轉長曝光2. 高級模式&#xff1a;自定義光軌合成3. 批量處理模式 技術實現…

TikTok 矩陣賬號運營實操細節:打造爆款矩陣

在 TikTok 的流量版圖里&#xff0c;打造 TikTok 矩陣賬號能顯著提升影響力與吸粉能力。而借助 AI 工具&#xff0c;更可為 TikTok 矩陣運營效率的提升賦能&#xff0c;讓運營如虎添翼。下面就為大家詳細講講其中的實操細節&#xff0c;并結合一些偽代碼示例輔助理解。 一、矩…

互聯網大廠Java求職面試:分布式系統中向量數據庫與AI應用的融合探索

互聯網大廠Java求職面試&#xff1a;分布式系統中向量數據庫與AI應用的融合探索 面試開場&#xff1a;技術總監與鄭薪苦的“較量” 技術總監&#xff08;以下簡稱T&#xff09;&#xff1a;鄭薪苦先生&#xff0c;請簡單介紹一下你在分布式系統設計方面的經驗。 鄭薪苦&…

【每日八股】學習 RocketMQ Day2:進階(一)

文章目錄 復習昨日內容為什么要使用消息隊列為什么選擇 RocketMQRocketMQ 的優缺點&#xff1f;談談你對 RocketMQ 的理解&#xff1f;消息隊列有哪些類型&#xff1f;RocketMQ 采用哪種消息隊列模型&#xff1f;消息的消費模式了解嗎&#xff1f;了解 RocketMQ 的基本架構嗎&a…

探索智能體開發新邊界:Cangjie Magic開源平臺體驗與解析

文章目錄 每日一句正能量前言一、Cangjie Magic的核心技術&#xff08;一&#xff09;Agent DSL架構&#xff08;二&#xff09;原生支持MCP通信協議&#xff08;三&#xff09;智能規劃功能 二、實際應用場景&#xff08;一&#xff09;智能客服系統&#xff08;二&#xff09…

深入解析進程間通信與Socket原理:從理論到TypeScript實戰

文章目錄 一、進程中如何通信1.1 管道1.1.1 核心特性1.1.2 缺點1.1.3 匿名管道與命名管道的對比 1.2 信號1.2.1 核心特性1.2.2 缺點1.2.3 信號分類對比 1.3 消息隊列1.3.1 核心特性1.3.2 缺點 1.4 共享內存1.4.1 核心特性1.4.2 缺點 1.5 信號量1.5.1 核心特性1.5.2 缺點 二、So…

力扣-hot100(旋轉圖像)

48. 旋轉圖像 中等 給定一個 n n 的二維矩陣 matrix 表示一個圖像。請你將圖像順時針旋轉 90 度。 你必須在 原地 旋轉圖像&#xff0c;這意味著你需要直接修改輸入的二維矩陣。請不要 使用另一個矩陣來旋轉圖像。 示例 1&#xff1a; 輸入&#xff1a;matrix [[1,2,3],[4…

Docker編排工具---Compose的概述及使用

目錄 一、Compose工具的概述 二、Compose的常用命令 1、列出容器 2、查看訪問日志 3、輸出綁定的公共端口 4、重新構建服務 5、啟動服務 6、停止服務 7、刪除已停止服務的容器 8、創建和啟動容器 9、在運行的容器中執行命令 10、指定一個服務啟動容器的個數 11、其…

C25-數組應用及練習

第一題 題目: 代碼 #include <stdio.h> int main() {//數組及相關數據定義int arr[10];int i;//基于循環的數組數據輸入for(i0;i<10;i){arr[i]i;}//基于循環的數組數據輸出for(i9;i>0;i--){printf("%d ",arr[i]);}return 0; }結果 第二題 題目 代碼 …