IPv6 地址简介
IPv6 使用 128 位寻址模型,而 IPv4 使用 32 位地址。除了更大之外,IPv6 地址在几个方面与 IPv4 地址不同:
表示法
前缀
地址类型
这些差异使得 IPv6 寻址比 IPv4 寻址更简单、更可扩展。
IPv6 表示法
IPv6 地址长度为 128 位(以 32 个十六进制数字表示),由 8 个冒号分隔的部分组成。每个部分包含 2 个字节,每个字节表示为从 0 到 FF 的十六进制数。
IPv6 地址如下所示:
2001:0db8:0000:0000:0000:0800:200C:7334
通过省略每个部分的前导零或用双冒号替换包含零的连续部分,您可以将示例地址写成:
2001:db8:0:0:0:800:200c:7334 或 2001:db8::800:200c:7334
在单个 IPv6 地址内,只能使用一次双冒号分隔符。例如,您不能将 IPv6 地址 2001:db8:db8:0000:0000:ea34:0000:71ff:fe01 表示为 2001:db8::ea34::71ff:fe0。
IPv6 前缀
IPv6 地址前缀表示地址空间块或网络。前缀是 IPv6 前缀(地址)和前缀长度的组合。它采用 /prefix-length 的形式ipv6-prefix。
IPv6 地址可以分解为不同长度的前缀。前缀长度是一个十进制值,用于指定地址中构成前缀的最左侧位的数量。前缀长度跟在正斜杠之后,在大多数情况下,用于标识组织拥有的地址部分。所有剩余位(直到最右边的位)表示单个节点或接口。
例如,2001:db8:0000:0000:250:af:34ff:fe26/64 的前缀长度为 64。
此地址的前 64 位 (2001:db8:0000:0000) 是前缀。其余 (250:af:34ff:fe26) 标识接口。
IPv6 地址类型
IPv6 地址主要分为三类:
单播 — 用于单个接口。
组播 — 用于同一物理介质上的一组接口。数据包将被发送到与该地址关联的所有接口。
任播 — 用于不同物理介质上的一组接口。数据包仅会发送到与此地址关联的一个接口,而不是所有接口。
单播地址
单播地址标识单个接口。当网络设备向单播地址发送数据包时,该数据包只会发送到该地址标识的特定接口。单播地址支持全局地址作用域和两种类型的本地地址作用域。
单播地址由 n 前缀的位和接口 ID 的 128 – n 位组成。
在用户接入网络的 IPv6 实施中,可以使用以下类型的单播地址:
全局单播地址 — 分配给主机接口的唯一 IPv6 地址。这些地址具有全球范围,其用途与 IPv4 公共地址基本相同。全局单播地址可在互联网上路由。
链路本地 IPv6 地址 — 允许驻留在相同链路上的相邻主机之间进行通信的 IPv6 地址。链路本地地址具有本地范围,不能在链路外部使用。它们始终具有前缀 FE80::/10。
环路 IPv6 地址 — 环路接口上使用的 IPv6 地址。IPv6 环路地址为 0:0:0:0:0:0:0:1,可以记为 ::1/128。
未指定地址 — IPv6 未指定地址为 0:0:0:0:0:0:0:0,0,0,可记为 ::/128。
组播地址
组播地址标识一组通常属于不同节点的接口。当网络设备将数据包发送到某个组播地址时,该设备会将该数据包广播到该地址标识的所有接口。IPv6 不支持广播地址,而是在此角色中使用组播地址。
组播地址支持 16 种不同类型的地址范围,包括节点、链路、站点、组织和全局范围。前缀中的 4 位字段标识地址范围。
IPv6 订阅者接入网络可以使用以下类型的组播地址:
请求节点组播地址 - 邻接方请求 (NS) 消息将发送到此地址。
全节点组播地址 — 路由器通告 (RA) 消息将发送到此地址。
所有路由器组播地址 — 路由器请求 (RS) 消息将发送到此地址。
组播地址使用前缀 FF00::/8。
任播地址
任播地址标识一组通常属于不同节点的接口。任播地址与组播地址类似,不同之处在于数据包仅发送到一个接口,而不是所有接口。网络中使用的路由协议通常会确定任播地址集中哪个接口在物理上最近,并沿最短路径将数据包路由到目的地。
任播地址和单播地址之间没有区别,子网路由器地址除外。对于任播子网路由器地址,低阶位(通常为 64 个或更多)为零。任播地址取自单播地址空间。
有关任播地址的详细信息,请参阅 RFC 2526, 保留 IPv6 子网任播地址。