为了给网络扩容,我们使用了IPv6协议,作为上一个版本协议的改进,传统意义上的地址类型已经不能适用,现在我们就来解析一下现在IPv6地址的类型都有哪些,以及文本表示等方面的基础知识。
地址中的前导位定义特定的 IPv6地址类型。包含这些前导位的变长字段称作格式前缀 (FP)。 不同地址类型有不同的功能作用。
IPv6地址类型
在 RFC 2373 中指定了几种 IPv6类型的寻址方案(IPv6寻址结构)。IPv6地址是接口和接口集的 128 位标识符。RFC 2373 为 IPv6定义了多种地址格式,IPv6地址大致分为以下几类:
单播:单一接口的地址。发送到单播地址的数据包被送到由该地址标识的接口。
任意播放:一组接口的地址。大多数情况下,这些接口属于不同的节点。发送到任意播送地址的数据包被送到由该地址标识的其中一个接口。由于使用任意播送地址的标准尚在不断完善中,所以目前 HP-UX 不支持任意播送。
多播:一组接口的地址(通常分属不同节点)。发送到多播地址的数据包被送到由该地址标识的每个接口。与 IPv4不同,在IPv6中没有广播地址,因为这一功能已被多播功能代替。
IPv6地址的文本表示
有三种常规格式可用于以文本字符串形式表示 IPv6地址:
***种形式是 x:x:x:x:x:x:x:x,其中,“x”是十六进制数值,分别对应于 128 位地址中的八个 16 位区段。例如: 2001:fecd:ba23:cd1f:dcb1:1010:9234:4088。
一些 IPv6地址可能包含一长串零位。为了便于以文本方式描述这种地址,制定了一种特殊的语法。“::”的使用表示有多组 16 位零。“::”只能在一个地址中出现一次,可用于压缩一个地址中的前导、末尾或相邻的 16 位零。例如: fec0:1:0:0:0:0:0:1234 可以表示为 fec0:1::1234。
当处理拥有 IPv4和 IPv6节点的混合环境时,可以使用 IPv6地址的另一种形式。即 x:x:x:x:x:x:d.d.d.d,其中,“x”是 IPv6地址的 96 位高位顺序字节的十六进制值,“d”是 32 位低位顺序字节的十进制值。通常,“映射 IPv4的 IPv6地址”以及“兼容 IPv4的 IPv6地址”可以采用这种表示法表示。例如: 0:0:0:0:0:0:10.1.2.3 以及: ::10.11.3.123
IPv6地址前缀:IPv6地址前缀与 IPv4中的 CIDR 相似,并写入 CIDR 表示法中。IPv6地址前缀由该表示法表示为: IPv6-address/prefix-length 其中,“IPv6-address”是用上面任意一种表示法表示的 IPv6地址,“prefix-length”是一个十进制值,表示前缀由多少个最左侧相邻位构成。例如:fec0:0:0:1::1234/64。地址的前 64 位“fec0:0:0:1”构成了地址的前缀。在 IPv6地址中,地址前缀用于表示 IPv6地址中有多少位表示子网。
单播地址:IPv6单播地址分为多种类型,分别是全局可聚集单播地址、站点本地地址以及链路本地地址。IPv6单播地址中的接口标识符用于在链路中标识接口。接口标识符在该链路中必须是唯一的。链路通常由子网前缀标识。如果一个单播地址的所有位均为零,那么该地址称为未指定的地址。以文本形式表示为“::”。单播地址“::1”或“0:0:0:0:0:0:0:1”称为环回地址。节点向自己发送数据包时采用环回地址。
可聚集全局单播地址:全局单播地址是在全局范围内唯一的 IPv6地址。在 RFC 2374 中,对该地址格式进行了全面的定义(一种 IPv6可聚集全局单播地址格式)。
例如:::ffff:192.168.0.1
其中FP = Format prefix(格式前缀),对于可聚集全局单播地址,其值为“001”TLA ID = Top-level Aggregation Identifier(***聚集标识符)RES = Reserved for future use(保留以备将来使用)NLA ID = Next-Level Aggregation Identifier(下一级聚集标识符)SLA ID = Site-Level Aggregation Identifier(站点级聚集标识符)Interface ID = Interface Identifier(接口标识符)
链路本地地址:链路本地地址用于在单个链路上对节点进行寻址。来自或发往链路本地地址的数据包不会被路由器转发。
站点本地地址:站点本地地址应在同一站点内使用。路由器不会转发任何站点本地源地址或目标地址是站点外部地址的数据包。
多播地址:多播地址是一组节点的标识符。地址开头的“FF”标识该地址是一个多播地址。“标志”字段是一组四个标志“000T”。高位顺序的三位是保留位,必须为零。***一位“T”说明它是否被***分配。如果该值为零,说明它被***分配,否则为暂时分配。“范围”字段是一个四位字段,用于限制多播组的范围。例如,值“1”说明该多播组是一个节点本地多播组。值“2”说明其范围是链路本地。“组 ID”字段标识多播组。以下是一些常用的多播组:
所有节点地址= FF02:0:0:0:0:0:0:1(链路本地) 所有路由器地址= FF02:0:0:0:0:0:0:2(链路本地) 所有路由器地址= FF05:0:0:0:0:0:0:2(站点本地)
以上介绍的就是IPv6地址类型。