HCIP学习-IPv6

news2024/10/7 14:26:51

目录

前置学习内容

IPv6解决的一些IPv4的缺陷

无限的地址

层次化的地址结构

即插即用

简化报文头部

IPv4和IPv6报头比较

端到端的网络罗完整性

安全性增强

挣钱QoS特性

IPv6地址介绍

格式

首选格式

压缩格式

内嵌IPv4地址格式的IPv6地址格式

IPv6的网络前缀和接口标识

接口标识生成方法

手工配置

EUI-64自动生成

例子

系统设置随机IP

IPv6地址分类

任播地址

单播地址

GUA——全球单播地址

ULA——唯一本地地址

LLA——本地链路地址

作用

组播地址

被请求节点组播

特殊地址

ICMPV6

PMTUD

​编辑

解决问题

接口正式发送IPv6报文前,将经历的过程

地址配置

GUA地址的获取方法

手工配置

无状态自动配置(SLAAC --- NDP协议) 

路由器请求报文(RS)

路由器通告报文(RA)

有状态自动配置

DAD(冲突检测)和地址解析

邻居请求报文(NS)

邻居通告报文(NA)

请求报文ARP和NDP比较区别

应答报文

IPv6配置

静态配置

 IPv4到IPv6的一个过度技术

GRE隧道来实现IPV6网络的互通

IPv6网络不多情况

IPv6网络过多情况

当IPV6网络过多时,GRE面临的问题

6TO4隧道技术

例子

配置

双栈


前置学习内容

HCIA学习--TCP协议的一些简介,UDP协议、IP协议报头详解及TCP三次握手、四次挥手_两台主机中通信进程的端口号不能相同_板栗妖怪的博客-CSDN博客

IPv6和IPv4的工作过程其实差不多,只是IPv4的一个升级版本,就是为了解决IPv4地址不够的问题。

IPv6解决的一些IPv4的缺陷

无限的地址

ipv6由128位二进制构成,地址非常多

层次化的地址结构

IPv6在分配时更加合理,更便于进行汇总等操作

为了更好的汇总转发,IPv4在我国分配的就不是很好,然后汇总时不好汇总,转发效率高,这样网络就没有那么好。所以说我国现在很提倡IPv6。

即插即用

IPv4在进行地址分配时还需要一个DHCP服务器,但是IPv6只需要一个网关且网关存在IPv6地址就可以分配地址了,这个·IPv6这个不需要DHCP服务器就可以分配地址的技术叫做,SLAAC(无状态地址自动配置技术),这个技术相较于DHCP服务更加方便快捷

简化报文头部

简化报文头部不是报头长度小了,指的是里面的参数内容小了

IPv4和IPv6报头比较

(下图中左边是拓展头部,右边是IPv4和IPv6的报头比较)

首先来对比一下IPv4的ToS字段这个在IPv6中的字段是Traffic Class作用就是服务类型可以去将报文根据不同的服务类型分出不同的数据流,用来做策略

IPv6的Payload Length 字段是数据长度没有头部长度,那为啥IPv6没有首部长度(因为IPv6把选项字段删除了,这意味着IPv6头部长度不可变了,所以不需要头部长度了),这个改变是非常重要的一个改变,大大提升了转发速度,将IPv6头部长度改成定长查询时只查询这个长度的就可以,不像IPv4一样还得区分报头长度大大减少了查询时间。

IPv6的Next Header字段这个是在IPv4的Protocol字段,用于标识上层协议

IPv6的Hop Limit字段就是IPv4的TTL字段

IPv6的字段Flow Label这个字段就是用来标记不同流量,这个字段可以和Traffic Class字段一起使用,这样区分流量的字段就长了,这样流量可以区分的更仔细一些,IPv6在策略的控制上比IPv4上更强,但是该参数暂时保留并没有投入使用。

IPv6的校验和去掉了,这个去掉的原因是,在报头封装到三层以前其他的协议也会校验,若在三层报头再添加一个校验和这个校验的次数太多来了,所以可以有这个校验和但是没有必要。

IPv6中没有IPv4中第二行分片的字段,也没有可选字段,这样IPv6的设计是有问题的,去掉的那些字段可能会导致IPv6的功能有些不完整,上面说的去掉的字段只再IPv6的基本字段中删除,IPv6还设置了一些拓展头部,若是有需要就在基本报头后面添加相应的拓展头部,然后这个拓展头部是用Next Header来标识,在IPv4中是不管你需不需要这个字段他都会添加到报头中

端到端的网络罗完整性

你如果想要通过一台电脑去攻击互联网中另外一台电脑,它出去的时候需要经过地址转换最后是公网地址出去,然后如果被攻击的电脑想要找到攻击的这台电脑,就需要通过公网的IP去找到私网的IP,若边界路由器没有记录私网出去的行为,没有监管机制,这样就无法追踪(但是现在一般都有实名认证,一般都会找到),然后IPv6由于地址数量很多可以做到每台设备都有对应的IP地址,所以可以实现端到端的网络完整性。

安全性增强

IPv6为TCP/IP协议栈设计了一套安全保障传输体系(IPSEC:因特网协议安全协议),IPv4也可以使用(IPv4开始没有这个IPSEC是为了IPv6设计的)

挣钱QoS特性

头部新增了一个流标签字段Flow Label,更方便做QoS,但是该字段目前保留

IPv6地址介绍

(注:在IPV6中,接口支持多宿主,即一个接口可以配置多个不同网段的IPV6地址(就类似一个人有多个手机号,别人给那个手机号打电话都可以找到那个人),在IPv4中一些厂商的设备也是可以在一个接口配置多个IP地址,在华为设备上是不允许一个接口上配置同一个网段的多个IPv6地址)

注:上面这个特性与任播有关

格式

128位二进制

冒分十六进制(用冒号每四位分为一组)

首选格式

2001:0123:0000:4560:0000:0000:0000:001A(首选格式,不区分大小写)

压缩格式

由于首选格式还是有点长继续来简化一下

规则

每一段前导0可以省略,如果这一-段全是0, 则至少保留一个0,拖尾的0不能省略

来以上面的例子实现一下

首先前导0可以省略

那就成了2001:123:0000:4560:0000:0000:0000:1A

然后全零保留1个零

2001:123:0:4560:0:0:0:1A

规则

一个或多个连续的段位全0是可以用“::”标识,但是一个IPv6地址中只能出现一处“::”以

以上面化简过的来举个例子

2001:123:0:4560::1A

(经过规则简写过后的IP地址被称位压缩地址)

内嵌IPv4地址格式的IPv6地址格式

前96位地址是IPv6地址,后32位是IPv4地址

例子

::192.168.1.1

IPv6的网络前缀和接口标识

IPV6中也存在网络位和主机位。只不过,在IPV6中将网络位称为网络前缀,将主机位称为接口标识。

在IPV6地址中, 也需要用子网掩码来标识网络前缀的长度,但是,只有简写格式

例子
2001::1 /64

接口标识生成方法

手工配置

自己手工填写一个不会冲突的地址即可

EUI-64自动生成

首先IPv6地址默认64位,接口标识就剩64位

然后要利用MAC地址来标识IP地址,但是MAC只有48位2进制不足64位二进制,这是就要在48位的MAC地址中间(24位的位置),增加FFFE,添加16位,形成一个64位的二进制,在这个64位的二进制中,找到第7位取反。

例子

首先网络前缀2001::,MAC地址是00e0:fcFF:FEf6:1fc0

然后要借助MAC地址来搞首先在MAC地址中间添加FFFE,添加后中间变红的就是新添加的 00e0:fcFF:FEFF:FEf6:1fc0

然后在这个64位二进制中找到第7位取反,下面就是部分展开的二进制,找到第7位取反

0000 0000  e0:fcFF:FEFF:FEf6:1fc0

0000 0010  e0:fcFF:FEFF:FEf6:1fc0

最后的IPv6地址就是2001::02e0:fcFF:FEFF:FEf6:1fc0

系统设置随机IP

不同的系统中不同方式设置IP

IPv6地址分类

IPV6地址主要分为了三类:单播地址,组播地址,任播地址

任播地址

标识的是一组网络接口,发送一个目标IPV6地址为任播地址的数据包,其效果是发送到该组所有成员接口中距离本地最近的一 个接口。

单播地址

GUA——全球单播地址

 单播地址相当于IPV4中的公网IP地址,可以在全球范围内使用的单播地址。
目前使用的GUA地址范围为:
2000:: /3 ---这个地址段分配GUA地址
下面是展开后的范围(这个范围就已经比IPv4大了)
2000:0000:0000:0000:0000:0000:0000:0000--- 3FFF:FFFF:FFF:FFFF:FFFF:FFFF:FFFF:FFFF
目前商用的IPV6地址段: 2001:: /16
                                       2002:: /16 ----用于6to4隧道技术

ULA——唯一本地地址

相当于IPV4中的私网地址,但是,因为IPV6中不用NAT技术,所以,这一部分私网地址只是用于私网内实验使用,不允许出现在IPV6公网路由中。
范围

 FC00::/7

目前仅使用了FD00::/8

                      FC00::/8目前保留,后面拓展使用

LLA——本地链路地址

IPv4中也存在本地链路地址——169.254.0.0/16

在IPV6中,因为接口是支持多宿主的,所以,每一个接口,只要激活了IPV6,就会给自己配-一个LLA地址。

这个地址和IPv4一样也有固定格式FE80::/10,但是本地链路地址有个规定从第10位开始到64位固定是0,所以可以看作FE80::/64

接口标识将按照EUI-64的方法自动生成

作用

IPv6地址在同一接口可能配置了好多地址,所以动态路由协议,选择下一跳IP是,出于稳定性考虑,会优先选择LLA地址作为下一跳地址

组播地址

其目的是为了标识某个组播组,发送一个 目标IP地址为组播地址的数据包,则该报文将被发送至整个组播组中的所有成员。

IPV4中的本地链路组播:
RIPV2---224.0.0.9
OSPF---224.0.0.5,224.0.0.6
224.0.0.1---针对的是所有节点,配置了IP的节点
224.0.0.2---针对所有路由器

IPv6组播地址与IPv4的组播地址对应关系

224.0.0.1 --- FF02::1
224.0.0.2 --- FF02::2
224.0.0.9 --- FF02::9
224.0.0.5 --- FF02::5
224.0.0.6 --- FF02::6

组播地址会有一个对应的IPv6组播MAC地址,这个地址前16位是固定的(33:33)然后的剩下的32位就是对应的IPv6组播地址的后32位

224.0.0.1 --- FF02::1---33:33:00:00:00:01
224.0.0.2 --- FF02::2---33:33:00:00:00:02
224.0.0.9 --- FF02::9---33:33:00:00:00:09
224.0.0.5 --- FF02::5---33:33:00:00:00:05
224.0.0.6 --- FF02::6---33:33:00:00:00:06

被请求节点组播

当一个节点,貝备单播地址之后,将自动生成一个被请求节点组播地址。生成后,被请求节点就会加入到对应组播组中。实际工程中很难将不同的两个IP分到同一个对应组播组中(IPv6很长,然后后实际工程中一般是网络前缀用到120位然后只剩8位,这种情况想IPv6的后24位地址相同是很难的)
FF02::1:FF(前104位固定)
后24位为单播地址的后24位

例子
单播地址:2001:1
被请求 节点组播地址:FF02::1:FF00:1

特殊地址

1、::,128位全0地址,等同于IPv4中的0.0.0.0(可以代表没有地址,也可以代表所有地址写缺省的时候)

2、::1,前127位全0,相当于IPv4中的环回地址127.0.0.1

ICMPV6

互联网控制报文协议,这个协议在IPv6中很重要

IPv6没有ARP协议,取而代之的是NDP协议(邻居发现协议),NDP协议集成在ICMPV6协议中,相当于ICMV6协议的一个子协议,上面说那个即插即用是有一个SLAAC,这个基于NDP这个协议来实现,ICMPV6协议还具有path-MTU发现机制(PMTUD),因为ICMPV6集成很多功能,所以,不同功能的数据报会通过ICMPV6数据报中的type字段进行区分

PMTUD

这个东西可以用来解决IPv4中遗留的一个问题,下面来搭建一个场景来描述这个问题

首先现在有一个信息想要经过R1然后去往4.0网段然后R1和R2之商议的MTU值是1500(一段链路中的两个接口MTU值相同数据才可以转发)然后R2和R3之间不同R3和R4之间又是另外一个,这样就会在去往下一个链路的时候会分片,这个样就会浪费了很多资源,降低了效率,这个问题在IPv4中一直没有解决,然后IPv6中出现了PMTUD这个问题的得到了解决

解决问题

当IPv6得路由条目搭建好了,就以上面得图为例子,就假设是4.0网段然后写入了路由表中,路由表中生成了一条到达4.0网段得信息,生成这个信息后,R1会自动发送一个检测包,这个检测包是ICMPV6的一个功能,然后这个包检测到来了R1于R2相连的接口的MTU是1500,然后到了R2,这个数据包发现R2与R3的相连的接口MTU是1400,这个时候R2并不会帮你转发这个数据包,反而R2会回一个ICMPV6的数据包给R1这个数据包里就回携带一个MTU值是1400,这个意思就是告诉R1你要想过去就把MTU值改成1400否则我要分片,然后R1再发探测包,然后遇到R3,然后R3回ICMPV6数据包,再改发送MTU值,直至最终到达4.0网段

总结:就是通过ICMPV6这个数据包的一些功能找到去往某一网段的一个最小MTU值

接口正式发送IPv6报文前,将经历的过程

地址配置

GUA地址的获取方法

手工配置

无状态自动配置(SLAAC --- NDP协议) 

无状态自动配置---无需DHCP服务器,只要有网关,便可以让接入IPV6网络中的设备获得IPV6地
址,即插即用,无状态意思就是网关啥都不管,只下发一个网段,不管你配了一个啥地址,配了IP的主机到底在不在线,网关全不管。这个SLAAC需要利用ICMPV6中的两种报文

路由器请求报文(RS)

主机主动发送RS请求

路由器通告报文(RA)

网关回复RA报文,报文中包含网关的网络前缀,后面的接口标识需要设备自动生成。type类型135

还存在另一种形式,网关设备会周期性的主动发送RA报文,携带自己的网络前缀。(华为设备默认关闭自动发送功能。)

因为无状态地址配置无法下发DNS等其他参数信息,所以,一般多应用于物联网等终端较多,且不需要除地址外其他参数的场景。(比如说那些只能家具之类的东西)

有状态自动配置

就是用DHCP服务区进行自动配置

DAD(冲突检测)和地址解析

DAD和地址解析就是IPV4中ARP协议完成的任务,在IPV6中都由NDP协议来完成。
在NDP完成地址解析时需要使用两种报文

邻居请求报文(NS)

相当于ARP请求报文, type = 135

邻居通告报文(NA)

相当于ARP应答报文, type =136

请求报文ARP和NDP比较区别

在ARP中--- SIP:自己IP DIP: 请求的IP
在NDP中--- SIP:自己的IP DIP: 请求IP所对应的被请求节点组播地址。
在ARP中--- SM:自己MAC DM:全F
在NDP中--- SM:自己MAC DM: 被请求组播地址对应的组播MAC地址

总结:对于NDP来说,由于IPv6中组播组的地址很难在一个组播组中,这个样子就和单播有点像了

应答报文

在ARP和NDP均使用单播回复

IPv6配置

以下图作为例子来进行配置

R1和R2之间配置12::/64网段 R2和R3之间配置23::/64网段

R1上环回1::1 /64 R2上环回2::2/64 R3上环回3::3/64

静态配置

和IPv4相差不大,同理也可以汇总

[r1]ipv6 --- 让这台设备可以转发IPV6报文
[r1-GigabitEthernet0/0/0]ipv6 enable --- 让接口允许配置IPV6地
[r1-GigabitEthernet0/0/0]ipv6 address 12::1 64 ---- 配置IPV6地
[r1]ipv6 route-static 2:: 64 12::2 ---- 静态路由
[r1]ping ipv6 3::3
[r1]ipv6 route-static :: 0 12::2 --- 缺省路由

RIPNG配置 

1,启动进程
[r1]ripng 1
[r1-ripng-1]
2,宣告
[r1-GigabitEthernet0/0/0]ripng 1 enable
OSPFV3 (这个协议不弹日志的)
1,启动进程
[r1]ospfv3 1
[r1-ospfv3-1]router-id 1.1.1.1 这里rid用啥都可以只要可以区分开来就行
2,宣告
[r1-GigabitEthernet0/0/0]ospfv3 1 area 0 将接口宣告到不同的区域中
MP-BGP
这个和IPv4相差不大
[r1]bgp 1
[r1-bgp]router-id 1.1.1.1
[r1-bgp]peer 2::2 as 1
[r1-bgp]peer 2::2 connect-interface l0 红色的这部分只是在BGPv4中建立了还需要再MP-BGP中建立,就是下面的操作,然后剩下的和BGP里面配置的和邻居相关的都在 [r1-bgp-af-ipv6] 这个里面配置
[r1-bgp]ipv6-family
[r1-bgp-af-ipv6]peer 2::2 enable
[r1-bgp-af-ipv6]network 1:: 64
[r1-bgp-af-ipv6]

 IPv4到IPv6的一个过度技术

现如今整个大的网络还是IPv4网络,要想全面换成IPv6的网络还需要一些时间,然后现在已经有一些零星的IPv6网络,这些IPv6网络之间的通讯,就可以直接搞一个GRE隧道

GRE隧道来实现IPV6网络的互通

IPv6网络不多情况

配置就是和IPv4中配置相差不大,不过是把配置中IPv4的地址缓冲IPv6的罢了
(这个在IPv6中ICMPV6对应的协议号是58)

IPv6网络过多情况

当IPV6网络过多时,GRE面临的问题

1,需要知道对端的IP地址
2,添加到达对端的路由
IPv6的网络到处都是还很分散这样想满足上面两条内容不是很容易,这是就出现了一个技术 6TO4隧道技术

6TO4隧道技术

在IPV6地址中,还存在一种地址 ---- IPV4兼容地址,我们现在的情况时如果你拥有一个合法的IPV4地址,则将拥有一段IPV6地址,这些地址就是IPV4兼容地址。我们拉宽带然后现在走的是IPv4网络,那这样就会需要一个IPv4公网地址,然后若我们把这个IPv4的公网地址买来以后,我们就会自动生成一段IPv6地址,这个IPv6地址是根据你的公网地址转换过来的
例子
12.0.0.1
先转换位2进制
00001100 00000000 00000000 00000001 ---
在转化位16进制
0C00:0001
然后加上前缀
2002:0C00:1:: /48 ---- 这一段的IPV6地址就是IPV4兼容地址, 这一段IPv6地址都可配置使用

配置

[r1-Tunnel0/0/1]ipv6 address 2002:0c00:1:1::1 64
[r1-Tunnel0/0/1]tunnel-protocol ipv6-ipv4 6to4
[r1-Tunnel0/0/1]source 12.0.0.1

双栈

就是将服务器或者设备多配置一个IPv6的地址,然后运营商提供两种链路选择,一个走IPv6的线路,一个走IPv4的线路,然后我们呢会逐渐倾向于从IPv6访问,然后IPv4会逐渐关闭,就是逐渐的蚕食。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/976768.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TRICONEX 8312 数字输入模块

Triconex 8312 数字输入模块是一种用于工业自动化和控制系统的模块,通常用于监测和采集数字信号。以下是Triconex 8312 数字输入模块的一些常见产品特点: 多通道输入:8312 模块通常具有多个数字输入通道,允许同时监测多个数字信号…

【Linux】多线程2——线程互斥与同步/多线程应用

文章目录 1. 线程互斥1.1 问题引入1.2 线程互斥的相关概念1.3 互斥量mutex1.4 互斥量实现原理1.5 死锁 2. 线程安全和可重入函数3. 线程同步3.1 同步概念3.2 条件变量 4. 生产消费模型4.1 基于阻塞队列的cp模型4.2 基于环形队列的cp模型POSIX信号量 5. 线程池5.1 互斥量RAII版本…

总结/笔记-vue中的插槽(默认插槽、具名插槽、作用域插槽)

问题: 遇到了一个插槽,写法为 #default ”{ row }“ 插槽知识点: 定义 插槽,用于 在组件中 引用外部组件或自定义组件的内容。 即 子组件中提供给父组件使用的一个占位符,父组件可以在这个占位符中填充任何模板代…

【TI毫米波雷达笔记】ADCBuf外设初始化配置及驱动(以IWR6843AOP为例)

【TI毫米波雷达笔记】ADCBuf外设初始化配置及驱动&#xff08;以IWR6843AOP为例&#xff09; ADCBuf是为mmwave服务的 在配置之前需要配置好mmwave #include < ti/drivers/ADCBuf.h>对应mmwave studio&#xff1a; ADCBuf模块上电 调用&#xff1a; ADCBuf_init();A…

bash: cmake: command not found...+++++++lsb_release: command not found

一 .bash: cmake: command not found… centos中安装那个cmake。 1、问题 [rootPC3 home]# cmake bash: cmake: command not found... Similar command is: make当前系统&#xff1a; [rootPC3 home]# lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx…

dex2oat编译模式、触发场景、命令强制执行

dex2oat简单理解就是把delvik虚拟机的可执行文件dex转化成AndroidRuntime虚拟机的可执行文件oat。 Android T版本由PKMS下发命令、native层进程installd负责具体执行dex2oat操作。installd回去调用dex2oat64完成编译工作&#xff0c;可以将dex2oat64理解成一个程序。源码路径&…

本地使用GFPGAN进行图像人脸修复

人脸修复 1.下载项目和权重文件2.部署环境3.下载权重文件4.运行代码5.网页端体验 首先来看一下效果图 1.下载项目和权重文件 https://github.com/iptop/GFPGAN-for-Video.git2.部署环境 根据README文件部署好环境&#xff0c;额外还需要&#xff1a; cd GFPGAN-1.3.8 pyt…

在Qt创建的UI中放一个显示点云的窗口(PCL+QT5)

1、首先在Qt Designer创建UI后&#xff0c;拖一个Widget窗口出来 2、在对象查看器中右击该Widget&#xff0c;选择提升窗口部件&#xff0c;如下操作&#xff1a; 3、把UI转出来放在VS项目中&#xff0c;其中你的UI代码头文件会自带QVTKOpenGLNativeWidget.h&#xff0c;当然你…

企业专题片的优势

企业专题片可以通过生动、感人的方式传达企业形象和信息&#xff0c;引起观众的共鸣和兴趣。它是一种强有力的营销工具&#xff0c;能够提升品牌形象、增加产品或服务的认知度&#xff0c;并在激烈的市场竞争中突显企业的实力和成果。企业专题片具有多个好处和影响&#xff0c;…

【C语言】入门——数组

目录 ​编辑 1.一维数组的创建和初始化 1.1一维数组的创建&#xff1a; 1.2 一维数组的初始化 &#xff1a; 2.二维数组的创建的初始化 2.1二维数组的创建&#xff1a; 2.2二维数组的初始化&#xff1a; 3.数组越界 4.数组的使用 4.1一维数组的使用&#xff1a; 4.2二维…

1、PostgreSQL数据库的历史和特性简介

PostgreSQL是一个开源的关系型数据库管理系统&#xff08;DBMS&#xff09;&#xff0c;它具有强大的功能和广泛的可扩展性&#xff0c;被广泛用于各种规模的应用程序和项目中。 一、PostgreSQL 的发展历史 PostgreSQL数据库的来历可以追溯到20世纪80年代末和90年代初。最早由…

MyBatisPlus入门篇1 - 入门案例、CRUD开发、Lombok、分页查询

目录 MyBatisPlus是基于MyBatis框架基础上开发的增强型工具&#xff0c;旨在简化开发、提高效率。 1.入门案例 ①创建SpringBoot项目&#xff0c;添加Spring Web和Mysql driver ②手动在pom.xml文件中添加mybatis plus和druid依赖 <dependency><groupId>com.b…

攻防世界-Get-the-key.txt

原题 解题思路 notepad看到&#xff0c;这应该是一个压缩包&#xff0c;解压。 但是解压的时候提示格式不对&#xff0c;不是zip&#xff0c;rar可以。解压出来有一个key.txt&#xff0c;打开就行。

taro h5 点击页面任意地方关闭弹窗组件 --- findDOMNode 判断点击节点是否属于某个组件

场景&#xff1a;如图&#xff0c;弹窗在大组件中&#xff0c;点击小组件显示弹窗&#xff0c;要求点击除弹窗外的任何元素都能关闭弹窗并且能执行元素原有的逻辑 方法一 最简单的是弹窗背后有一个覆盖整个页面的透明的cover, 点击直接关闭&#xff0c;但是这样虽然点击页面…

【算法篇】动态规划(二)

文章目录 分割回文字符串编辑距离不同的子序列动态规划解题思路 分割回文字符串 class Solution { public:bool isPal(string& s,int begin,int end){while(begin<end){if(s[begin]!s[end]){return false;}begin;end--;}return true;}int minCut(string s) {int lens.si…

便捷式发电机UL2201/UL2200测试报告要求

便携式发电机是一种燃料驱动的引擎或电机&#xff0c;可将化学能直接转换为交流电输出。便携式发电机可以随身携带&#xff0c;或用人力推拉移动。便携式发电机可能还包括更为复杂的便携式逆变发电机&#xff0c;这种发电机也由燃料驱动但内置交流逆变器。便携式电源逆变器可将…

react 初级基础

react基本使用 项目创建 项目的创建命令 npx create-react-app react-basic创建一个基本元素进行渲染 // 1 导入react 和 react-dom import React from "react"; import ReactDOM from "react-dom";// 2 创建 react 元素 React提供了创建元素的api Rea…

QCAD for Mac免费下载:卓越的2D辅助设计工具

QCAD是一款功能强大的2D辅助设计画图软件&#xff0c;现已适配Mac系统&#xff0c;为Mac用户提供了便捷高效的设计工具。 QCAD提供了丰富的绘图功能&#xff0c;可以轻松绘制各种平面图形&#xff0c;包括直线、圆、椭圆、弧线等。 同时&#xff0c;QCAD还支持多种绘图工具&am…

webpack打包常用配置项

webpack打包配置项 参考链接 文件结构&#xff1a;最基础版 先安装 npm i webpack webpack-cli --dev 运行命令&#xff1a;npx webpack 进行打包 1. 配置webpack.config.js文件&#xff1a; const path require(path); module.exports {mode: development, // 开发环境 …

聊聊如何玩转spring-boot-admin

前言 1、何为spring-boot-admin&#xff1f; Spring Boot Admin 是一个监控工具&#xff0c;旨在以良好且易于访问的方式可视化 Spring Boot Actuators 提供的信息 快速开始 如何搭建spring-boot-admin-server 1、在服务端项目的POM引入相应的GAV <dependency><grou…