学习HCIP的day.13

news2025/2/10 22:30:43

目录

IPV6

一、特征-升级点

二、IPV6地址

三、IPV6地址分类

1、单播地址  

2、多播地址

四、协议

五、思科配置

1、接口配置IPV6的单播地址

2、IPV6的ACL

3、IPV6的单播路由协议

4、IPV4和IPV6共存

六、华为IPV6配置

1、静态

2、OSPF

3、BGP

4、IPV4和IPV6共存


IPV6

一、特征-升级点

1、全球单播地址,IPV4地址下的公有地址满足不了世界日益增长的需求,有一部分的地址需要用到NAT地址转换协议,但是在IPV6下因为地址多,并没有NAT协议

2、可聚合性(IANA组织可以对全球的地址进行合理分配) 

3、多宿主,一个物理接口可以同时拥有多个不同网段的IPV6地址;但不同接口不能在同一网段

4、自动配置  1)DHCP V6  2)auto-config路由器接口手工配置IPv6地址,然后路由器将自己地址的前缀(网络号)下放给PC,PC将自动使用EUI-64来补充主机位;

5、即插即用,热插拔 

6、是端到端的连接,不需要NAT

7、重编址

8、简易的报头   1)没有广播机制  只有组播和单播   2)没有检验和(因为2和4层均存在校验和)   3)流标签---保留---QOS

9、安全性高和移动性高

10、未来很长一段时间内IPV4地址和IPV6地址共存

IPV4地址和IPV6地址的报头对比:

从上图中我们可以看出,双方黄色区域是一致的,IPV4报头中的红色区域被取消掉,V4中的第二列用于分片,V6可以使用扩展首部实现,两边的蓝色区域为替代部分,分为四部分:1、服务类型--->扩展表;2、报头长度--->有效负载长度;3、TTL--->跳数限制;4、协议号--->下一个头部;灰色区域为保留部分,即流标签。

二、IPV6地址

为128为二进制,在实际使用中化为冒分16进制,共32位16进制:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx

1-23位:为注册位IANA分配给各个国家或组织

24--32位:为ISP位,是国家分配给各个ISP

33-48位:为站点位,由ISP分配给各个企业

49--64位:为子网位,由网络管理员进行子网划分

IPV6地址写法:  使用冒分16进制标示,每16位为一段;共8段

2031:0000:130F:0000:0000:09C0:006A:130B

每一段地址前面的0可以省略

2031:0000:130F:0000:0000:9C0:6A:130B

若一段全为0,可以省略成一个0

2031:0:130F:0:0:9C0:6A:130B

若连续两段以上全0,可以省略为::

2031:0:130F::9C0:6A:130B

2031:0000:0000:09C0:0000:0000:0000:130B

注:若存在两个部分均为全0,只能将其中一个部分省略为::;

2031:0:0:9C0::130B

例:

FF02:0:0:0:0:0:0:0:1---FF02::1

0:0:0:0:0:0:0:1--::1

0:0:0:0:0:0:0:0--::

当使用ipv6协议携带端口号时,需要使用中括号来区分;

url:http://[2031:0:130F::9C0:6A:130B]:8080/index/html

三、IPV6地址分类

1、单播地址  

为一对一,只有单播地址能作为源地址,也可作为目标地址

(1)AGUA,全球可聚合单播地址,IPV6的公网地址(需申请),在全球通过单播传递

目前全球已规划地址----2000::/3  

范围:2000::--->3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

其中 2001::/16:为当下的IPV6实验室使用地址,也就是目前ipv6 intenet地址

2002::/16-----------6to4  tunnel 专用地址

(2)本地链路地址,自动私有地址,link-local,在IPV4中为169.254.0.0/16

FE80::/16

1)路由器接口上配置ipv6 enable命令,该接口将自动生成link-local地址;

2)若在接口配置一个IPV6单播地址,必然自动生成link-local地址;一个接口只能存在一个link-local地址;

Link-local地址的网络位固定为FE80::/64,主机位使用本地以太网接口的MAC地址来生成link-local地址主机位;串行链路无MAC地址,将循环借用本设备上以太网接口的MAC;

主机位生成方法:

Link-local地址:网络位FE80::/64  后64位使用EUI-64补充

EUI-64简易的用户界面:

1)以太网接口MAC地址:ca00.0a60.0000,在MAC的前24位和后24位之间强行插入FFFE

ca00.0aFF.FE60.0000

2)U位转换

将合成后的地址,从左往右第7位自反   若该位为0,变为1;为1变为0;

Ca00=1100 1010 0000 0000  第七位取反

1100 1000 0000 0000=c800

3)link-local地址为

FE80::c800.aff.fe60.0

作用:

(1)在同一广播域内可以通讯使用,由于本地多接口可能使用相同MAC转换,故在

使用link-local地址访问对端时,需要定义出接口;

(2)常常作为动态路由协议生成的路由表条目中的下一跳地址;因为IPV6存在多宿主概念,该地址最稳定;

(3)site-local  本地站点地址

即就是IPV4中的私有地址或者私网地址

FEC0::/16

(4)未指定地址

::

1)默认(缺省)路由  

2)在DHCP时作为无效地址(没有地址)

(5)环回地址

在IPV4中为127.0.0.1

::1

(6)IPV4兼容性地址  用于6to4 tunnel专用

以下是IPV4兼容性地址的生成过程:

假设IPV4地址为192.168.1.1,将它化为二进制,然后再转换为16进制

192:1100 0000 ---> c0

168:1010 1000 ---> a8

1:0000 0001 ---> 01

1:0000 0001 ---> 01

于是192.168.1.1的IPV4兼容性地址为2002:c0a8:0101::/48

2、多播地址

多播(组播)地址,为一对多,一般作为目标地址

任意播地址,为一到最近

FF00::/8为所有组播地址 IPV4下的组播地址:224-239用处
FF02::1224.0.0.1所有的路由与所有PC
FF02::2224.0.0.2所有的路由器
FF02::9224.0.0.9RIPNG

被请求节点组播地址:用于NDP协议,为了获取对端mac地址

构成FF02::1:FF+24位   (IPV6单播地址的后24位),只要存在一个IPV6单播地址,那么便会产生一个被请求节点组播地址;

例:2001::1(单播)-------------> FF02::1:FF00:1(组播)

IPV6下的组播MAC地址:

33.33+32位(后32位为IPV6组播地址后32位)

FF02::1----33.33.00.00.00.01

四、协议

ICMPV6:internet 控制管理协议,存在大量的子协议

1、PMTU:路径MTU发现协议,通过ICMPV6 error包来获取整段路径上最小MTU值

2、NDP:邻居发现协议,用于取代IPV4下的ARP协议

例:假设PC1和PC2通讯,1无2的MAC地址

1)1封装ICMP type 135   NS,相当于ARP的请求

源IPV6地址(1的接口ip地址)   目标IPV6地址----2的被请求节点组播地址 TTL=1

源MAC地址(1的接口mac地址) 目标MAC地址----2的被请求节点组播地址对应的MAC

2)2回应ICMP type 136   NA----相当于ARP的应答

源IPV6地址(2接口ip)         目标ipv6地址--1的接口IPv6地址

源MAC地址(2的接口mAC地址)目标mac地址--1的接口mac地址

ICMPV6中的NDP除取代了AARP外,其他的ARP协议也可被NDP取代,原理一致;

3、前缀通告:auto-config,仅在以太网环境存在

路由器周期(200s)向下发送IPV6的地址前缀(网络号)

路由器PC
ICMP type 134---RAICMP type 133---ACK-RS
源ip地址---接口ipV6地址源ipv6地址--- ::
目标ip地址---FF02::1 TTL=1目标ip地址----FF02::1 TTL=1
目标MAC(所有节点MAC)目标MAC(所有节点MAC)
r1(config)#ipv6 unicast-routingr2(config-if)#ipv6 address autoconfig

开启IPV6的单播路由功能,该功能开启后,设备上的auto-config将被激活,同时可以收发IPV6路由协议信息且可以为IPV6的流量进行路由;但是前提是路由器接口上已经拥有合法ipv6的单播地址;

只要在路由器上开启了IPV6的单播路由功能,那么该路由器将向所有存在IPV6地址的以太网接口周期发送其地址的前缀;

注:在配置动、静态IPV6路由协议时,均需要开启单播路由功能,开启后也导致该路由器会向所有的以太网接口发送前缀,若该接口管理员不要auto-config功能,可以再关闭

r1(config)#interface fastEthernet 0/0

r1(config-if)#ipv6 nd suppress-ra

五、思科配置

1、接口配置IPV6的单播地址

(1)link-local

# 注意以下为思科的命令,但是华为的也是一样
r1(config)#interface fastEthernet 0/0

r1(config-if)#ipv6 enable

(2)手工或自动配置一个IPV6的AGUA,均会生成一个link-local地址,但无论配置多少个AGUA地址,也只能生产一个link-local地址;

2、手工或自动配置接口ipv6的AGUA地址

  (1)手工

r1(config)#int s1/1

r1(config-if)#ipv6 address 2002::2/64

或着

r1(config-if)#int s1/1

r1(config-if)#ipv6 address 2009::/64 eui-64

   (2)自动配置

Auto-config        DHCPV6

切记:IPV6协议存在多宿主特征,即可以在一个接口上同时配置多个ip地址来标示该接口;但注意该接口可以配置多个相同或不同网段的地址;但同一路由器上不同的接口不能配置相同网段的ip地址;

2、IPV6的ACL

可以配置N张表,但一台设备上一个需求点只能调用一张表,从上往下逐一匹配,若上条就按上条执行,不再查看下条;

没有标准列表,只有扩展列表,且写法也只有命名写法;由于仅使用扩展列表,故放置的位置尽量靠近源,但不能在源上,因为不能限制自身的产生的流量

r2(config)#ipv6 access-list ccie

r2(config-ipv6-acl)#deny tcp host 12::1 host 12::2 eq 23  拒绝一个host对另一个主机的telnet

r2(config-ipv6-acl)#deny IPV6 12::/64 12::/64  拒绝一段地址到另一地址的所有通信

r2(config-ipv6-acl)#permit ipv6 any any   允许所有

注:在IPV6 ACL中不使用反掩码,直接使用掩码;

r2(config-ipv6-acl)#int s1/0

r2(config-if)#ipv6 traffic-filter ccie in 接口调用时注意方向

注:在IPV6下的ACL

开头隐含

r2(config-ipv6-acl)#permit icmp any any nd-na

r2(config-ipv6-acl)#permit icmp any any nd-ns

默认隐含

r2(config-ipv6-acl)#deny ipv6 any any

3、IPV6的单播路由协议

在使用路由协议前一定需要开启IPV6的单播路由功能,否则不转发IPV6的流量

(1)IPV6静态路由协议

1)普通静态路由

r1(config)#ipv6 route 2::/64    serial 1/1

r1(config)#ipv6 route 2::/64    12::2 

#                  目标网络号   出接口或下一跳

MA网络建议下一跳,点到点网络建议出接口

 2)浮动静态路由--修改默认管理距离

r1(config)#ipv6 route 3::/64 12::2 ?

  <1-254>  Administrative distance

  <cr>

 3)空接口防环

r2(config)#ipv6 route 2::/63 null 0

在更新源路由器上,空接口指向汇总地址;

  4)缺省路由

r2(config)#ipv6 route ::/0 12::1

注:带源ping 时,只能使用接口;或者使用扩展追踪;

r3#ping 2::2 source loopback 0

注:由于IPV6存在多宿主,使用接口为源时,默认使用第一地址来访问,建议扩展追踪

r3#traceroute

Protocol [ip]: ipv6

Target IPv6 address: 2::2

Source address: 3::3

(2)RIPNG,使用同RIPV2一样的算法;组播更新地址FF02::9  UDP 521

r1(config)#ipv6 unicast-routing  开启单播路由功能

r1(config)#ipv6 router rip ? 启动协议时需配置进程号,进程号仅具有本地意义

  WORD  User selected string identifying this process



r1(config)#ipv6 router rip a

r1(config-rtr)#

宣告的含义:1、激活接口 2.路由

r1(config)#interface s1/1

r1(config-if)#ipv6 rip a enable

r1(config-if)#exit

r1(config)#int lo0

r1(config-if)#ipv6 rip a enable

注:IPV6下到所有接口上进行配置

手工汇总:更新源路由器上所有更新发出的接口上进行配置

r1(config)#int s1/1

r1(config-if)#ipv6 rip a summary-address 1::/63

缺省路由:在边界路由器上所有同内网相连的接口上配置,使其向内网所有邻居发出一条缺省信息

r3(config)#int s1/0

r3(config-if)#ipv6 rip a default-information ?

  only       Advertise only the default route

  originate  Originate the default route

选择only将发出缺省路由,同时其他的路由不会被转发

选择originate 缺省和明细均发送

(3)OSPF V3,在原有OSPFV2的基础上,使用新的LSA来专门携带V6的信息;区域规则,SPF算法同IPV4下完全一致。

r1(config)#ipv6 unicast-routing

r1(config)#ipv6 router ospf 1   启动时需要配置进程号

r1(config-rtr)#              

r1(config-rtr)#router-id 1.1.1.1  RID依然使用IPV4地址,规则同OSPF V2一致

宣告:

  1. 激活接口  2、传递路由 3、区域划分
r1(config)#interface lo0

r1(config-if)#ipv6 ospf 1 area 0

r1(config-if)#int s1/1

r1(config-if)#ipv6 ospf 1 area 0

r1(config-if)#int lo1

r1(config-if)#ipv6 ospf 1 area 0

配置完成后生成邻居表,MA网络存在DR/BDR选举,选举规则同OSPFV2一致;

另各个邻居间状态也一致;

r1#show ipv6 ospf neighbor 邻居表

邻居表:

Neighbor IDPri StateDead TimeInterface IDInterface
2.2.2.21FULL/  - 00:00:303Serial1/1
r2#show ipv6 ospf database  数据库表

r1#show ipv6 route 路由表

IPv6 Routing Table - 13 entries

Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP

       U - Per-user Static route

       I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary

       O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2

       ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2

缺省路由配置:在边界路由器上配置

r3(config)#ipv6 router ospf 1

r3(config-rtr)#default-information originate ?     

  always       Always advertise default route        强制发出

  metric       OSPF default metric                  修改起始度量

  metric-type  OSPF metric type for default routes         修改度量类型,默认2

  route-map    Route-map reference                 关联route-map

  <cr>

(4)BGPV4+  在BGPV4的基础上配置IPV6关系;

r2(config)#router b 2

r2(config-router)#b router-id 2.2.2.2

r2(config-router)#neighbor 12::1 remote-as 1

r2(config-router)#neighbor 3::3 remote-as 3

r2(config-router)#neighbor 3::3 update-source loopback 0                  

r2(config-router)#neighbor 3::3 ebgp-multihop

此时邻居间仅存在V4下的邻居关系,没有V6关系;不能传递V6路由,故需要在已经建立的V4邻居关系基础上再来建立V6的邻居关系,传递V6的信息

注:BGP V4+使用家族模式来配置IPV6的信息,原理为在原有BGPV4的协议中开发出的扩展配置模式;

r1(config-router)#address-family ipv6  进入IPV6家族模式

r1(config-router-af)#neighbor 12::2 activate   和该邻居建立IPV6的邻居关系

注:关于IPV6建邻以后所有配置必须全部在家族模式中进行

r1# show bgp ipv6 summary  查看BGP的邻居关系

BGP router identifier 1.1.1.1, local AS number 1

Neighbor     V    AS  MsgRcvd  MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd

12::2            4     2      15             16             2         0        0     00:00:28           0

r1(config)#router b 1

r1(config-router)#address-family ipv6

r1(config-router-af)#network 1::/64 宣告路由

查看IPV6的BGP表

r1#show bgp ipv6

BGP table version is 2, local router ID is 1.1.1.1

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,

              r RIB-failure, S Stale

Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path

*> 1::/64              ::                    0         32768 i

IPV6下的其他配置

r2(config)#router bgp 2

r2(config-router)#address-family ipv6

r2(config-router-af)#neighbor 3::3 next-hop-self

r2(config-router-af)#neighbor 3::3 route-reflector-client

r2(config-router-af)#neighbor 3::3 route-map ccie out

4、IPV4和IPV6共存

(1)普通tunnel

r1(config)#interface tunnel 0

r1(config-if)#ipv6 address 10::1/64  该tunnel接口必须工作于V6环境

r1(config-if)#tunnel source 12.1.1.1

r1(config-if)#tunnel destination 23.1.1.2 

r1(config-if)#tunnel mode ipv6ip   必须修改模式为ipv6ip

注:普通的tunnel需要基于所有的ipv6网络配置一条隧道,且均需再配置一条静态路由;

(2)6to4tunnel---仅需配置一条隧道,一条静态即可访问所有IPV6网络

将边界路由器的公网IPV4地址换算为IPV4兼容性地址,然后将该地址应用到内网;再配置一条到兼容性地址的静态路由,通过隧道传递;传输数据时,一旦路由到达隧道口,隧道将根据目标IPV6地址计算对应的IPV4地址;

优点:1、不需要指定tunnel 目标   2、一条静态路由即可

例:地址转换

12.1.1.1 兼容性地址:2002:C01:101::/48

23.1.1.2 兼容性地址:2002:1701:102::/48

注:该地址在使用时,一般将其划分为64位;

配置命令:

r1(config)#interface l0

r1(config-if)#ipv6 address 2002:c01:101::1/64

r1(config-if)#exit

tunnel配置:

r1(config)#interface tunnel 0

首先需要配置隧道接口的IPV6地址----4种方法

r1(config-if)#ipv6 address 2002:c01:101:1::1/64  使用一个6TO4地址

r1(config-if)#ipv6 address 2002:c01:101:2::/64 eui-64  使用6to4地址

r1(config-if)#ipv6 enable   相当于不配地址

r1(config-if)#ipv6 unnumbered loopback 0  借内网某个IPv6接口的地址


r1(config-if)#tunnel source s1/1   定义IPV6源地址所在接口

r1(config-if)#tunnel mode ipv6ip 6to4   模式标记

写一条静态指向tunnel

R1(config)#ipv6 route 2002::/16 tunnel 0

(3)双栈:一台设备同时连接IPV4/IPV6网络,若目标IP为IPV6地址使用IPV6的源ip,通过IPV6的路由表传递;IPV4同理;当进行DNS查询时,优先查询V6网络中的DNS 服务器;

六、华为IPV6配置

[r1]ipv6   必须先在设备上开启IPV6服务

[r1]interface GigabitEthernet 0/0/1

[r1-GigabitEthernet0/0/1]ipv6 enable   再在接口上激活IPV6服务,才能配置ipv6地址

配置ipv6地址

[r1-GigabitEthernet0/0/1]ipv6 address 2001::1/64

[r1-GigabitEthernet0/0/1]ipv6 address 2002::1/64

[r1-GigabitEthernet0/0/1]ipv6 address 2003::1/64

[r1-GigabitEthernet0/0/1]ipv6 address 2009::/64  eui-64

[r1]display  ipv6 interface GigabitEthernet 0/0/1

注:多宿主是可以在同一个接口上配置多个IPV6地址;但华为在一个接口的同一网段ip只能配置一个;所有厂商在不同接口必须配置不同网段ip;

1、静态

基本写法

[r1]ipv6 route-static 2:: 64 12::2 

[r1]ipv6 route-static 2:: 64 GigabitEthernet 0/0/1

                      目标网段    下一跳或出接口

MA网络使用下一跳,点到点网络使用出接口;

[r1]ping ipv6 2::2

汇总  -- 到达多个连续子网,且基于相同的路径时,可以将目标网段汇总编写为一条;

# 缺省
[r1]ipv6 route-static :: 0 12::2

# 空接口
[r1]ipv6 route-static 1:: 63 NULL 0

# 浮动静态
[r1]ipv6 route-static 3:: 64 12::2 preference  61

 

2、OSPF

[r1]ospfv3

[r1-ospfv3-1]router-id 1.1.1.1

[r1-GigabitEthernet0/0/1]ospfv3 1 area  0  进入接口进行宣告

 

3、BGP

r1]bgp 1

[r1-bgp]router-id 1.1.1.1

[r1-bgp]pe 2::2 as-number 1

[r1-bgp]pe 2::2 connect-interface LoopBack 0

[r1-bgp]ipv6-family

[r1-bgp-af-ipv6]peer 2::2 enable  

在建立V4下关系后,再进入V4+ 建立关系,之后所有的BGP配置在家族模式中配置

4、IPV4和IPV6共存

(1)使用普通的GRE来将两个V6网络基于一个V4网络进行通讯

[r1]interface Tunnel 0/0/0

[r1-Tunnel0/0/0]ipv6 enable

[r1-Tunnel0/0/0]ipv6 address 10::1/64

[r1-Tunnel0/0/0]tunnel-protocol gre

[r1-Tunnel0/0/0]source 12.1.1.1

[r1-Tunnel0/0/0]destination 23.1.1.2

写一条静态指向tunnel

[r1]ipv6 route-static 3:: 64 10::2

(2)6to4tunnel   

普通tunnel在多个V6网络构建为一个V6网络时,存在地址规划,指数的定义tunnel链路和路由信息,工程量巨大,极难维护;但是6 to 4 tunnle可以让用于自行定义IPV6地址,均需要配置一条tunnel和一条路由即可;

2002::/16   6to4 tunnel 专用地址

IPV4兼容地址:每一个IPV4地址都可以转换为一段IPV6地址;

例:本地V4网络地址为12.1.1.1 对应的V4兼容地址2002:0c01:0101::/48

0c01:0101=12.1.1.1

[r1-LoopBack0]int t0/0/1

[r1-Tunnel0/0/1]ipv6 enable

[r1-Tunnel0/0/1]ipv6 address 2002:c01:101:1::1/64

[r1-Tunnel0/0/1]tunnel-protocol ipv6-ipv4 6to4

[r1-Tunnel0/0/1]source 12.1.1.1

[r1-Tunnel0/0/1]q  

[r1]ipv6 route-static 2002:: 16 Tunnel 0/0/1

(3)双栈  设备间V4/V6网络同时工作

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

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

相关文章

我的内网渗透-提权大法

拿到shell之后乱码解决 chcp 65001 #将编码设置为UTF-8的编码 出现这个提示就是切换成功&#xff0c;后面也是可以正常显示的 提权 方法一&#xff1a; 新版本的kali直接getsystem&#xff0c;可以提权成功&#xff08;有时候可以&#xff0c;有时候不可以&#xff09; mete…

chatgpt赋能python:Python循环3次的方法

Python循环3次的方法 循环是编程中经常用到的一个基本操作&#xff0c;可以让相同的代码运行多次。在Python中&#xff0c;循环也是极其重要的&#xff0c;其中最常用的是for和while循环。在本文中&#xff0c;我们将介绍如何使用Python循环3次。 使用for循环 使用for循环是…

电气器件系列三十八:耐压测试仪2

某型号官方资料&#xff1a; 系列耐压测试仪是测量耐压强度的仪器&#xff0c;可以直观、准确、快速地测试各种被测对象的击穿电压、漏电流等电气安全性能指标&#xff0c;并可以作为高压源用来测试元器件和整机性能。 本系列测试仪符合如下标准&#xff1a;家用电器类标准(IE…

响应式网页

解决方案&#xff1a; 媒体查询 max-width 最大宽度 <768 (从大到小) min-width 最小宽度 >768 (从小到大) media(条件){html{background-color: green;} } 需求&#xff1a; 默认网页前景色是灰色屏幕亮度大于等于768px&#xff0c;网页背景色是粉色屏幕亮度大于…

谈谈GPT-4文本代码降本减料引起的质量下降

先是少数用户提出质疑&#xff0c;随后大量网友表示自己也注意到了&#xff0c;还贴出不少证据。 有人反馈&#xff0c;把GPT-4的3小时25条对话额度一口气用完了&#xff0c;都没解决自己的代码问题。 无奈切换到GPT-3.5&#xff0c;反倒解决了。 总结下大家的反馈&#xff0c…

gitlab+jenkins+harbor实现CI/CD(2)——初级

文章目录 一、docker git安装二、jenkins使用步骤创建项目在jenkins主机获取密钥 三、实时触发构建四、整合harbor仓库 一、docker git安装 git安装 yum install -y gitjenkins主机上安装docker-ce [rootvm6 yum.repos.d]# yum install -y docker-ce [rootvm6 ~]# systemctl…

01-抒写代码之诗:Golang 关键字的文学探索

&#x1f4c3;个人主页&#xff1a;个人主页 &#x1f525;系列专栏&#xff1a;Golang基础 &#x1f4ac;Go&#xff08;又称Golang&#xff09;是由Google开发的开源编程语言。它结合了静态类型的安全性和动态语言的灵活性&#xff0c;拥有高效的并发编程能力和简洁的语法。G…

chatgpt赋能python:Python如何开三次方根

Python如何开三次方根 Python是一种强大的编程语言&#xff0c;它被广泛用于数据科学、机器学习、Web开发和自动化等领域。在这篇文章中&#xff0c;我们将介绍如何用Python开三次方根。 什么是三次方根&#xff1f; 三次方根是一个数学术语&#xff0c;表示一个数的立方根。…

《统计学习方法》——条件随机场(上)

引言 这是统计学习方法第十一章条件随机场的阅读笔记&#xff0c;包含所有公式的详细推导。 条件随机场(conditional random field,CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型&#xff0c;其特点是假设输出随机变量构成马尔可夫随机场。 建议先阅…

chatgpt赋能python:Python和SEO:如何通过Python编程获得更好的结果?

Python和SEO&#xff1a;如何通过Python编程获得更好的结果&#xff1f; Python已经成为SEO行业和数字营销领域中的热门工具。Python编程语言可以提高SEO结果&#xff0c;加快啮合速度并获得更好的结果。在本篇文章中&#xff0c;我们将介绍Python编程语言在SEO中的应用&#…

docker容器的介绍

目录 一、docker介绍和安装 官方网站&#xff1a;Docker: Accelerated, Containerized Application Development 下载docker引擎地址&#xff1a;Install Docker Engine | Docker Documentation 安装步骤 1、卸载原来安装过的docker软件&#xff0c;如果没有安装则可以不用…

Spring注解使用

文章目录 前言存储Bean对象① 配置扫描路径 -② 使用注解存储Bean对象Controller(控制器存储) 这里讲一下Spring的调用流程 及 注解的含义getBean里面的命名规则使用⽅法注解&#xff1a;Bean 获取Bean对象1. 属性注⼊属性注入的优缺点 2. 构造⽅法注⼊ (官方推荐)构造方法注入…

【c++】static和const修饰类的成员变量或成员函数

目录 1、静态成员变量 2、静态成员函数 3、常函数 4、常对象 当我们使用c的关键字static修饰类中的成员变量和成员函数的时候&#xff0c;此时的成员变量和成员函数被称为静态成员。 静态成员包含&#xff1a; 静态成员变量静态成员函数 1、静态成员变量 静态成员变量有…

window系统:python3 + auto-py-to-exe 打包playwright为exe,内含独立浏览器

auto-py-to-exe的使用参考一下链接&#xff1a; 链接: python—auto-py-to-exe—.py文件打包成.exe文件最全最详细&#xff08;用不同的类别做教程&#xff09; 1、使用auto-py-to-exe打包playwright成exe&#xff0c;运行之后运行一直报错&#xff1a;FileNotFoundError: [Wi…

Java-API简析_java.lang.Character类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意&#xff0c;谢绝转载&#xff01;&#xff08;请尊重原创&#xff0c;博主保留追究权&#xff09; https://blog.csdn.net/m0_69908381/article/details/131178778 出自【进步*于辰的博客】 其实我的【Java-API】专栏内的博文对大家来说意义是不大的。…

OJ: Digit Primes

目录 1.题目 2.中文翻译 3.代码 4.代码中部分程序段思路详解 4.1 素数判定高效率代码&#xff1a; ​编辑 4.2 最小的素数是 2 4.3 python中如何计算一个数各个位的和 1.题目 题目描述&#xff1a; A prime number is a positive number, which is divisible by exactly…

chatgpt赋能python:在Python中建立虚拟环境

在Python中建立虚拟环境 在Python编程中&#xff0c;建立虚拟环境是一项非常重要的工作。虚拟环境不仅可以避免不同版本的库之间的冲突&#xff0c;还可以使我们更好地控制项目的依赖关系。在本文中&#xff0c;我们将介绍如何使用Python建立虚拟环境。 第一步&#xff1a;安…

Jmeter参数化方式

前言&#xff1a;什么是参数化&#xff1f; 把测试数据组织起来&#xff0c;用不同的测试数据调用相同的测试方法&#xff08;实现测试数据跟测试脚本分离&#xff09;。 一、用户定义的变量&#xff1a; 1、作用&#xff1a;定义全局变量 2、局限性&#xff1a;每次取值都是…

chatgpt赋能python:Python建模型指南

Python建模型指南 Python是一种功能强大的编程语言&#xff0c;以其优雅的语法和丰富的库而闻名。而且&#xff0c;Python也是机器学习、人工智能和数据科学领域的首选语言之一。在本文中&#xff0c;我们将学习Python中如何建模型。 什么是建模&#xff1f; 建模是指使用统…

【MySQL数据库 | 第十七篇】索引以及索引结构介绍

目录 前言&#xff1a; 索引简介&#xff1a; 索引结构&#xff1a; 二叉树索引结构 Tree&#xff08;普通二叉树&#xff09; B-Tree(多路平衡查找树) BTree 哈希索引数据结构 总结&#xff1a; 前言&#xff1a; 在实际生活中&#xff0c;我们对SQL语句进行优化实际上有…