ipv6 号称可以为全世界的每一粒沙子编上一个地址。
1. 地址分类
1.1. 单播地址
单播地址还可以分成如下几类:
- 全球单播地址
- 本地单播地址
- 链路本地地址(fe80)
- 唯一本地地址(fc00)
站点本地地址(fec0), 已弃用,被唯一本地地址代替
- 兼容性地址
- 特殊地址
- 未指定地址
- 环回地址
子类 | 地址前缀(二进制) | ipv6前缀标识 |
---|---|---|
全球单播地址 | 其他形式 | - |
链路本地地址 | 111 111 1010 | FE80::/10 |
唯一本地地址 | 1111 110 | FC00::/7(包括FD00::/8和不常用的FC00::/8) |
环回地址 | 00…1(128 bits) | ::1/128 |
未指定地址 | 00…0(128 bits) | ::/128 |
1.1.1 全球单播地址
等同于IPv4中的公网地址,可以在IPv6 Internet上进行全局路由和访问。
1.1.2 本地单播地址
1.1.2.1. 链路本地地址
仅用于单个链路(链路层不能跨VLAN),不能在不同子网中路由。
1.1.2.2. 唯一本地地址
唯一本地地址是本地全局的,它应用于本地通信,但不通过Internet路由,将其范围限制为组织的边界。
1.1.3. 兼容性地址
在IPv6的转换机制中还包括了一种通过IPv4路由接口以隧道方式动态传递IPv6包的技术。这样的IPv6结点会被分配一个在低32位中带有全球IPv4单播地址的IPv6全局单播地址。另有一种嵌入IPv4的IPv6地址,用于局域网内部,这类地址用于把IPv4结点当作IPv6结点。此外,还有一种称为“6to4”的IPv6地址,用于在两个通过Internet同时运行IPv4和IPv6的结点之间进行通信。
1.1.4. 特殊地址
包括未指定地址和环回地址。
1.2. 组播地址
IPv6组播地址可识别多个接口,对应于一组接口的地址(通常分属不同节点)。发送到组播地址的数据包被送到由该地址标识的每个接口。
地址前缀(二进制) | ipv6前缀标识 |
---|---|
11111111 | ff00::/8 |
1.3. 任播地址
一个IPv6任播地址与组播地址一样也可以识别多个接口,对应一组接口的地址。大多数情况下,这些接口属于不同的节点。发送到任播地址的数据包被送到由该地址标识的其中一个接口(该地址识别的最近接口,最近接口定义的根据是因为路由距离最近)。
地址前缀(二进制) | ipv6前缀标识 |
---|---|
从单播地址空间中进行分配 | 使用单播地址的格式 |
2. 组成结构
2.1. 表示方法
IPv6的地址长度为128位,是IPv4地址长度的4倍。于是IPv4点分十进制格式不再适用,采用十六进制表示。IPv6有3种表示方法:
2.1.1. 冒分十六进制表示法
格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16b,以十六进制表示,例如:ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
2.1.2. 0位压缩表示法
在某些情况下,一个IPv6地址中间可能包含很长的一段0,可以把连续的一段0压缩为“::”。但为保证地址解析的唯一性,地址中”::”只能出现一次,
例如:
FF01:0:0:0:0:0:0:1101 → FF01::1101
0:0:0:0:0:0:0:1 → ::1
0:0:0:0:0:0:0:0 → ::
2.1.3. 内嵌IPv4地址表示法
为了实现IPv4-IPv6互通,IPv4地址会嵌入IPv6地址中,此时地址常表示为:X:X:X:X:X:X:d.d.d.d。例如::192.168.0.1与::FFFF:192.168.0.1就是两个典型的例子,注意在前96b中,压缩0位的方法依旧适用