IPV6地址基础知识

IPV6地址格式:

(1)首选格式
冒号分割为8段,每一段16bit,每一段内用十六进制表示。
用“IPv6地址/掩码长度”的方式来表示。
例如:2001:0DB8:0000:0001:0000:0000:0000:45ff/64。
(2)压缩格式
每段前导0可以省略,但是如果该段为全0,则至少保留一个“0”字符;拖尾的0不能被省略。
一个或多个连续的段为全0时,可用“::”表示,整个IPv6地址缩写中只允许有一个“::”。
例如:2001:DB8:0:1::45ff/64。

(3)内嵌IPv4地址的格式
地址的前96bit为IPv6地址格式,后32bit为IPv4地址格式。
IPv6部分可采用首选或压缩格式,IPv4部分采用点分十进制格式。
例如:0:0:0:0:0:0:166.168.1.2/64。

IPV6地址结构:

一个IPv6地址可以分为如下两部分:
网络前缀:nbit,相当于IPv4地址中的网络ID。
接口标识:(128-n)bit,相当于IPv4地址中的主机ID。
 

IPV6地址类型:

(1)单播地址

 未指定地址
IPv6中的未指定地址即 0:0:0:0:0:0:0:0/128 或者::/128。该地址可以表示某个接口或者节点还没有IP地址,可以作为某些报文的源IP地址(例如在NS报文的重复地址检测中会出现)。源IP地址是::的报文不会被路由设备转发。


 环回地址
IPv6中的环回地址即 0:0:0:0:0:0:0:1/128 或者::1/128。环回与IPv4中的127.0.0.1作用相同,主要用于设备给自己发送报文。该地址通常用来作为一个虚接口的地址(如Loopback接口)。实际发送的数据包中不能使用环回地址作为源IP地址或者目的IP地址。


全球单播地址
全球单播地址是带有全球单播前缀的IPv6地址,其作用类似于IPv4中的公网地址。这种类型的地址允许路由前缀的聚合,从而限制了全球路由表项的数量。
全球单播地址由全球路由前缀(Global routing prefix)、子网ID(Subnet ID)和接口标识(Interface ID)组成

链路本地地址
链路本地地址是IPv6中的应用范围受限制的地址类型,只能在连接到同一本地链路的节点之间使用。它使用了特定的本地链路前缀FE80::/10(最高10位值为1111111010),同时将接口标识添加在后面作为地址的低64比特。
启动时节点的每个接口会自动配置一个链路本地地址(其固定的前缀+EUI-64规则形成的接口标识)。

扫描二维码关注公众号,回复: 14891157 查看本文章

唯一本地地址

 ULA(Unique Local Address,唯一本地地址)是IPv6私网地址,只能够在内网中使用。该地址空间在IPv6公网中不可被路由,因此不能直接访问公网。
唯一本地地址使用FC00::/7地址块,目前仅使用了FD00::/8地址段。FC00::/8预留为以后拓展用。

 

IPv6组播地址

IPv6的组播与IPv4相同,用来标识一组接口,一般这些接口属于不同的节点。一个节点可能属于0到多个组播组。发往组播地址的报文被组播地址标识的所有接口接收。例如组播地址FF02::1表示链路本地范围的所有节点,组播地址FF02::2表示链路本地范围的所有路由器。

被请求节点组播地址 

被请求节点组播地址通过节点的单播或任播地址生成。当一个节点具有了单播或任播地址,就会对应生成一个被请求节点组播地址,并且加入这个组播组。一个单播地址或任播地址对应一个被请求节点组播地址。该地址主要用于邻居发现机制和地址重复检测功能。
IPv6中没有广播地址,也不使用ARP。但是仍然需要从IP地址解析到MAC地址的功能。在IPv6中,这个功能通过邻居请求NS(Neighbor Solicitation)报文完成。当一个节点需要解析某个IPv6地址对应的MAC地址时,会发送NS报文,该报文的目的IP就是需要解析的IPv6地址对应的被请求节点组播地址;只有具有该组播地址的节点会检查处理。
被请求节点组播地址由前缀FF02::1:FF00:0/104和单播地址的最后24位组成。

IPv6任播地址

任播地址标识一组网络接口(通常属于不同的节点)。目标地址是任播地址的数据包将发送给其中路由意义上最近的一个网络接口。
(任播地址不能主动作为数据包的源,因为其他设备收到之后回包会回复最近的设备,并且任播地址不会进行重复地址检测)

IPV6地址报文结构

IPv6基本报头也称之为固定报头。固定报头包含8个字段,总长度为40Byte。这8个字段分别为:版本(Version)、流量类型(Traffic Class)、流标签(Flow Label)、净荷长度(Payload Length)、下一个报头(Next Header)、跳数限制(Hop Limit)、源IPv6地址、目的IPv6地址。
版本(Version)该字段规定了IP协议的版本,其值为6。长度为4bit。

  1. 流类别(Traffic Class)该字段功能和IPv4中的服务类型功能类似,表示IPv6数据报文的类或优先级。长度为8bit。
  2. 流标签(Flow Label)与IPv4相比,该字段是新增的。它用来标识这个数据报属于源节点和目标节点之间的一个特定数据报序列,它需要由中间IPv6路由器进行特殊处理。该字段长度为20bit。一般来说一个流可以通过源/目的IPv6地址和流标签来确定。
  3. 有效载荷长度(Payload Length)该字段表示IPv6数据报有效载荷的长度。有效载荷是指紧跟IPv6报头的数据报的其它部分(即扩展报头和上层协议数据单元)。该字段长度为16bit,能表示最大长度为65535Byte的有效载荷。如果有效载荷的长度超过这个值,该字段会置0,而有效载荷的长度用逐跳选项扩展报头中的超大有效载荷选项来表示。
  4. 下一个报头(Next Header)该字段定义紧跟在IPv6报头后面的第一个扩展报头(如果存在)的类型,或者上层协议数据单元中的协议类型。该字段长度为8bit。
  5. 跳数限制(Hop Limit)该字段类似于IPv4中的TTL(Time to Live)字段。它定义了IP数据报所能经过的最大跳数。每经过一个路由器,该数值减去1,当该字段的值为0时,数据报将被丢弃。该字段长度为8bit。
  6. 源地址(Source Address)表示发送方的地址,长度为128bit。
  7. 目的地址(Destination Address)表示接收方的地址,长度为128bit。

ipv6头部相对于ipv4头部的改进
 

取消三层校验:协议栈中二层和四层的已提供校验,因此IPv6直接取消了IP的三层校验,节省路由器处理资源。
取消中间节点的分片功能:中间路由器不再处理分片,只在产生数据的源节点处理,省却中间路由器为处理分片而耗费的大量CPU资源。
定义定长的IPv6报头:有利于硬件的快速处理,提高路由器转发效率。
安全选项的支持:IPv6提供了对IPSec的完美支持,如此上层协议可以省去许多安全选项。
增加流标签:提高QoS效率。

ipv6头部中的next-header

·

IPv6扩展报头规约

当超过一种扩展报头被用在同一个分组里时,报头必须按照下列顺序出现:

  • IPv6基本报头
  • 逐跳选项扩展报头
  • 目的选项扩展报头
  • 路由扩展报头
  • 分段扩展报头
  • 认证扩展报头
  • 封装安全有效载荷扩展报头
  • 目的选项扩展报头
  • 上层协议数据报文

路由设备转发时根据基本报头中Next Header值来决定是否要处理扩展头,并不是所有的扩展报头都需要被转发路由设备查看和处理的。

除了目的选项扩展报头可能出现一次或两次(一次在路由扩展报头之前,另一次在上层协议数据报文之前),其余扩展报头只能出现一次。

猜你喜欢

转载自blog.csdn.net/2301_76769137/article/details/129746353
今日推荐