023A-IPv6基础2

IPv6中特有的组播地址

  • IPv6中特有的组播地址

    • 每个节点必须为分配给它的每个单播和任播地址加入的一个组播地址,用于DAD地址重复检测
  • Solicited-Node组播地址生成过程

    • 接口ID的后24位: XX:XXXX
    • 前缀FF02:0:0:0:0:1:FF
    • FF02:0:0:0:0:1:FFXX:XXXX

例:主机的MAC地址为 00-02-b3-1e-83-29
IPv6地址为 fe80::0202:b3ff:fe1e:8329
请求节点组播地址: ff02::1:ff1e:8329

请求节点组播地址的后24位生成方法
1、通常情况下会生成两个请求节点组播地址,一个全局的,一个是Link-local地址
2、如果接口使用的是EUI-64位,请求节点组播地址的后24等于MAC地址的后24位
3、如果接口使用的是手工配置或者DHCP,请求节点组播地址的后24位,等于IPv6地址的后24位



任播地址

任播地址
仅用作目标,且只能分配给路由器。默认路由器接口都被分配任意播地址

  • 任播地址与单播地址使用相同的地址空间
  • 配置时须明确表明是任播地址,以此区别单播和任播
  • 子网路由器任播地址
    • 子网路由器任播地址是已经定义好的一种任播地址(RFC3513)。发送到子网路由器任播地址的报文会被发送到该地址标识的子网中路由意义上最近的一个设备。所有设备都必须支持子网任播地址。子网路由器任播地址用于节点需要和远端子网上所有设备中的一个(不关心具体是哪一个)通信时使用。例如,一个移动节点需要和它的“家乡”子网上的所有移动代理中的一个进行通信。
      子网路由器任播地址由n bit子网前缀标识子网,其余用0填充。格式如图6所示:
      在这里插入图片描述

PC的IPV6地址

只有一个网络适配器的IPv4主机通常会为该适配器分配单一的IPv4地址。而IPv6主机则往往会为每个适配器分配多个IPV6地址。典型IPv6主机上的接口通常会分配到如下的单播地址。
每个接口分配到一个链路本地地址。
每个接口分配到额外的单播地址(可以是单个或多个唯一本地地址或全球地址)
环回接口分配到环回地址(::1 )
典型的IPv6主机通常是多宿主的,因为IPv6主机总是至少拥有两个可以接收数据包的地址-----用于接收本地链路流量的链路本地和可路由的唯一本地或全球地址。
此外,每个ipv6主机上的接口还会侦听如下组播地址的流量。
接口本地范围内所有节点的组播地址(FF01::1)
链路本地范围内所有节点的组播地址(FF02::1)
每个单播地址的请求节点地址
已加入的组的组播地址

路由器的IPv6地址

IPv6路由器上的接口通常会分配到如下的单播地址。
每个接口分配到一个链路本地地址。
每个接口分配到额外的单播地址(可以是单个或多个唯一本地地址或全球地址)
环回接口分配到环回地址(::1 )
此外,每个ipv6路由器上的接口还会分配到如下任播地址。
每个子网分配到一个子网路由器的任播地址
额外的任播地址(可选)
此外,每个ipv6路由器上的接口还会侦听如下组播地址的流量。
接口本地范围内所有节点的组播地址(FF01::1)
接口本地范围内所有路由器的组播地址(FF01:2)
链路本地范围内所有节点的组播地址(FF02::1)
链路本地范围内所有路由器的组播地址(FF02:2)
每个单播地址的请求节点地址
已加入的组的组播地址

IPV6报文

ipv6报文格式
1、IPv6基本报头、IPv6扩展报头以及上层协议数据单元
2、IPv6基本报头有8个字段,固定大小为40字节,每一个IPv6数据报都必须报含报头.基本报头提供报文转发的基本信息,会被转发路径上面的所有路由器解析
3、IPv6数据包由一个IPv6报头、多个扩展报头和一个上层协议数据单元组成。

IPv6基本报头(IPv6 Header)
1、每一个IPv6数据包都必须包含报头,其长度固定为40bytes。
2、基本报头提供报文转发的基本信息,会被转发路径上面的所有路由器解析。

上层协议数据单元(Upper Layer Protocol Data Unit)
上层协议数据单元一般由上层协议包头和它的有效载荷构成,有效载荷可以是一个ICMPv6报文、一个TCP报文或一个UDP报文。

IPv6报头格式中主要字段解释如下:
在这里插入图片描述

1、Version:版本号,长度为4bit。对于IPv6,该值为6。
2、Traffic Class:流类别,长度为8bit。等同于IPv4中的TOS字段,表示IPv6数据报的类或优先级,主要应用于QoS。
3、Flow Label:流标签,长度为20bit。IPv6中的新增字段,用于区分实时流量,不同的流标签+源地址可以唯一确定一条数据流,中间网络设备可以根据这些信息更加高效率的区分数据流。
4、Payload Length:有效载荷长度,长度为16bit。有效载荷是指紧跟IPv6报头的数据报的其它部分(即扩展报头和上层协议数据单元)。该字段只能表示最大长度为65535字节的有效载荷。如果有效载荷的长度超过这个值,该字段会置0,而有效载荷的长度用逐跳选项扩展报头中的超大有效载荷选项来表示。
5、Next Header:下一个报头,长度为8bit。该字段定义紧跟在IPv6报头后面的第一个扩展报头(如果存在)的类型,或者上层协议数据单元中的协议类型。
6、Hop Limit:跳数限制,长度为8bit。该字段类似于IPv4中的Time to Live字段,它定义了IP数据报所能经过的最大跳数。每经过一个路由器,该数值减去1,当该字段的值为0时,数据报将被丢弃。
7、Source Address:源地址,长度为128bit。表示发送方的地址。
8、Destination Address:目的地址,长度为128bit。表示接收方的地址。

IPv6和IPv4相比,去除了IHL、identifiers、Flags、Fragment Offset、Header Checksum、 Options、Paddiing域,只增了流标签域,因此IPv6报文头的处理较IPv4大大简化,提高了处理效率。另外,IPv6为了更好支持各种选项处理,提出了扩展头的概念,新增选项时不必修改现有结构就能做到,理论上可以无限扩展,体现了优异的灵活性。

IPv6中的流标签字段、源地址字段和目的地址字段一起为特定数据流指定了网络中的转发路径。(即三元组)而ipv4中区分一个特定的数据流需要五元组(源目IP,源目端口,协议)这样,报文在IP网络中传输时会保持原有的顺序,提高了处理效率

IPV6对比IPV4四个方面的改进

  • 扩展寻址能力,扩展到128位,支持多级地址层次,改进组播,增加任意播更实用。
  • 简化报头格式,IP报头字段由12个减少为8个,中间路由器6个减少为4个,提高了效率。
  • 改进路由选项,路由选项放在扩展头部,仅在需要时插入路由选项,更灵活
  • 提供流标记,对某些分组进行特别处理,可以提供特别的服务质量,更好的传送数据

扩展报头
在IPv4中,IPv4报头包含可选字段Options,内容涉及security、Timestamp、Record route等,这些Options可以将IPv4报头长度从20字节扩充到60字节。在转发过程中,处理携带这些Options的IPv4报文会占用路由器很大的资源,因此实际中也很少使用。
IPv6将这些Options从IPv6基本报头中剥离,放到了扩展报头中,扩展报头被置于IPv6报头和上层协议数据单元之间。一个IPv6报文可以包含0个、1个或多个扩展报头,仅当需要路由器或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展头。与IPv4不同,IPv6扩展头长度任意,不受40字节限制,这样便于日后扩充新增选项,这一特征加上选项的处理方式使得IPv6选项能得以真正的利用。但是为了提高处理选项头和传输层协议的性能,扩展报头总是8字节长度的整数倍。
当使用多个扩展报头时,前面报头的Next Header字段指明下一个扩展报头的类型,这样就形成了链状的报头列表。

如果一个扩展头部中所包含的下一个头部字段的值无法识别或有误,那么节点就会丢弃这个数据包,并向源设备发送一条ICMP参数错误消息|(消息类型为Unrecognized Next Header Type0)。扩展头部为0就是一种扩展头部值有误的情ukq ,因为逐跳可选项头部必须始终紧跟在IPv6头部之后。
在这里插入图片描述IPv6报文格式—扩展报头种类

报头类型Next Head字段值描述
逐跳选项报头0该选项主要用于为在传送路径上的每跳转发指定发送参数,传送路径上的每台中间节点都要读取并处理该字段,应用场景:
  • 用于巨型载荷
  • 用于路由器提示
  • 用于资源预留
目的选项报头60目的选项报头携带了一些只有目的节点才会处理的信息。目前,目的选项报文头主要应用于移动IPv6。
路由报头43路由报头和IPv4的Loose Source and Record Route选项类似,该报头能够被IPv6源节点用来强制数据包经过特定的路由器。
分段报头44同IPv4一样,IPv6报文发送也受到MTU的限制。当报文长度超过MTU时就需要将报文分段发送,而在IPv6中,分段发送使用的是分段报头。
认证报头51该报头由IPsec使用,提供认证、数据完整性以及重放保护。它还对IPv6基本报头中的一些字段进行保护。
封装安全净载报头50该报头由IPsec使用,提供认证、数据完整性以及重放保护和IPv6数据报的保密,类似于认证报头。

IPv6扩展报头规约

当超过一种扩展报头被用在同一个分组里时,报头必须按照下列顺序出现:
• IPv6基本报头
• 逐跳选项扩展报头
• 目的选项扩展报头
• 路由扩展报头
• 分段扩展报头
• 认证扩展报头
• 封装安全有效载荷扩展报头
• 目的选项扩展报头
• 上层协议数据报文
路由设备转发时根据基本报头中Next Header值来决定是否要处理扩展头,并不是所有的扩展报头都需要被转发路由设备查看和处理的。
除了目的选项扩展报头可能出现一次或两次(一次在路由扩展报头之前,另一次在上层协议数据报文之前),其余扩展报头只能出现一次。

PMTU协议

在IPv6中,为了减少中间转发设备的处理压力,中间转发设备不对IPv6报文进行分片,报文的分片将在源节点进行。

PMTU(PATH MTU)协议是通过ICMPv6的Packet Too Big报文来完成的。首先源节点假设PMTU就是其出接口的MTU,发出一个试探性的报文,当转发路径上存在一个小于当前假设的PMTU时,转发设备就会向源节点发送Packet Too Big报文,并且携带自己的MTU值,此后源节点将PMTU的假设值更改为新收到的MTU值继续发送报文。如此反复,直到报文到达目的地之后,源节点就能知道到达目的地的PMTU了。
在这里插入图片描述

Path MTU工作过程
整条传输路径需要通过4条链路,每条链路的MTU分别是1500、1500、1400、1300,当源节点发送一个分片报文的时候,首先按照PMTU为1500进行分片并发送分片报文,当到达MTU为1400的出接口时,路由器返回Packet Too Big错误,同时携带MTU值为1400的信息。源节点接收到之后会将报文重新按照PMTU为1400进行分片并再次发送一个分片报文,当分片报文到达MTU值为1300的出接口时,同样返回Packet Too Big错误,携带MTU值为1300的信息。之后源节点重新按照PMTU为1300进行分片并发送分片报文,最终到达目的地,这样就找到了该路径的PMTU。

ipv6 mtu mtu,配置接口上发送IPv6报文的MTU值。
缺省情况下,接口的IPv6的MTU值为1500字节。
ipv6 pathmtu ipv6-address [ vpn-instance vpn-instance-name ] [ path-mtu ],对指定的IPv6地址配置PMTU值。
如果不选择参数path-mtu,到指定IPv6地址的PMTU值为1500字节。

ICMPv6是IPv6的基础协议之一。

在IPv4中,Internet控制报文协议ICMP向源节点报告关于向目的地传输IP数据包过程中的错误和信息。它为诊断、信息和管理目的定义了一些消息,如:目的不可达、数据包超长、超时、回应请求和回应应答等。在IPv6中,ICMPv6除了提供ICMPv4常用的功能之外,还是其它一些功能的基础,如邻接点发现、无状态地址配置(包括重复地址检测)、PMTU发现等。
ICMPv6的协议类型号(即IPv6报文中的Next Header字段的值)为58。
报文解释:
Type:表明消息的类型,0至127表示差错报文类型,128至255表示消息报文类型。
Code:表示此消息类型细分的类型。
Checksum:表示ICMPv6报文的校验和。

信息报文分类

回送请求报文

  • 发送到目标节点,以使目标节点立即发回一个回送应答报文
    回送请求报文用于发送到目标节点,以使目标节点立即发回一个回送应答报文。回送请求报文的类型字段值为128,代码字段的值为0

回送应答报文

  • 对回送请求报文的回应
    当收到一个回送请求报文时,ICMPv6会用回送应答报文响应。回送应答报文的类型字段的值为129,代码字段的值为0。

邻居发现协议NDP

邻居发现协议NDP(Neighbor Discovery Protocol)是IPv6协议体系中一个重要的基础协议。邻居发现协议替代了IPv4的ARP(Address Resolution Protocol)和ICMP路由器发现(Router Discovery),它定义了使用ICMPv6报文实现地址解析,跟踪邻居状态,重复地址检测,路由器发现以及重定向等功能。
邻居通告报文:
邻居请求报文NS:类型字段值为135。
邻居通告报文NA:类型字段值为136。
在路由器发现中使用了两种ICMPv6报文:路由器通告和路由器请求报文:
路由器通告RA:类型字段值为134。
路由器请求RS:类型字段值为133。
重定向使用了一种ICMPv6报文:重定向报文。
重定向报文:类型字段值为137。

128 请求报文 ipv4 的ping requeset报文
129 应答报文 ipv4的ping reply报文

邻居发现-地址解析

在这里插入图片描述在这里插入图片描述在这里插入图片描述

邻居发现-跟踪邻居状态

在这里插入图片描述在这里插入图片描述
interface GigabitEthernet0/0/0
ipv6 neighbor 2001:12:12:12::2 00e0-fc95-2026
ipv6 nd ns retrans-timer interval,配置发送NS报文的时间间隔。缺省情况下,发送NS报文的时间间隔是1000毫秒。ipv6 nd stale-timeout timeout-value,配置邻居表项在Stale状态的
老化时间。缺省情况下,接口下未配置邻居表项Stale状态的老化时间,老化时间与系统视图下的老化时间一致

邻居发现-重复地址检测

在这里插入图片描述在这里插入图片描述在这里插入图片描述

下面以A、B两个邻居节点之间相互通信过程中A节点的邻居状态变化为例(假设A、B之前从未通信),说明邻居状态迁移的过程。
1.A先发送NS报文,并生成缓存条目,此时,邻居状态为Incomplete。
2.若B回复NA报文,则邻居状态由Incomplete变为Reachable,否则固定时间后邻居状态由Incomplete变为Empty,即删除表项。
3.经过邻居可达时间,邻居状态由Reachable变为Stale,即未知是否可达。
4.如果在Reachable状态,A收到B的非请求NA报文,且报文中携带的B的链路层地址和表项中不同,则邻居状态马上变为Stale。
5.在Stale状态若A要向B发送数据,则邻居状态由Stale变为Delay,并发送NS请求。
6.在经过一段固定时间后,邻居状态由Delay变为Probe,其间若有NA应答,则邻居状态由Delay变为Reachable。
7.在Probe状态,A每隔一定时间间隔发送单播NS,发送固定次数后,有应答则邻居状态变为Reachable,否则邻居状态变为Empty,即删除表项。

邻居发现-重定向

在这里插入图片描述

邻居发现-路由发现

在这里插入图片描述在这里插入图片描述


在IPv6中,IPv6地址可以支持无状态的自动配置,即主机通过某种机制获取网络前缀信息,然后主机自己生成地址的接口标识部分。路由器发现功能是IPv6地址自动配置功能的基础,主要通过以下两种报文实现:

路由器通告RA(Router Advertisement)报文:每台路由器为了让二层网络上的主机和路由器知道自己的存在,定时都会组播发送RA报文,RA报文中会带有网络前缀信息,及其他一些标志位信息。RA报文的Type字段值为134

路由器请求RS(Router Solicitation)报文:很多情况下主机接入网络后希望尽快获取网络前缀进行通信,那么此时主机可以立刻发送RS报文,网络上的路由器将回应RA报文。RS报文的Tpye字段值为133

地址自动配置
IPv6主机无状态自动配置过程:
根据接口标识产生链路本地地址。
发出邻居请求,进行重复地址检测。
如地址冲突,则停止自动配置,需要手工配置。
如不冲突,链路本地地址生效,节点具备本地链路通信能力。
主机会发送RS报文(或接收到路由器定期发送的RA报文)。
根据RA报文中的前缀信息和通过EUI-64规范生成的接口标识得到IPv6地址。

在这里插入图片描述

在Server上配置
interface GigabitEthernet0/0/1
ipv6 enable
ipv6 address 2001:10::1/64
undo ipv6 nd ra halt 配置路由器发送RA报文,思科默认是发送的,华为默认不发送,需要该命令修改发送

在客户端配置
interface GigabitEthernet0/0/0
ipv6 enable
ipv6 address auto global 实现IPv6地址的无状态配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值