第十五天

IPV6

特征-升级点:

1、全球单播地址 ---- IPV4地址下的公有地址 V6下没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共存

黄色  ---  一致

红色  ---  取消   V4中的第二列用于分片  V6可以使用扩展首部实现

蓝色  ---  替代   1、服务类型--扩展表

2、报头长度---有效负载长度

3、TTL--跳数限制

4、协议号---下一个头部

灰色  ---  保留  --- 流标签

IPV6地址

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:9C0: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协议携带端口号时,需要使用中括号来区分;

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

IPV6地址分类

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

2、多播地址   一对多   作为目标地址

3、任意播地址-----一到最近

单播地址

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       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

00e0 4cff  fe68  0384

0000000011100000

0000001011100000

Fe80::02e0:4cff.fe68.0384

0c10.37b0.56aa

Fe80:0e10:37ff:feb0:56aa

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

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

(2)常常作为动态路由协议生成的路由表条目中的下一跳地址;

因为IPV6存在多宿主概念,该地址最稳定;

3、site-local  本地站点地址----私有地址  私网地址

FFC0::/16

4、未指定地址-----::

::

1)默认(缺省)路由   2)在DHCP时作为无效地址(没有地址)

5、环回地址---127.0.0.1

::1

6、*IPV4兼容性地址  用于6to4 tunnel专用

假设IPV4地址为192.168.1.1

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

172.16.20.62

2002:Ac10:143e::/48

192.168.78.23

2002:c0a8:4117::/48

多播地址

FF00::/8所有组播地址     IPV4下在组播:224-239

FF02::1---224.0.0.1   所有的路由与所有PC

FF02::2---224.0.0.2   所有的路由器

FF02::9---224.0.0.9 --- RIPNG

Ff02:;5/6---224.0.0.5/6 --- ospfv3

*被请求节点组播地址:---用于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除取代了ARP外,其他的ARP协议也可被NDP取代,原理一致;

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

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

路由器                           PC

ICMP type 134---RA             ICMP 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-routing       r2(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

(1)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、IV6的单播路由协议-----在使用路由协议前一定需要开启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 ID     Pri   State           Dead Time   Interface ID    Interface

2.2.2.2           1   FULL/  -        00:00:30    3            Serial1/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

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   模式标记

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

【3】双栈---一台设备同时连接IPV4/IPV6网络,若目标IP为V6地址使用V6的源ip,通过V6的路由表传递;V4同理;

当进行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;

静态

基本写法

[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

OSPF

[r1]ospfv3

[r1-ospfv3-1]router-id 1.1.1.1

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

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配置在家族模式中配置

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

[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 tunnel 0/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

0001011100000001

23.1.1.1

2002:1701:0101: :/64

34.1.1.2

2002:2201:0102::/64

2、双栈  设备间V4/V6网络同时工作

23.1.1.1

2002:1701:0101::/48

34.1.1.2

2002:2201:0102

HCIP之路IPV6相关推荐

  1. HCIP——IPV4和IPV6共存

    IPV4和IPV6共存 [1]普通tunnel r1(config)#interface tunnel 0 r1(config-if)#ipv6 address 10::1/64 该tunnel接口必 ...

  2. HCIP之路重点LSA

    第六天 OSPF 的不规则区域 1,远离骨干的非骨干区域 2,不连续骨干 OSPF 区域划分的要求: 1,区域之间必须存在 ABR  2,区域划分必须按照星型拓扑结构划分 1,通过 VPN 隧道将R4 ...

  3. HCIP之路---vlan实验

    先在每个交换机上都创建vlan 2 3 4 5 6 1.pc2/4/5/6同一网段,pc1/3与2/4/5/6不在同一网段 设置1/3 --- 192.168.1.0/24 2/4/5/6 --- 1 ...

  4. 【转载】江苏省IPv6骨干网和南京城域网的建设

    2013-12-24 中国教育网络 作者:吴剑章 第二代中国教育和科研计算机网CERNET2是中国下一代互联网示范工程CNGI最大的核心网和惟一的全国性学术网,也是目前世界上规模最大的纯IPv6互联网 ...

  5. 走近TCP/IP协议

    转载,来自:[url]http://pfw.sky.net.cn/article/4695.html[/url] 走近TCP/IP协议 1.TCP/IP是什么? TCP/IP协议(Transmissi ...

  6. [IPv6] 如何在ASUS無線路由器設定IPv6網際網路?

    site://https://www.asus.com/tw/support/FAQ/113990/ ASUSWRT在韌體版本3.0.0.3.78以後有支援『IPv6網際網路』功能: 注意: IPv6 ...

  7. HCIP——IPv6地址基础

    IPV6 一.特征-升级点 1.全球单播地址 ---- IPV4地址下的公有地址 V6下没nat 2.可聚合性(IANA组织对全球的地址进行合理分配) 3.多宿主---一个物理接口可以同时拥有多个不同 ...

  8. 监控易火星版纳管IPv6:IP地址管理V2.0的进化之路

    IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍.大量IP地址的接入,导致运维人员不得不投入大量精力来解决IP管理分散.非法接入.IP地址错误.IP地址冲突等 ...

  9. 【HCIE-RS 天梯路】IPv6基础

    IPv6基础 目录 IPv6优势 转发效率 IPv6>IPv4? IPv6地址 = 前缀 + 接口ID IPv6地址表示 EUI-64(MAC生成接口ID) IPv6单播Unicast IPv6 ...

最新文章

  1. 深圳餐厅使用iPad点餐(图)
  2. 磁盘上没有足够的空间完成此操作_三年多啦,那么多IT人还没有搞定这个问题...
  3. 数据结构 之 并查集
  4. 【Vegas原创】获取远程数据库到本地
  5. 左边替换 oracle,sqlsever替换右边第4个字符
  6. 二值化图像去除小黑点_python与图像工程(2020.10.11)
  7. 如何将编写好的CS文件做成exe可执行文件
  8. HDR:为用户打造的视觉盛宴
  9. MFC中char*,string和CString之间的转换
  10. java指定sql生成xml,用Java实现可保存状态的数据库生成XML树(8)-JSP教程,Java与XML...
  11. Gopher一定要会的代码自动化检查
  12. 新学期,对同学们的要求和期望
  13. 轻量级小型网站导航条
  14. JS获取屏幕宽度高度
  15. 宝塔服务器性能跑分排行榜(CPU/内存/系统)
  16. DBeaver改成英语
  17. Linux系统的基本使用指南(速成,帮助快速上手使用Linux系统)
  18. 华为云空间联系人是不是机主_电脑上整理华为云空间联系人数据
  19. 常见的有规律的单复数转换(随笔)
  20. BT服务器架设全攻略

热门文章

  1. mongod 启动 Illegal instruction (core dumped)
  2. Centos7虚拟机下安装配置Tomcat
  3. 算法09——patA1033 加油站问题(贪心)
  4. Android Camera2教程之打开相机、开启预览、实现PreviewCallback、拍照
  5. python中国最好大学排名_三分钟实现爬取中国前20大学排名
  6. 解决Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 14.x
  7. 应届生毕业不满一年,从被裁到成功上岸,亲身经历告诉你如何自渡?
  8. Android获取IMEI码及利用方法
  9. 如何激发员工的积极主动性
  10. CSS如何实现内凹角效果