HCIP学习-IPv6

目录

前置学习内容

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.hqwc.cn/news/108026.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端面试合集(二)

前端面试题合集 1.懒加载的原理及实现了解吗2.如何理解JS异步3.阐述一下 JS 的事件循环4.JS 中的计时器能做到精确计时吗?为什么? 1.懒加载的原理及实现了解吗 原理:当图片没有到达可视范围内时,图片不加载,当图片一旦…

软件测试7大误区

随着软件测试对提高软件质量重要性的不断提高,软件测试也不断受到重视。但是,国内软件测试过程的不规范,重视开发和轻视测试的现象依旧存在。因此,对于软件测试的重要性、测试方法和测试过程等方面都存在很多不恰当的认识&#xf…

【C语言】每日一题(半月斩)——day1

目录 😊前言 一.选择题 1.执行下面程序,正确的输出是(c) 2.以下不正确的定义语句是( ) 3.test.c 文件中包括如下语句,文件中定义的四个变量中,是指针类型的变量为【多选】&a…

Dajngo06_Template模板

Dajngo06_Template模板 6.1 Template模板概述 模板引擎是一种可以让开发者把服务端数据填充到html网页中完成渲染效果的技术 静态网页:页面上的数据都是写死的,万年不变 动态网页:页面上的数据是从后端动态获取的(后端获取数据库…

语音识别数据的采集方法:基本流程数据类型

“人工智能是一种模仿人类功能的产品。数据采集的方法需要针对特定的场景需求。”—–Mark Brayan (澳鹏CEO) 我们一直说,对于一个高质量的人工智能产品离不开高质量的训练数据。对于不同的人工智能我们需要不同的数据对其训练。要采集正确的数据去训练特定的模型才…

【计算机网络】传输层协议——TCP(上)

文章目录 TCPTCP协议段格式报头和有效载荷如何分离?4位首部长度 TCP可靠性确认应答机制的提出序号和确认序号为什么序号和确认序号在不同的字段? 16位窗口大小 6个标志位标志位本质具体标志位PSHRSTURG 超时重传机制 文章目录 TCPTCP协议段格式报头和有效…

解决Java类加载异常:java.lang.ClassNotFoundException

在Java开发过程中,有时会遇到类加载异常,其中之一是java.lang.ClassNotFoundException异常。这个异常通常出现在缺少相关依赖库或配置问题的情况下。本文将介绍如何解决这个问题,并以一个具体案例来说明。 问题描述 在开发过程中&#xff0…

Zabbix监控平台概念

1.概念 Zabbix是一款开源的、免费的、分布式监控平台支持web管理,WEB界面可以方便管理员使用可以监控硬件服务器CPU温度、风扇转速、操作系统CPU、EME、DISK、I/O、流量宽带、负载、端口、进程等Zabbix是C/S架构,Client客户端和Server端组成 2.Zabbix可…

Anaconda下Jupyter Notebook执行OpenCV中cv2.imshow()报错(错误码为1272)网上解法汇总记录和最终处理方式

零、我设备的相关信息 Python 3.8.8Anaconda3 2021.05查询匹配python3.8.*的OpenCV匹配版本为:4.1.* — 4.2.*,我最后安装4.2.0.32版本如下我记录了 “从发现问题,到不断试错,最后解决问题” 的完整过程,以备自己复盘…

C++数据结构X篇_12_树的基本概念和存储

学习二叉树之前先学习树的概念。 文章目录 1. 树的基本概念1.1 树的定义1.2 树的特点1.3 若干术语 2. 树的表示法2.1 图形表示法2.2 广义表表示法 3. 树的存储3.1 双亲表示法:保存父节点关系3.2 孩子表示法3.3 左孩子右兄弟表示法 1. 树的基本概念 之前所学均为线性…

OpenCV(三十四):轮廓外接最大、最小矩形和多边形拟合

目录 1.轮廓外接最大矩形boundingRect() 2.轮廓外接最小矩形minAreaRect() 3.轮廓外接多边形approxPolyDP() 1.轮廓外接最大矩形boundingRect() Rect cv::boundingRect ( InputArray array ) array:输入的灰度图像或者2D点集&#xff0c;数据类型为vector<Point>或者M…

Self-Polish: Enhance Reasoning in Large Language Models via Problem Refinement

Self-Polish: Enhance Reasoning in Large Language Models via Problem Refinement 文章链接 核心思想是通过instruction让LLM来优化问题本身&#xff0c;从而达到更好的效果&#xff0c;且这种针对问题的优化可以跟其他的prompt技术&#xff0c;如CoT或者Least-to-Most相结合…