一、IPv6地址表示规则
IPv6地址是一个包括128位二进制的IP地址,一共16个字节,是原来IPv4地址长度的4倍,基本表示形式是X:X:X:X:X:X:X:X,用冒号分割成8段,每段中的“x”是一个4位十六进制证书,相当于两个字节
前导0可以省略,每段(双字节)的前导0都可以省略,如3FFE:2900:0000:02AA:00FF:FE28:9C5A中的02AA可以写成2AA;00FF可以直接写成FF
全0双字节可用一个0表示,如果整个双字节都为0,则只需要写一个0即可,如上面示例中的0000,就可以写成0,但至少保留一个0,不能全省略,除非满足下面的“双冒号置换”方法。如1080:0000:0000:0000:0008:0810:213c:123A这样的IPv6地址,采用以上方案后就可直接写成1080:0:0:8:810:213c:123A
连续双字节可用一个双冒号替代,可以用一个双冒号置换地址中连续值为0的双字节。如1080:0:0:8:810:213c:123A地址中间有3个连续的双字节地址块为“0”,此时可以用一个“::”置换,简写成1080::8:810:213c:123A
另外,0:0:0:0:0:0:0:1等价于::1;0:0:0:0:0:0:0:0等价于::.但在一个地址中只能使用双冒号一次,否则无法得知每个部分连续0的位数。
如0:0:0:AB98:123C:0:0:0就不能写成::BA98:7654::,只能缩写成::AB98:123C:0:0:0或者0:0:0:AB98:123C::
不能用双冒号转换双字节中部分的0,如不能将FF02:30:0:0:0:0:0:0:5表示为FF02:3::5,因为在这个书写格式中,把作为16位块“30”中的一部分“0”也省略了
二、IPv6地址的分类
IPv6协议主要定义了三种地址类型:单播地址(Unicast Address)、组播地址(Multicast Address)和任播地址(Anycast Address)
【说明】与原来IPv4地址相比,新增了“任播地址”类型,取消了原来IPv4地址中的“广播地址”,因为在IPv6中的广播功能是通过组播来完成的
单播地址:用来唯一标识一个接口,与IPv4中的单播地址作用一样。发送到单播地址的数据报文将被传送给此地址所标识的一个接口
IPv6协议中有多种单播地址类型,包括:全局单播地址,链路本地地址,站点本地地址,特殊地质、兼容性地址
组播地址:用来标识一组接口(通常这组接口属于不同的节点),与IPv4中的组播地址作用一样。发送到组播地址的数据报文被传送给此地址所标识的所有接口
任播地址:用来标识一组接口(通常这组接口属于不同的节点)。但发送到任播地址的数据报文被传送到此地址所标识的一组接口中距离源节点最近(根据使用的路由协议进行度量)的一个接口
【说明】IPv6任播地址的用途之一是用来标识属于同一提供因特网服务的组织的一组路由器。这些地址可在IPv6路由头中作为中间地址,以使报文能够通过特定聚合或聚合顺序发送。另一个用途就是标识特定子网的一组路由器
三、IPv6单播地址
IPv6单播地址分类
整个 IPv6单播地址包括以下五个类型:全局单播地址、链路本地地址、站点本地地址、特殊地质、兼容性地址。前三种是根据单播地址的作用域来划分的。总体格式如下:(接口ID一般以64位MAC地址填充)
所有格式前缀不是组播格式前缀(1111 1111)的IPv6地址都是IPv6单播格式(任播和IPv6单播格式相同)
IPv6全局单播地址
全局单播地址等同于IPv4中的公网地址
最高三位固定为001,当前分配的全局地址的地址前缀是2000::/3
可以在IPv6 Internet上全局路由访问
全局路由前缀:指特定组织的站点的全局路由前缀。三个固定位与45位全局路由前缀组合成48位的站点前缀,将其分配给组织的单个站点。分配了此前缀之后,IPv6 Internet上的路由器将与该48位前缀匹配的IPv6通信转发到组织站点的路由器
子网ID:用于在组织站点中标识子网。此字段的长度是16位。组织的站点可以在站点内使用这16位来创建65536个子网或多个级别的寻址层次结构以及有效的路由基础结构
接口ID:接口标识符,指示站点内特定子网上的接口。此字段的长度是64位
IPv6本地单播地址
值本地网络中使用的单播地址。本地单播地址又有两种,分别是“链路本地地址”和“站点本地地址”
每个接口上至少要有一个链路本地单播地址,另外还可分配任何类型的IPv6地址
链路本地地址
“链路本地地址”在链接的邻居之间使用,用于邻居的间的发现,不会发生变化,且仅用于本地链路,不能在不同局域网和公网中路由。节点使用链路本地地址与同一个链路上相邻节点进行通信,与IPv4网络中的169网段地址功能类似。该地址始终自动配置,即使所有其他单播地址都不存在也是如此,且IPv6路由器永远不会将链路本地通信转发出该链路
最高10位固定为1111 1110 10;第11~64位固定全部为0
地址前缀表示形式为FE80::/64
站点本地地址
“站点本地地址”相当于IPv4中的局域网专用地址,仅可在本地局域网中使用。与链路本地地址不同,站点本地地址不会自动配置
最高10位总是固定为1111 1110 11,第11~48位固定为全0
地址前缀表示形式为FEC0::48
内嵌IPv4地址的IPv6单播地址
为了帮助从IPv4迁移到IPv6,促进两种类型主机的并存,定义了下列地址
IPv4兼容地址
IPv4兼容地址是一种通过IPv4路由接口以隧道方式动态传递IPv6包的技术,用于Internet公网。低32位为映射的公网IPv4单播地址,其余各位均为0
IPv4映射地址
IPv4映射地址是嵌入IPv4的IPv6地址,用于局域网内部。低32位映射IPv4局域网地址,低33~48位全为1,其余各位均为0
6to4地址
“6to4”IPv6地址用于在两个通过Internet同时运行IPv4和IPv6的节点之间进行通讯,6to4地址通过组合前缀2002::/16和该节点的公网IPv4地址的32位构成,形成一个48位前缀
特殊IPv6单播地址
未指定地址
未指定地址(0:0:0:0:0:0:0:0或::0)仅用于表示某个地址不存在。它等价于IPv4未指定地址0.0.0.0,用于默认路由和未分配IP地址的DHCP客户端地址
环回地址
环回地址(0:0:0:0:0:0:0:1或::1)用于标识环回接口,允许节点将数据包发送给自己。它等价于IPv4环回地址127.0.0.1.发送到环回地址的数据包永远不会发送给某个连接,也永远不会通过IPv6路由器转发