DHCP工作原理
DHCP报文类型
- DHCP Discover
客户端广播发送DHCP discover报文消息, 客户端通过UDP68端口向网络上发送DHCP discover数据包(包含MAC地址和计算机名等信息).源为0.0.0.0, 目的为255.255.255.255
discover等待时间默认为1秒, 1秒内没有得到回应, 客户机会将这一广播包重新发送4次(以2,4,8,16秒为间隔, 加上1-1000毫秒之间随机长度的时间). 如果没有得到DHCP server的回应. 客户端会从169.254.0.0/16这个地址段中选取一个IP地址. 并且每隔5分钟重新广播依次. 如果收到dhcp server的响应, 则继续IP租用过程. - DHCP Offer
服务器单播客户端提供IP地址 - DHCP Request
客户端向服务器请求使用该IP地址 - DHCP ACK
服务器确认客户端可以使用该地址, 这个时候客户端上IP地址开始生效
DHCP验证
- 直连情况下, client与server直连, 拓扑如下:
我们在client-1和server之间进行抓包, 结果如下:
- client接入网络后, 会先发送一个dhcp discover广播包源为0.0.0.0目的为255.255.255.255
- server收到广播包后, server会根据请求报文来自的接口所属网段进行IP地址分配, 并且会发出广播包确认分配的IP地址是否已经存在, 如果不存在就将该IP地址分配给client并将相关信息放入dhcp offer包中回复给client.(这里是单播包)
- client收到回复之后, 会向dhcp server请求使用该IP地址. 此时还无法使用分配的IP地址, 所以发送的还是广播包(dhcp request中包含了offer包中提供的信息)
- dhcp server收到request包之后, 会向client回复一个dhcp ack的单播包(包含了相关信息).
- client收到dhcp server回复的dhcp ack包之后, 分配的IP地址就正式生效了.
- 当client和server不在同一vlan下的时候, 我们可以使用ip helper-address 将DHCP请求单播到server
- client接入网络的时候, 还是会发送dhcp discover去请求IP, 由于和server不在一个vlan, 所以我们在client所在vlan的网关上配置了ip helper-address x.x.x.x. 网关收到dhcp discover的广播包之后会将其重新封装成一个单播包(源是网关地址, 目的是server地址)
- server收到单播的广播包之后 根据客户端所在子网所在网络进行IP分配, 发送dhcp offer
- client收到回复后 提出dhcp request 广播包
- server收到后 返回dhcp ack包, 此时client分配的IP地址开始生效
- client和switch之间的交互就可案例1中client和server交互式一样的, server的ip地址是在dhcp报文中进行体现的
- switch和server之间就是单播包的交互, switch将收到的所有dhcp请求报文封装成单播包发送给server
DHCP配置
一般在cisco设备上的配置如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 | ip dhcp excluded-address 192.168.1.200 192.168.1.255 ip dhcp excluded-address 192.168.100.200 192.168.100.255 ip dhcp pool test network 192.168.1.0 255.255.255.0 default-router 192.168.1.254 dns-server 192.168.1.254 ip dhcp pool vlan100 network 192.168.100.0 255.255.255.0 default-router 192.168.100.254 dns-server 192.168.100.254 ip dhcp pool vlan1_tom host 10.1.1.50 255.255.255.0 client-identifier 010010.3ab1.eac8 |
可以给pool指定一个地址端, 可以将某些地址排除在pool之外, 可以根据mac和IP进行绑定
可以配置租期等其他属性
DHCP冗余
一般情况下, 公司都会配置2台dhcp服务器进行冗余, 提高可用性. 但是在网络设备上,同时配置两台dhcp服务器进行冗余的方法没有碰到过.
也可以使用专门的dhcp服务器, 这种一般都会提供冗余的特性
或者在windows或者linux服务器上搭建dhcp服务也可以, 但是冗余的配置方法就不确定
相关文章:
DHCP工作原理
DHCP报文类型 DHCP Discover 客户端广播发送DHCP discover报文消息, 客户端通过UDP68端口向网络上发送DHCP discover数据包(包含MAC地址和计算机名等信息).源为0.0.0.0, 目的为255.255.255.255 discover等待时间默认为1秒, 1秒内没有得到回应, 客户机会将这一广播包重新发送4次…...
JVM常见面试总结
JVM(Java虚拟机)是Java程序运行的核心,掌握JVM相关知识对于Java开发者至关重要。以下是JVM常见的面试问题总结: 1. JVM内存模型 问题:JVM的内存结构分为哪些部分? 答案: 方法区(Met…...
博客系统自动化测试报告
1.项目背景 基于SSM框架实现的个人博客系统,现有登录注销页面,博客列表页,博客内容页,博客编辑页面。登录即可查看自己曾经发表的博客,通过使用Selenium定位web元素、对获取到的元素进行操作等,对博客系统…...
如何选择合适的 AI 模型?(开源 vs 商业 API,应用场景分析)
1. 引言 在 AI 迅猛发展的今天,各类 AI 模型层出不穷,从开源模型(如 DeepSeek、Llama、Qwen)到商业 API(如 OpenAI 的 ChatGPT、Anthropic 的 Claude、Google Gemini),每种方案都有其优势与适用…...
目标检测20年(二)
没有看过(一)的可以看看笔者这篇文章: 目标检测20年(一)-CSDN博客 目录 3.2 目标检测数据集和指标 3.2.1 数据集 3.2.1.1 Pascal VOC 3.2.1.2 ILSVRC 3.2.1.3 MS-COCO 3.2.1..4 Open Images 3.2.2 指标 3.3 目…...
【linux】统信操作系统修改默认编辑模式从nano改为vim
统信操作系统修改默认编辑模式从nano改为vim 适用命令update-alternatives --config editor rootuos-PC:~# update-alternatives --config editor 有 3 个候选项可用于替换 editor (提供 /usr/bin/editor)。选择 路径 优先级 状态 ---------------------…...
在Fedora-Workstation-Live-x86_64-41-1.4中使用最新版本firefox和腾讯翻译插件让英文网页显示中文翻译
在Fedora-Workstation-Live-x86_64-41-1.4中使用最新版本firefox和腾讯翻译插件让英文网页显示中文翻译 应用——系统工具——终端 suozhangfedora:~$ rpm -aq | grep firefox firefox-131.0.2-1.fc41.x86_64 firefox-langpacks-131.0.2-1.fc41.x86_64 fedora41系统自身安装有f…...
集成学习(下):Stacking集成方法
一、Stacking的元学习革命 1.1 概念 Stacking(堆叠法) 是一种集成学习技术,通过组合多个基学习器(base learner)的预测结果,并利用一个元模型(meta-model)进行二次训练,…...
知道自己鼠标在某个竖直平面上的经纬度信息在这个竖直的平面上的实时坐标
鼠标放上去就开启map.on(mars3d.EventType.mouseMove,结合以下方法实现 callback: function (e) {// 经纬度const mpt LngLatPoint.fromCartesian(e.cartesian)const ptNew proj4Trans([mpt.lng, mpt.lat], "EPSG:4326", CRS.CGCS2000_GK_Zone_3)const …...
【技术简析】触觉智能RK3506 Linux星闪网关开发板:重新定义工业物联新标杆
在工业智能化与物联网深度融合的今天,深圳触觉智能推出首款搭载瑞芯微RK3506芯片的Linux星闪网关开发板,为大家技术解析。 RK3506-国产芯的硬核实力 作为瑞芯微2024年第四季度推出的入门级工业芯片平台,RK3506以三核Cortex-A7(1.…...
GLB文件介绍
GLB文件是由支持glTF(GL Transmission Format)标准的软件或工具生成的。glTF是一种开放的3D模型传输格式,而GLB是其二进制版本,通常用于嵌入纹理和模型数据。以下是常见的生成GLB文件的软件和工具: 1. 3D建模软件 • …...
树莓集团数字产业布局:商业智慧的多维呈现
树莓集团在数字产业的布局展现其前瞻性的商业智慧,通过多维度的战略部署,构建一个 শক্তিশালী且富有活力的数字生态系统。 全国产业园布局:构建数字产业生态链 树莓集团通过在全国范围内建设产业园,有效整合资源&#x…...
“智改数转”新风口,物联网如何重构制造业竞争力?
一、政策背景 为深化制造业智能化改造、数字化转型、网络化联接,江苏省制定了《江苏省深化制造业智能化改造数字化转型网络化联接三年行动计划(2025-2027年)》,提出到2027年,全省制造业企业设备更新、工艺…...
代码随想录第55期训练营第八天|LeetCode344.反转字符串、541.反转字符串II、卡码网:54.替换数字
前言 这是我参加的第二次训练营!!!爽!这次我将更加细致的写清每一道难题,不仅是提升自己,也希望我自己的写的文章对读者有一定的帮助! 打卡代码随想录算法训练营第55期第八天(づ&a…...
c++ XML库用法
在C中,处理XML文件的读写操作可以通过多种库来实现。以下是几个常用且简洁的库: 1. TinyXML-2 简介: TinyXML-2 是一个轻量级的C XML解析库,易于使用且性能良好。特点: 简单易用,API直观。内存占用小,适合嵌入…...
力扣算法Hot100——128. 最长连续序列
题目要求时间复杂度为O(n),因此不能使用两次循环匹配。 首先使用 HashSet 去重,并且 HashSet 查找一个数的复杂度为O(1)外循环还是遍历set集合,里面一重循环需要添加判断,这样才不会达到O( n 2 n^2 n2)判断是否进入最长序列查找循…...
spring-tx笔记
编程式事务与声明式事务的理解 补充:什么是事务? 事务是一个重要概念,尤其在数据库管理系统中。事务是指一组操作。,这些操作要么全部成功执行,要么全部不执行,确保数据的一致性和完整性 编程式事务 编…...
VulnHub-Web-Machine-N7通关攻略
一、信息收集 第一步:确定靶机IP为192.168.0.107 第二步:扫描后台及开放端口 第三步:进行敏感目录及文件扫描 http://192.168.0.107/index.html (CODE:200|SIZE:1620) http://192.168.0.107/server-status (CODE:403|SIZ…...
【PCIe 总线及设备入门学习专栏 3.1 -- PCIe 中为何只有 TLP 会被 Switch 和 RC 进行路由?】
文章目录 Overview为什么 DLLP 不需要路由呢?总结Overview 这里介绍些为什么在 PCIe 中只有 TLP(事务层数据包)会被 Switch 和 Root Complex(RC) 路由,而 DLLP(数据链路层数据包)和 Ordered Set 不会被路由。这是因为 TLP 起始于源端口的事务层,结束于目的端口的事务…...
3月21号
今天写了一些题: P1149 [NOIP 2008 提高组] 火柴棒等式 题目描述 给你 n 根火柴棍,你可以拼出多少个形如 ABC 的等式?等式中的 A、B、C 是用火柴棍拼出的整数(若该数非零,则最高位不能是 0)。用火柴棍拼数字 0∼9 的…...
以高斯(GaussDB) 为例, 在cmd 命令行连接数据,操作数据库,关闭数据库的详细步骤
以下是使用 Windows 命令行(cmd) 操作 GaussDB(以 GaussDB(for openGauss) 社区版为例) 的详细步骤,涵盖 连接数据库、基本操作、关闭数据库 的全流程: 1. 环境准备 前提条件: 安装 GaussDB&a…...
Spring Boot 3 新特性实战:从理论到实践
引言 Spring Boot 自发布以来,凭借其简洁的配置和强大的功能,迅速成为 Java 开发者的首选框架。随着 Spring Boot 3 的发布,开发者们迎来了更多令人兴奋的新特性。本文将深入探讨 Spring Boot 3 的新特性,并通过实战示例展示如何…...
在 Linux 系统中,路径(Path)用于定位文件或目录的位置。路径分为两种类型:相对路径和绝对路径。它们的核心区别在于路径的起点不同
1. 绝对路径(Absolute Path) 定义: 从根目录 / 开始的完整路径,无论当前在哪个目录下,绝对路径都能唯一指向目标位置。 特点: 以 / 开头。明确且唯一,与当前所在目录无关。 示例: …...
AI 时代的通信新范式:MCP(模块化通信协议)的优势与应用
文章目录 引言 1. 传统 API 的局限性2. MCP(模块化通信协议)的核心优势2.1 更好的模块化支持2.2 低耦合性与灵活性2.3 高性能数据传输2.4 适配分布式 AI 计算架构 3. AI 时代的 MCP 应用案例4. 结论:AI 时代的通信新范式 引言 在 AI 驱动的现…...
Jmeter旧版本如何下载
1.Jmeter最新版本下载位置 https://jmeter.apache.org/download_jmeter.cgi2.Jmeter旧版本下载位置 https://archive.apache.org/dist/jmeter/binaries稳定版本:5.4.1...
XXE漏洞
一、XXE漏洞概述 1. 定义 XXE(XML External Entity Injection)即 XML外部实体注入漏洞,攻击者通过构造恶意XML数据,利用XML解析器的外部实体加载功能,实现 文件读取、内网探测、拒绝服务(DoS)…...
麒麟操作系统安装人大金仓数据库
如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情 在当前数字化转型和信息安全备受重视的背景下,众多公司积极推进国产化改造进程。在操作系统领域,统信、open 欧拉、中标麒麟、银河麒麟等国产操作系统崭露头角,逐…...
嵌入式芯片与系统设计竞赛,值得参加吗?如何选题?需要学什么?怎么准备?
2025年全国大学生嵌入式芯片与系统设计竞赛已经正式启动,3月10日大赛通知正式下发,3月10日-19日各赛道的选题也陆续公布,4月25日大赛报名截止,感兴趣的同学可以及时关注! 大赛报名通知: 大赛通知丨2025年嵌…...
dfs刷题排列问题 + 子集问题 + 组和问题总结
文章目录 一、排列问题全排列II题解代码 优美的排列题解代码 二、子集问题字母大小写全排列题解代码 找出所有子集的异或总和再求和题解代码 三、组合问题电话号码的字母组合题解代码 括号生成题解代码 组合题解代码 目标和题解代码 组合总和题解代码 总结 一、排列问题 全排列…...
Win上安装Linux(虚拟机版)
目录 1、下载虚拟机Vmware Fusion 2、linux镜像文件下载(redhat版) 3、redhat镜像安装 4、第一次启动linux系统设置 1、下载虚拟机Vmware Fusion 下载地址:Vmware下载链接 2、linux镜像文件下载(redhat版) 官网…...
从零开发数据可视化
一、可视化模版展示 二、知识及素材准备 div css 布局flex布局Less原生js jquery 的使用rem适配echarts基础 相关js、images、font百度网盘下载链接: 通过百度网盘分享的文件:素材1 链接: https://pan.baidu.com/s/1vmZHbhykcvfLzzQT5USr8w?pwdwjx9…...
访问者模式
访问者(Visitor)模式属于行为型模式的一种。 访问者模式主要用于分离算法和对象结构,从而在不修改原有对象的情况下扩展新的操作。它适用于数据结构相对稳定,而操作(行为)容易变化的场景。 访问者模式允许…...
字符指针的三道例题+算法改进
目录 一.杨氏矩阵 1.初级 2.想把下标带回来 二.字符串左旋 算法改进 三.判断是否为字符串旋转结果 算法改进 四. 3个字符函数 1.strcat 2.strncat 3.strstr 一.杨氏矩阵 数字矩阵,每行从左到右递增,每列从上到下递增,编写程序在矩…...
zephyr-中国跨国并购数据(1997-2024.3.8)
Zephyr专注于提供关于跨国并购、合资和投资的数据。本次分享的Zephyr中国跨国并购数据,涵盖了从1997年到2024年3月8日的并购金额、交易类型、交易状态等详细交易记录,可为研究者分析并购趋势与模式、绩效等提供数据支持。 一、数据简介 数据名称&#x…...
UNIX网络编程笔记:套接字
套接字 什么是套接字(Socket)? 套接字(Socket) 是网络编程中的核心概念,可以理解为一种通信端点,用于实现不同设备之间的数据交换。它类似于现实中的“插座”,为应用程序提供了一套…...
协议-CAN-CANopen
是什么? 汽车工程师的总线协议为什么? 1980年代初期,由于没有可满足汽车工程师的总线协议,人们开始开发新的串行总线在底特律举行SAE会议上CAN总线诞生,称之为Automotive Serial Controller Area Network怎么做? 核心本质 两根线上特殊电平的特殊协议张嘴显性电平‘0’,…...
星越L_ 雨刷使用功能讲解
目录 1.向下拨动 2,向上拨动 3.调节雨刷的灵敏度 4.再次向上拨动 5.再向上 6.向内侧拨动 7.后雨刷开启 8.向外侧拨动 9.更换雨刷 1.向下拨动 雨刷单次工作 2,向上拨动 自动雨刷开启 3.调节雨刷的灵敏度 转动滚轮调节雨刷的灵敏度...
关于FastAPI框架的面试题及答案解析
FastAPl是一个现代、快速(高性能)的Web框架,用于构建API,基于Python3.7+的类型提示功能。它由Python开发者SebastianRamirez创建,并且使用了Starlette作为其核心组件以及Pydantic进行数据验证。 文章目录 基础篇1. FastAPI的核心优势是什么?2. 如何定义一个GET请求路由?…...
[7-01-03].SpringBoot3集成MinIo
MinIO学习大纲 一、Spingboot整合MinIo 第1步:搭建SpringBoot项目: 第2步:引入minio依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi&q…...
一个KADB测试实践
测试结果 本文档描述xxxx测试中6个典型测试场景的测试结果及背景,旨在对不同数据量,不同存储方式,不同优化器三者的组合优化进行探索,进而为未来的类似测试提供组合优化参考。 数据插入(500万) 5进程批量…...
dockerSDK-Go语言实现
前情提要 本文基于开发一个在线代码运行平台的项目需求上,所以需要挂载目录以达到获得执行文件的目的。 步骤1 首先在docker-compose 文件中,当前容器一定要跟宿主机的套接字进行挂载 version: 3.8 services: code-runner-api: build: context: . d…...
使用excel.EasyExcel实现导出有自定义样式模板的excel数据文件,粘贴即用!!!
客户要求导出的excel文件是有好看格式的,当然本文举例模板文件比较简单,内容丰富的模板可以自行设置,话不多说,第一步设置一个"好看"的excel文件模板 上面要注意的地方是{.变量名} ,这里的变量名对应的就是…...
C++ string的模拟实现
Hello!!大家早上中午晚上好,昨天复习了string的使用,今天来模拟实现一下string!!! 一、string的框架搭建 1.1首先我们需要一个string的头文件用来做变量、函数、类等声明;再需要一个test文件来做测试,还需…...
Spring AI Alibaba ChatClient使用
一、ChatClient简介 Chat Client:https://java2ai.com/docs/1.0.0-M5.1/tutorials/chat-client/ 1、ChatClient 简介 ChatClient 提供了与 AI 模型通信的 Fluent API,它支持同步和反应式(Reactive)编程模型。与 ChatModel、Messag…...
算法及数据结构系列 - 二分查找
系列文章目录 算法及数据结构系列 - BFS算法 文章目录 二分查找框架思路经典题型二分查找寻找左侧边界寻找右侧边界 刷题875. 爱吃香蕉的珂珂1011. 在 D 天内送达包裹的能力392. 判断子序列 二分查找 框架思路 int binarySearch(int[] nums, int target) {int left 0, righ…...
回归任务训练--MNIST全连接神经网络(Mnist_NN)
import torch import numpy as np import logging from torch.utils.data import TensorDataset, DataLoader from torch.utils.data import DataLoader# 配置日志 logging.basicConfig(levellogging.INFO, format%(asctime)s - %(levelname)s - %(message)s)# 定义 loss_batch…...
SvelteKit 最新中文文档教程(8)—— 部署 Node 服务端
前言 Svelte,一个语法简洁、入门容易,面向未来的前端框架。 从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1: Svelte …...
【Linux】VMware17 安装 Ubuntu24.04 虚拟机
目录 安装教程 一、下载 Ubuntu 桌面版iso映像 二、安装 VMware 三、安装 Ubuntu 桌面版 VMware 创建虚拟机 挂载 Ubuntu ISO 安装 Ubuntu 系统 安装教程 一、下载 Ubuntu 桌面版iso映像 链接来自 清华大学开源软件镜像站 ISO文件地址:ubuntu-24.04.2-des…...
Python functools 模块的 @lru_cache 装饰器介绍
functools.lru_cache 是 Python 标准库 functools 模块中的一个装饰器,用于实现简单的缓存机制。它通过缓存函数的返回值来提高函数的执行效率,特别是对于那些被多次调用且参数相同的函数。 LRU 缓存机制 LRU 代表 Least Recently Used,即最…...
JavaScript基础-节点操作
在Web开发中,动态地修改网页内容是提升用户体验的重要手段之一。通过JavaScript操作DOM(文档对象模型)中的节点,我们可以轻松地实现这一目标。本文将介绍JavaScript中关于节点操作的基础知识,涵盖创建新节点、插入节点…...