1.2.2 IPv6 编址


  IPv6 使用 128 位进行地址编址,这样做将带来以下好处:

  • 提供更多的地址,可以满足现在和将来的需求
  • 简化地址自动配置机制
  • 简化是地址管理和授权机制
  • 更多的层级结构空间和更多的路由聚合空间
  • 能够做端对端的安全协议

  IPv6 地址可以归纳为下面几类(也在 IPv4 中存在):

  • 单播(一对一):数据包从源发送到一个目的地。这是最常见的一种形式。我们今后涉及得最多的就是这种地址。
  • 组播(一对多):数据包从源发送多多个目的地。通过多播路由,使报文能够在某些地方被替换(注:不明白这句话啥意思)。
  • 广播(一对最近的):数据包从源发送到一组中的最近目的地。
  • 被保留的:这些地被用作特殊用途。

  在正式认识 IPv6 地址之前,我们先理解其符号规则。你必须对这些概念有清楚的认识,因为这可能是你用 IPv6 表示地址时面临的第一个问题。

1.2.2 IPv6 编址 - 图1

图1.5. IPv6 地址

IPv6地址的符号规则

  • 由 8 组组成,每组 16 位,组与组之间由”:”隔开
  • 每 4 位由一个十六进制符号表示
  • 大小写不敏感
  • 网络前缀(地址的组)的格式是:前缀/前缀长度,其中前缀长度表明一组地址中前面有多少个连续比特相同
  • 每组中最左边的 0 可以被省略
  • 一个或者多个全零组可以被”::”代替。这只能做一次。

  前三条规则告诉你最基本的 IPv6 地址符号组成规则。他们由从 0 到 F 的十六进制符号表示。IPv6 的地址由 8 组组成,每组有 4 个十六进制符号,组与组之间由冒号”:”分隔。最后两条规则是用于地址的符号压缩,我们将在下面介绍如何进行地址压缩的。

  先看一些例子:

1)我们写出所有的地址位,比如2001:0db8:4004:0010:0000:0000:6543:0ffd

2)我们用方括号将地址位括起来,比如[2001:0db8:4004:0010:0000:0000:6543:0ffd]

3)我们使用第四条规则,省略每个组最左边的 0,比如2001:db8:4004:10:0:0:6543:ffd

4)我们使用第五条规则,将一个或多个连续的零组用 “::” 进行压缩,比如2001:db8:4004:10::6543:ffd

  我们的注意力应该放在 IPv6 地址的压缩和解压缩过程,这个过程应该是可逆的。犯错是很常见的,比如地址2001:db8:A:0:0:12:0:80可能会被多次使用 “::” 压缩。请看下面这两种表示方法:

  a) 2001:db8:A::12:0:80

  b) 2001:db8:A:0:0:12::80

  地址2001:db8:A::12::80是错误的,因为它没有遵循最后一条压缩规则。通过这个被严重过度压缩的地址,我们不能确定如何去扩展它。我们不知道应该扩展为2001:db8:A:0:12:0:0:80,还是扩展为2001:db8:A:0:0:12:0:80