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.mzph.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; }结果 第二题 题目 代码 …