当前位置: 首页 > news >正文

动态主机配置协议 (DHCPv4)介绍,详细DHCP协议学习笔记

定义

动态主机配置协议 (DHCP) 是一种用于集中对用户 IPv4 地址进行动态管理和配置的技术。为与 IPv6 动态主机配置协议 (DHCPv6) 进行区分,本文统一将动态主机配置协议称为 DHCPv4。

DHCPv4 协议由 RFC 2131 定义,采用客户端/服务器通信模式,由 DHCPv4 客户端 (DHCP Client) 向 DHCPv4 服务器 (DHCP Server) 提出配置申请,服务器返回为客户端分配的配置信息。

地址分配机制

DHCPv4 提供两种地址分配机制,网络管理员可以根据网络需求为不同的主机选择不同的分配策略:

动态分配机制

通过 DHCPv4 为主机分配一个有使用期限(租期)的 IPv4 地址。适用于主机需要临时接入网络或空闲地址数小于网络主机总数且主机不需要永久连接网络的场景。

静态分配机制

网络管理员通过 DHCPv4 为指定的主机分配固定的 IPv4 地址。相比手工静态配置 IPv4 地址,通过 DHCPv4 方式静态分配机制避免人工配置发生错误,方便管理员统一维护管理。

目的

随着网络规模的扩大和网络复杂度的提高,网络配置变得越来越复杂,再加上计算机数量剧增且位置不固定,引发了 IPv4 地址变化频繁以及 IPv4 地址不足的问题。为了实现网络可以动态合理地分配 IPv4 地址给主机使用,动态主机配置协议 DHCPv4 应运而生。

受益

DHCPv4 的主要受益有以下两点:

降低客户端的配置和维护成本

DHCPv4 易配置部署,对于非技术用户,DHCPv4 能够将客户端与配置相关的操作降至最低,并能够降低远程部署和维护成本。

集中管理

DHCPv4 服务器可以管理多个网段的配置信息,当某个网段的配置发生变化时,管理员只需要更新 DHCPv4 服务器上的相关配置即可。

DHCPv4 典型组网

DHCPv4 组网中包括以下三种角色:

DHCPv4 客户端

发送 DHCPv4 请求报文,通过 BOOTP 或 DHCPv4 协议请求获取 IPv4 地址等网络参数的设备。例如,IP 电话、PC、手机、无盘工作站等。

DHCPv4 中继

负责转发 DHCPv4 服务器和 DHCPv4 客户端之间的 DHCPv4 报文,协助 DHCPv4 服务器向 DHCPv4 客户端动态分配网络参数的设备。

DHCPv4 服务器

负责从地址池中选择 IPv4 地址分配至 DHCPv4 客户端,还可以为 DHCPv4 客户端提供其他网络参数,如默认网关地址、DNS 服务器地址和 WINS 服务器地址。

DHCPv4 报文类型

DHCPv4 报文是基于 UDP 协议传输的。DHCPv4 客户端向 DHCPv4 服务器发送报文时采用 68 端口号,DHCPv4 服务器向 DHCPv4 客户端发送报文时采用 67 端口号。目前 DHCPv4 定义了如下八种类型的报文:

报文名称

说明

DHCP DISCOVER

DHCPv4 客户端首次登录网络时进行 DHCP 交互过程发送的第一个报文,用来寻找 DHCPv4 服务器。

DHCP OFFER

DHCPv4 服务器用来响应 DHCP DISCOVER 报文,此报文携带了各种配置信息。

DHCP REQUEST

用于客户端初始化后、重启后或更新 IPv4 地址租约时发送的报文。

DHCP ACK

服务器对客户端的 DHCP REQUEST 报文的确认响应报文。

DHCP NAK

服务器对客户端的 DHCP REQUEST 报文的拒绝响应报文。

DHCP DECLINE

当客户端发现服务器分配给它的 IPv4 地址发生冲突时发送的报文。

DHCP RELEASE

客户端主动释放服务器分配给它的 IPv4 地址时发送的报文。

DHCP INFORM

客户端获取 IPv4 地址后,向服务器请求更为详细的配置信息时发送的报文。

DHCPv4 报文格式

DHCPv4 报文格式是在 BOOTP 报文格式的基础上发展而来,因此 DHCPv4 服务器也支持与 BOOTP 客户端之间进行交互。

DHCPv4 报文中的 Options 字段

Options 字段用来存放分配给 DHCPv4 客户端的控制信息和参数,位于 DHCPv4 报文末尾。Options 字段由 Type、Length 和 Value 三部分组成。

Options 号

Options 作用

1

设置子网掩码选项。

3

设置网关地址选项。

6

设置 DNS 服务器地址选项。

12

设置 DHCPv4 客户端的主机名选项。

50

设置请求 IPv4 地址选项。

51

设置 IPv4 地址租约时间选项。

53

设置 DHCPv4 消息类型。

54

设置服务器标识。

55

设置请求选项列表。

58

设置续约 T1 时间。

59

设置续约 T2 时间。

DHCP 选项 82

Option 82 记录了 DHCP 客户端的位置信息,可以配置在 DHCP 中继或 DHCP 监听设备上。对于从 DHCP 客户端收到的 DHCP 报文,该报文中携带的 Option 82 将按照 Option 82 策略进行处理后再发送给 DHCP 服务器。

DHCP服务器根据DHCP报文中携带的Option82信息为客户端分配IP地址和其他参数,提供更加灵活的地址分配方案。

Option 82包含两个常用的子选项:Circuit ID和Remote ID。Circuit ID主要用于标识客户端所属的VLAN和接口,Remote ID标识客户端从哪个设备接入,一般为设备的MAC地址。

数据包格式

电路 ID 子选项

Circuit ID 包含三种类型:Type 0(值为端口索引)、Type 1(值为端口名称+VLAN ID)、Type 2(值为端口描述+VLAN ID),下面按照类型列出其格式。

  • 类型 0(端口索引)

Circuit ID 类型为 0,其中 Circuit ID 子选项使用物理接口或者 LAG 接口。

  • 类型 1(端口名称)

Circuit ID类型为1,其中端口名称和VLAN ID组成Circuit ID子选项值。

  • 类型 2(端口描述)

Circuit ID类型为1,其中端口名称和VLAN ID组成Circuit ID子选项值。

远程 ID 子选项

Remote ID包含两种类型:Type 0(值为系统MAC)和Type 1(值为主机名),下面按类型列出格式。

  • 类型 0(系统 MAC)

远程 ID 类型为 0,其中系统 MAC 用于远程 ID 子选项。

如何处理选项 82?

系统对收到的DHCP报文中的Option82进行如下处理:

  • 当收到不带 giaddr带有选项 82 的DHCP Discover/Request/Release/Decline/Inform 消息时,

    • 如果选项 82 trust-all被禁用,则丢弃该消息。

    • 如果启用了Option 82 trust-all 选项 ,则该类消息将按照用户配置的 Option 82 策略进行处理。Option 82 策略可以设置四种操作:KeepDropInsertReplace。默认操作为Keep,即从 DHCP 客户端收到的 DHCP 消息中的 Option 82 保持不变并进行转发。

  • 当出现除上述类型以外的任何其他类型的 DHCP 发现/请求/释放/拒绝/通知消息时,将允许接收该消息,并根据选项 82 策略进行处理。

  • 当收到不带选项 82 的DHCP Offer/Ack/Nak 消息时,将转发该消息而不带选项 82。

  • 当收到带有选项 82 的DHCP Offer/Ack/Nak 消息时,选项 82 会在转发消息之前被删除。

选项 82 信任全部

交换机收到的不带 giaddr 但包含 Option 82 的 DHCP Discover/Request/Release/Decline/Inform 数据包默认会被丢弃,但如果开启了 Option 82 trust all 功能,则此类数据包会被允许并处理。

因此,在配置选项 82 策略时,需要同时考虑网络拓扑和信任配置,特别是如果客户端和中继代理/启用 DHCP 侦听的设备之间存在可能插入选项 82 的交换机。在此设备上启用 DHCP 选项 82 信任所有,以确保这些数据包不会被丢弃。

DHCPv4 客户端首次接入网络的报文交互过程

首次接入网络的 DHCPv4 客户端与 DHCPv4 服务器的报文交互过程称为 DHCPv4 报文四步交互:

第一步:发现阶段

首次接入网络的DHCPv4客户端不知道DHCPv4服务器的IPv4地址,为了学习到DHCPv4服务器的IPv4地址,DHCPv4客户端以广播方式发送DHCP DISCOVER报文(目的IPv4地址为255.255.255.255)给同一网段内的所有设备(包括DHCPv4服务器或中继)。DHCP DISCOVER报文中携带了客户端的MAC地址(chaddr字段)、需要请求的参数列表选项(Option55)、广播标志位(flags字段)等信息。

第二步:提供阶段

与DHCPv4客户端位于同一网段的DHCPv4服务器都会接收到DHCP DISCOVER报文,DHCPv4服务器选择跟接收DHCP DISCOVER报文接口的IPv4地址处于同一网段的地址池,并且从中选择一个可用的IPv4地址,然后通过DHCP OFFER报文发送给DHCPv4客户端。

通常,DHCPv4服务器的地址池中会指定IPv4地址的租期,如果DHCPv4客户端发送的DHCP DISCOVER报文中携带了期望租期,服务器会将客户端请求的期望租期与其指定的租期进行比较,选择其中时间较短的租期分配给客户端。

DHCPv4服务器在地址池中为客户端分配IPv4地址的顺序如下:

IPv4地址分配顺序不支持修改。

  1. DHCPv4服务器上已配置的与客户端MAC地址静态绑定的IPv4地址。

  2. 客户端发送的DHCP DISCOVER报文中Option50(请求IPv4地址选项)指定的地址。

  3. 地址池内查找“Expired”状态的IPv4地址,即曾经分配给客户端的超过租期的IPv4地址。

  4. 在地址池内随机查找一个“Idle”状态的IPv4地址。

  5. 如果未找到可供分配的IPv4地址,则地址池依次自动回收超过租期的(“Expired”状态)和处于冲突状态(“Conflict”状态)的IPv4地址。回收后如果找到可用的IPv4地址,则进行分配;否则,DHCPv4客户端等待应答超时后,重新发送DHCP DISCOVER报文来申请IPv4地址。

设备支持在地址池中排除某些不能通过DHCPv4机制进行分配的IPv4地址。例如,客户端所在网段已经手工配置了地址为192.168.1.100/24的DNS服务器,DHCPv4服务器上配置的网段为192.168.1.0/24的地址池中需要将192.168.1.100的IPv4地址排除,不能通过DHCPv4分配此地址,否则,会造成地址冲突。

为了防止分配出去的IPv4地址跟网络中其他客户端的IPv4地址冲突,DHCPv4服务器在发送DHCP OFFER报文前通过发送源地址为DHCPv4服务器IPv4地址、目的地址为预分配出去IPv4地址的ICMP ECHO REQUEST报文对分配的IPv4地址进行地址冲突探测。如果在指定的时间内没有收到应答报文,表示网络中没有客户端使用这个IPv4地址,可以分配给客户端;如果指定时间内收到应答报文,表示网络中已经存在使用此IPv4地址的客户端,则把此地址列为冲突地址,然后等待重新接收到DHCP DISCOVER报文后按照前面介绍的选择IPv4地址的优先顺序重新选择可用的IPv4地址。

此阶段DHCPv4服务器分配给客户端的IPv4地址不一定是最终确定使用的IPv4地址,因为DHCP OFFER报文发送给客户端等待16秒后如果没有收到客户端的响应,此地址就可以继续分配给其他客户端。通过下面的选择阶段和确认阶段后才能最终确定客户端可以使用的IPv4地址。

第三步:选择阶段

如果有多个DHCPv4服务器向DHCPv4客户端回应DHCP OFFER报文,则DHCPv4客户端一般只接收第一个收到的DHCP OFFER报文,然后以广播方式发送DHCP REQUEST报文,该报文中包含客户端想选择的DHCPv4服务器标识符(即Option54)和客户端IPv4地址(即Option50,填充了接收的DHCP OFFER报文中yiaddr字段的IPv4地址)。

DHCPv4客户端广播发送DHCP REQUEST报文通知所有的DHCPv4服务器,它将选择某个DHCPv4服务器提供的IPv4地址,其他DHCPv4服务器可以重新将曾经分配给客户端的IPv4地址分配给其他客户端。

设备作为DHCPv4客户端,如果网络中有多个DHCPv4服务器,DHCPv4客户端会根据收到DHCP OFFER报文的顺序对DHCPv4服务器进行轮询,在前一个DHCPv4服务器分配IPv4地址失败时,选择下一个DHCPv4服务器分配IPv4地址。

第四步:确认阶段

当DHCPv4服务器收到DHCPv4客户端发送的DHCP REQUEST报文后,DHCPv4服务器回应DHCP ACK报文,表示DHCP REQUEST报文中请求的IPv4地址(Option50填充的IPv4地址)分配给客户端使用。

DHCPv4客户端收到DHCP ACK报文,会广播发送免费ARP报文,探测本网段是否有其他终端使用服务器分配的IPv4地址,如果在指定时间内没有收到回应,表示客户端可以使用此地址。如果收到了回应,说明有其他终端使用了此地址,客户端会向服务器发送DHCP DECLINE报文,并重新向服务器请求IPv4地址,同时,服务器会将此地址列为冲突地址。当服务器没有空闲地址可分配时,再选择冲突地址进行分配,尽量减少分配出去的地址冲突。

当DHCPv4服务器收到DHCPv4客户端发送的DHCP REQUEST报文后,如果DHCPv4服务器由于某些原因(例如协商出错或者由于发送REQUEST过慢导致服务器已经把此地址分配给其他客户端)无法分配DHCP REQUEST报文中Option50填充的IPv4地址,则发送DHCP NAK报文作为应答,通知DHCPv4客户端无法分配此IPv4地址。DHCPv4客户端需要重新发送DHCP DISCOVER报文来申请新的IPv4地址。

DHCPv4客户端重用曾经使用过的地址的工作原理

DHCPv4客户端非首次接入网络时,可以重用曾经使用过的地址。DHCPv4客户端与DHCPv4服务器交互DHCPv4报文,以重新获取之前使用的IPv4地址等网络参数,该过程称为两步交互。

是否支持重用曾经使用过的IPv4地址,因不同客户端而异。下面的DHCPv4客户端以PC为例。

第一步:选择阶段

客户端广播发送包含前一次分配的IPv4地址的DHCP REQUEST报文,报文中的Option50(请求的IPv4地址选项)字段填入曾经使用过的IPv4地址。

第二步:确认阶段

DHCPv4服务器收到DHCP REQUEST报文后,根据DHCP REQUEST报文中携带的MAC地址来查找有没有相应的租约记录,如果有则返回DHCP ACK报文,通知DHCPv4客户端可以继续使用这个IPv4地址。否则,保持沉默,等待客户端重新发送DHCP DISCOVER报文请求新的IPv4地址。

DHCPv4 客户端更新租期的工作原理

DHCPv4 服务器给每个分配给客户端的 IPv4 地址定义一个使用期限(租期)。客户端在租期到期前的某个时间点更新 IPv4 地址的租期。更新租期的过程如下:

  1. 当租期达到 50%(T1)时,客户端发送 DHCP REQUEST 报文请求更新租期。

  2. 当租期达到 87.5%(T2)时,如果仍未收到应答,客户端再次发送 DHCP REQUEST 报文。

  3. 如果租期时间到时都没有收到回应,客户端停止使用此 IPv4 地址,重新发送 DHCP DISCOVER 报文请求新的 IPv4 地址。


相关文章:

动态主机配置协议 (DHCPv4)介绍,详细DHCP协议学习笔记

定义 动态主机配置协议 (DHCP) 是一种用于集中对用户 IPv4 地址进行动态管理和配置的技术。为与 IPv6 动态主机配置协议 (DHCPv6) 进行区分,本文统一将动态主机配置协议称为 DHCPv4。 DHCPv4 协议由 RFC 2131 定义,采用客户端/服务器通信模式&#xff…...

Vue.js组件开发-如何处理跨域请求

在Vue.js组件开发中,处理跨域请求(CORS,即跨来源资源共享)通常不是直接在Vue组件中解决的,而是需要后端服务器进行相应的配置,以允许来自不同源的请求。不过,前端开发者也需要了解一些基本的COR…...

【C++】构造函数与析构函数

写在前面 构造函数与析构函数都是属于类的默认成员函数! 默认成员函数是程序猿不显示声明定义,编译器会中生成。 构造函数和析构函数的知识需要建立在有初步类与对象的基础之上的,关于类与对象不才在前面笔记中有详细的介绍:点我…...

Agent区别于MOE和RAG的核心; Agent(智能体)、RAG和MOE区别

Agent区别于MOE(专家混合模型)和RAG(检索增强生成)的核心 目录 Agent区别于MOE(专家混合模型)和RAG(检索增强生成)的核心自主性与决策能力环境交互与学习能力多模态感知与处理能力Agent(智能体)、RAG(检索增强生成)和MOE(专家混合模型)区别Agent(智能体)RAG(检…...

【PCL】Segmentation 模块—— 欧几里得聚类提取(Euclidean Cluster Extraction)

1、简介 PCL 的 Euclidean Cluster Extraction(欧几里得聚类提取) 是一种基于欧几里得距离的点云聚类算法。它的目标是将点云数据分割成多个独立的簇(clusters),每个簇代表一个独立的物体或结构。该算法通过计算点与点…...

LuaJIT Garbage Collector Algorithms

Explain 本篇文章是对Make Pall发表wili内容《LuaJIT 3.0 new Garbage Collector》的翻译和扩展,因为原文是对LuaJIT 2.x GC重要功能的简介和对LuaJIT 3.0 new GC的工作计划,所以它并不是系统性介绍GC的文章。希望以后能有精力系统性的对LuaJIT 2.x GC做…...

go采集注册表

package mainimport ("fmt""golang.org/x/sys/windows/registry""log""os""strconv""strings" )func USBSTOR_Enum() {// 打开注册表键keyPath : SYSTEM\CurrentControlSet\Services\USBSTOR\Enumk, err : regist…...

软件工程师欧以宁:引领无人机导航与物联网安全的技术革新

在科技日新月异的今天,软件工程师欧以宁凭借卓越的技术能力和前瞻性的创新思维,成为了无人机自主导航和物联网安全领域的佼佼者。作为一名深耕技术前沿的专家,欧以宁不仅推动了无人机导航技术的突破性进展,还为智能家居和物联网的安全架构提供了全新的解决方案。她的研究成果,以…...

从零开始:Gitee 仓库创建与 Git 配置指南

引言 Git 是一款广泛使用的版本控制工具,它能够帮助开发者在开发过程中高效地管理代码的版本。而 Gitee(码云)是国内知名的 Git 托管平台,它提供了强大的代码托管、团队协作和项目管理功能。如果你是 Git 和 Gitee 的新手&#x…...

浅谈计算机网络02 | SDN控制平面

计算机网络控制平面 一、现代计算机网络控制平面概述1.1 与数据平面、管理平面的关系1.2 控制平面的发展历程 二、控制平面的关键技术剖析2.1 网络层协议2.1.1 OSPF协议2.1.2 BGP协议 2.2 SDN控制平面技术2.2.1 SDN架构与原理2.2.2 OpenFlow协议2.2.3 SDN控制器 一、现代计算机…...

在 QNAP NAS中使用 Container Station 运行 Docker 的完整指南

QNAP 为用户提供了一个名为 Container Station 的应用,它在 QNAP NAS 上将 Docker 和 LXC 结合在一起,通过图形化界面,让用户更轻松地在 NAS 上管理容器。本文将带你一步步了解如何在 QNAP NAS 上安装和使用 Container Station,以…...

XML在线格式化 - 加菲工具

XML在线格式化 打开网站 加菲工具 选择“XML 在线格式化” 输入XML,点击左上角的“格式化”按钮 得到格式化后的结果...

大数据学习(34)-mapreduce详解

&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦&#x1f91…...

代码合并冲突解决push不上去的问题

环境:【IntelliJ IDEA】 【Gerrit】 1、错误信息 代码合并,迭代1合并到迭代2,解决冲突后,依然push不上去,报错信息如下: remote: Processing changes: refs: 1 remote: Processing changes: refs…...

万字长文介绍ARINC 653,以及在综合模块化航空电子设备(IMA)中的作用

文章目录 一、引言二、ARINC 653背景三、整体系统架构四、应用/执行(APEX)接口五、ARINC 653 RTOS内部机制六、健康监测功能七、软件应用八、ARINC 653现状九、总结 一、引言 在现代航空领域,综合模块化航空电子设备(IMA&#xf…...

MySQL 与 Redis 数据一致性 2

1. 强一致还是最终一致?2. 先写 MySQL 还是先写Redis?case 1 3. 缓存(Redis)更新还是清除?更新策略更新策略会有数据不一致问题?数据不一致的概率与影响如果使用监听binlog更新数据还会出现数据不一致问题?binlog的消费问题 使用消息队列行不行?其他方案总结: 数据不一致…...

MySQL程序之:使用类似URI的字符串或键值对连接到服务器

本节介绍使用类似URI的连接字符串或键值对来指定如何为MySQLShell等客户端建立到MySQL服务器的连接。 以下MySQL客户端支持使用类似URI的连接字符串或键值对连接到MySQL服务器: MySQL Shell实现X DevAPI的MySQL连接器 本节记录了所有有效的类似URI的字符串和键值…...

Docker私有仓库管理工具Registry

Docker私有仓库管理工具Registry 1 介绍 Registry是私有Docker仓库管理工具,Registry没有可视化管理页面和完备的管理策略。可借助Harbor、docker-registry-browser完成可视化和管理。Harbor是由VMware开发的企业级Docker registry服务。docker-registry-browser是…...

若依前后端分离项目部署(使用docker)

文章目录 一、搭建后端1.1 搭建流程:1.2 后端零件:1.2.1 mysql容器创建:1.2.2 redis容器创建:1.2.3 Dockerfile内容:1.2.4 构建项目镜像:1.2.5 创建后端容器: 二、前端搭建:2.1 搭建流程&#x…...

Unity2021.3.13崩溃的一种情况

如果出现如下的报错,可能是软件冲突的原因。自己的原因是使用f.lux这款软件似乎和Unity相互冲突,出现下面报错。 错误信息如上图...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)

目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

vxe-table vue 表格复选框多选数据,实现快捷键 Shift 批量选择功能

vxe-table vue 表格复选框多选数据&#xff0c;实现快捷键 Shift 批量选择功能 查看官网&#xff1a;https://vxetable.cn 效果 代码 通过 checkbox-config.isShift 启用批量选中,启用后按住快捷键和鼠标批量选取 <template><div><vxe-grid v-bind"gri…...

Oracle实用参考(13)——Oracle for Linux物理DG环境搭建(2)

13.2. Oracle for Linux物理DG环境搭建 Oracle 数据库的DataGuard技术方案,业界也称为DG,其在数据库高可用、容灾及负载分离等方面,都有着非常广泛的应用,对此,前面相关章节已做过较为详尽的讲解,此处不再赘述。 需要说明的是, DG方案又分为物理DG和逻辑DG,两者的搭建…...