HCIA-DHCP
1、定义:DHCP即动态主机配置协议,通过C/S模型架构,无需主机配置IP地址,自动分配网络配置参数的网络协议。
2、作用
对比项目 | 无 DHCP | 有 DHCP |
---|---|---|
配置难度 | 配置多,容易出错 | 自动为客户端分配 IP 地址及其他网络配置参数(如子网掩码、默认网关、DNS 服务器地址等),简化网络配置 |
工作量 | 需要提前规划地址网段,手动逐台配置设备网络参数,工作量大 | 集中管理网络配置信息,减轻管理员工作量,提升工作效率 |
对工作地点不稳定设备的支持 | 工作地点不稳定时,需要多次配置 IP 地址 | 对于移动设备,在不同网络间切换时,可自动分配新网络配置参数,无需手动操作 |
IP 地址利用率 | 地址利用率过低 | 动态分配 IP 地址,设备离线时收回其占用地址,可再分配给其他设备,避免地址浪费,提高地址资源利用率 |
3、相关概念
①DHCP服务器:运行DHCP服务的网络设备,负责管理地址池,地客户端分配网络配置参数。
②DHCP客户端:使用DHCP服务获取网络配置参数的设备,如手机、电脑等。
③IP地址池:DHCP服务器中可分配IP的地址范围,用于给客户端分配地址。
④租期:DHCP服务器分配的IP地址使用期限。
4、工作模式
①自动分配:DHCP服务器给客户端配置固定的IP,客户端每次获取地址都是该地址。
②动态分配:客户端从服务器中获取临时IP,租期内正常使用,到期后服务器收回重新分配。
③手工分配:需要管理员手动在服务器上为客户端指定一个固定IP。
5、工作原理
①发现阶段:客户端广播发送 DHCP Discover 报文找 DHCP 服务器,报文含客户端硬件地址。
②提供阶段:DHCP 服务器收到 Discover 报文,从地址池选择未分配 IP地址,通过 DHCP Offer 报文给客户端,包含子网掩码、租约期限等。
③请求阶段:客户端可能收到多个DHCP Offer 报文,通常选择第一个报文,且广播发 DHCP Request 报文,向对应服务器请求使用分配到 IP 、掩码等配置,根据报文中服务器 IP 可以表明是哪个服务器分配的配置。
④确认阶段:DHCP 服务器收到 Request 报文,检查 IP 是否可用。若可用发送DHCP Ack 报文确认,客户端获取网络配置信息进行通信;若IP不可用,发送DHCP Nak 报文告知失败,客户端需重发请求 。
6、DHCP中继
①作用:在网络中有多个子网时,当服务器与客户端不在同一个网段时,需要通过 DHCP 中继代理来转发 DHCP 报文,使客户端能够获取到地址
②工作原理:中继设备收到客户端的 DHCP Discover 报文,修改跳数、网关 IP 等字段后,转发给 DHCP 服务器所在子网。服务器处理报文后,把响应发给中继设备,中继代理再转给客户端。
7、DHCP安全问题
攻击类型 | 原理 | 危害 |
---|---|---|
DHCP 欺骗攻击 | 攻击者部署假 DHCP 服务器,抢在真服务器前响应客户端请求,分配错误网络配置参数 | 客户端连错网络,无法访问合法资源,还可能遭中间人攻击致信息被盗 |
IP 地址耗尽攻击 | 攻击者用工具向 DHCP 服务器发大量请求,耗尽 IP 地址资源 | 合法客户端无法获 IP,不能接入网络,网络服务中断 |
IP 地址冲突攻击 | 攻击者设与合法设备相同 IP 或让 DHCP 服务器分配重复 IP | 网络出现 IP 冲突,设备网络连接异常,通信受影响 |
信息泄露风险 | DHCP 交互时客户端发的含 MAC 地址等信息的报文,可能因网络漏洞被窃 | 攻击者收集信息进行网络拓扑发现、用户行为分析,实施针对性攻击 |
恶意 DHCP 选项注入 | 攻击者在 DHCP 报文中注入如错误路由、非法 DNS 地址等恶意选项字段 | 客户端按恶意选项配置后,网络访问异常,可能遭钓鱼攻击 |
防范措施
①网络设备安全配置
- 启用 DHCP Snooping:在交换机等设备启用,建信任列表,只许合法服务器报文通过,防非法服务器接入。
- 端口安全设置:配置网络端口,限制连接数、绑定 MAC 地址,防攻击者耗尽端口资源与 MAC 地址欺骗。
②DHCP 服务器安全配置
- 地址池管理:按网络规模需求合理规划地址池,留备用地址,定期检查清理,保证分配合理有效。
- 认证与授权:用用户名、密码或数字证书等认证客户端,通过后才能获取配置参数。
③网络监测与审计
- 部署网络监测工具:用网络流量分析、入侵检测系统等,实时监测 DHCP 流量和异常,及时告警安全威胁。
- 日志审计:详记审计 DHCP 服务器和网络设备日志,追溯安全事件,发现潜在问题和攻击。
相关文章:

HCIA-DHCP
1、定义:DHCP即动态主机配置协议,通过C/S模型架构,无需主机配置IP地址,自动分配网络配置参数的网络协议。 2、作用 对比项目无 DHCP有 DHCP配置难度配置多,容易出错自动为客户端分配 IP 地址及其他网络配置参数&…...

wxWidgets GUI 跨平台 入门学习笔记
准备 参考 https://wiki.wxwidgets.org/Microsoft_Visual_C_NuGethttps://wiki.wxwidgets.org/Tools#Rapid_Application_Development_.2F_GUI_Buildershttps://docs.wxwidgets.org/3.2/https://docs.wxwidgets.org/latest/overview_helloworld.htmlhttps://wizardforcel.gitb…...

OmniParser技术分析(一)
1.引言 通过上篇文章介绍 OmniParser:下一代纯视觉UI自动化测试先驱相信大家已经对OmniParser有初步了解,接下来详细介绍下OmniParser使用了哪些技术模型实现了对UI纯视觉的检测和理解。 2.整体方案 通过阅读OmniParser提供的运行Demo代码知道,其实整…...

什么是hive
Apache Hive 是一个基于 Hadoop 生态系统构建的数据仓库工具,主要用于处理和分析大规模的结构化数据。它允许用户通过类似 SQL 的查询语言(HiveQL)进行数据操作,而无需直接编写复杂的 MapReduce 程序。以下是 Hive 的核心特点和应…...

PyTorch系列教程:Tensor.view() 方法详解
这篇简明扼要的文章是关于PyTorch中的tensor.view()方法的介绍与应用,与reshape()方法的区别,同时给出示例进行详细解释。 Tensor基础 Tensor(张量)的视图是一个新的Tensor,它与原始Tensor共享相同的底层数据,但具有不同的形状或…...

从零开始了解Manus(文末附教程)
大家好,我是樱木。 《从零开始了解Manus》,这个教程对于想了解 Manus的同学,全部都在里面了! Manus 是一款能像真人一样帮你干活的AI助手,运行在云端,不占电脑内存。 它可以自动完成复杂任务,…...

不同开发语言之for循环的用法、区别总结
一、Objective-C (1)标准的c风格 for (int i 0; i < 5; i) {NSLog("i %d", i); } (2)for in循环。 NSArray *array ["apple", "banana", "orange"]; for (NSString *fruit in …...

CentOS 7 aarch64上制作kernel rpm二进制包 —— 筑梦之路
环境说明 centos 7 aarch64 gcc 8.3.1 kernel 5.4.290 准备编译制作 # 安装必要的工具和包yum install rpm-devel rpmdevtools yum groupinstall "Development Tools"yum install ncurses-devel bc elfutils-libelf-devel openssl-devel # 安装gcc 8.3.1# 修改…...

Cursor 使用经验,一个需求开发全流程
软件开发中 Cursor 的使用经验成为关注焦点,尤其是处理大型数据集的需求。用户提到“Cursor 使用经验,一个需求开发全流程”,但“Cursor”可能指数据库游标,涉及逐行处理数据。本文将详细探讨开发一个需求的完整流程,包…...

2025-03-08 学习记录--C/C++-PTA 习题9-2 计算两个复数之积
合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 一、题目描述 ⭐️ 二、代码(C语言)⭐️ #include <stdio.h>struct complex{int real;int imag; …...

DeepSeek-R1本地化部署(Mac)
一、下载 Ollama 本地化部署需要用到 Ollama,它能支持很多大模型。官方网站:https://ollama.com/ 点击 Download 即可,支持macOS,Linux 和 Windows;我下载的是 mac 版本,要求macOS 11 Big Sur or later,Ol…...

【时时三省】(C语言基础)赋值语句
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 赋值语句 在C程序中,最常用的语句是:赋值语句和输入输出语句。其中最基本的是赋值语句程序中的计算功能大部分是由赋值语句实现的,几乎每一个有实用价值的程序都包括赋值语句。有的程序中的大部分语句都是赋值…...

如何提取图片文字
如何分析图片风格: 分析下图片是什么风格,用即梦AI的提示语描述。我要使用描述语去即梦生成同样的图...

3.3.2 用仿真图实现点灯效果
文章目录 文章介绍Keil生成.hex代码Proteus仿真图中导入.hex代码文件开始仿真 文章介绍 点灯之前需要准备好仿真图keil代码 仿真图参考前文:3.3.2 Proteus第一个仿真图 keil安装参考前文:3.1.2 Keil4安装教程 keil新建第一个项目参考前文:3.1…...

BGP 基本配置实验
实验拓扑 实验需求 按照图示配置 IP 地址,R1 和 R5 上使用环回口模拟业务网段,R2,R3,R4 的环回口用于配置 Router-id 和建立 IBGP 邻居AS 200 运行 OSPF 实现内部网络互通R1,R2,R4,R5 运行 BGP…...

关于 QPalette设置按钮背景未显示出来 的解决方法
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/146047054 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…...

## DeepSeek写水果记忆配对手机小游戏
DeepSeek写水果记忆配对手机小游戏 提问 根据提的要求,让DeepSeek整理的需求,进行提问,内容如下: 请生成一个包含以下功能的可运行移动端水果记忆配对小游戏H5文件: 要求 可以重新开始游戏 可以暂停游戏 卡片里的水果…...

P8662 [蓝桥杯 2018 省 AB] 全球变暖--DFS
P8662 [蓝桥杯 2018 省 AB] 全球变暖--dfs 题目 解析讲下DFS代码 题目 解析 这道题的思路就是遍历所有岛屿,判断每一块陆地是否会沉没。对于这种图的遍历,我们首先应该想到DFS。 代码的注意思想就是,在主函数中遍历找出所有岛屿,…...

opentitan riscv
OpenTitan是一个开源的硅根信任(Root of Trust, RoT)项目,旨在使硅RoT的设计和实现更加透明、可信和安全,适用于企业、平台提供商和芯片制造商。该项目由lowRISC CIC管理,作为一个协作项目,旨在生产高质量…...

数据结构篇——串(String)
一、引入 在计算机中的处理的数据内容大致可分为以整形、浮点型等的数值处理和字符、字符串等的非数值处理。 今天我们主要学习的就是字符串数据。本章主要围绕“串的定义、串的类型、串的结构及其运算”来进行串介绍与学习。 二、串的定义 2.1、串的基本定义 串(s…...

Linux系统重置密码
当root账号忘记密码时,如何重置密码?下面有两种方法可以解决该问题: 重置root密码 1.方法一、rd.break命令 第一步 重启系统,在下图所示界面中按e,进入编辑模式----一定要快速按,否则6秒后就会到登陆界面…...

Flow Matching 和 Rectified Flow的区别
Flow Matching是通过匹配目标向量场来训练CNF,比如通过最小化目标向量场和模型预测之间的差异。 Rectified Flow的核心思想是学习一个确定性轨迹,将数据分布转换为噪声分布,比如通过线性插值或者更复杂的路径。 推荐阅读: SD3的采…...

机器学习编译
一、机器学习概述 1.1 什么是机器学习编译 将机器学习算法从开发形态通过变换和优化算法使其变成部署形态。即将训练好的机器学习模型应用落地,部署在特定的系统环境之中的过程。 开发形态:开发机器学习模型时使用的形态。Pytorch,TensorFlow等通用框…...

什么是 BotGate 动态防护?
随着网络威胁日益复杂,传统的防护方法逐渐暴露出漏洞。BotGate 动态防护是一种结合机器人网络(Botnet)和动态防护技术的新兴网络安全模式。它利用大量分布式设备(即“僵尸网络”或 Botnet)的实时协作能力,快…...

Linux笔记---自定义shell
目录 前言 1. 程序框架 2. 打印命令行提示符 2.1 获取用户名(GetUserName) 2.2 获取主机名(GetHostName) 2.3 获取工作目录(GetPwd) 3. 获取命令行输入 4. 判断是否有重定向 5. 解析命令行 6. 内建命令 6.1 内建命令的特点 6.2 常见内建命令 6.3 内建命令 vs 外部命…...

大语言模型从理论到实践(第二版)-学习笔记(绪论)
大语言模型的基本概念 1.理解语言是人工智能算法获取知识的前提 2.语言模型的目标就是对自然语言的概率分布建模 3.词汇表 V 上的语言模型,由函数 P(w1w2 wm) 表示,可以形式化地构建为词序列 w1w2 wm 的概率分布,表示词序列 w1w2 wm…...

2025-03-08 学习记录--C/C++-C 语言 判断一个数是否是完全平方数
C 语言 判断一个数是否是完全平方数 使用 sqrt 函数计算平方根,然后判断平方根的整数部分是否与原数相等。 #include <stdio.h> #include <math.h>int isPerfectSquare(int num) {if (num < 0) {return 0; // 负数不是完全平方数}int sqrtNum (int)…...

八、排序算法
一些简单的排序算法 8.1 冒泡排序 void Bubble_sort(int a[] , int len){int i,j,flag,tmp;for(i=0 ; i < len-1 ; i++){flag = 1;for(j=0 ; j < len-1-i ; j++){if(a[j] > a[j+1]){tmp = a[j];a[j] = a[j+1];a[j+1] = tmp;flag = 0;}}if(flag == 1){break;}}…...

计算机网络篇:基础知识总结与基于长期主义的内容更新
基础知识总结 和 MySQL 类似,我同样花了一周左右的时间根据 csview 对计算机网络部分的八股文进行了整理,主要的内容包括:概述、TCP 与 UDP、IP、HTTP,其中我个人认为最重要的是 TCP 这部分的内容。 在此做一篇目录索引…...

nodejs学习——nodejs和npm安装与系统环境变量配置及国内加速
nodejs和npm安装与系统环境变量配置及国内加速 下载node-v22.14.0-x64.msi 建议修改为非C盘文件夹 其它步骤,下一步,下一步,完成。 打开CMD窗口查看安装详情 $ node -v v22.14.0 $ npm -v 10.9.2$ npm config list创建node_global和node_c…...