IPv6 - 地址类型和格式
十六进制数系统
在介绍 IPv6 地址格式之前,我们先了解一下十六进制数系统。 十六进制是使用基数(基数)16 的位置数字系统。为了以可读格式表示值,该系统使用 0-9 符号表示从零到九的值,使用 A-F 表示从十到十五的值。 十六进制中的每个数字都可以表示从 0 到 15 的值。
地址结构
IPv6 地址由 128 位组成,分为八个 16 位块。 然后将每个块转换为由冒号分隔的 4 位十六进制数。
例如,下面给出的是以二进制格式表示的 128 位 IPv6 地址,分为八个 16 位块:
0010000000000001 0000000000000000 0011001000111000 1101111111100001 0000000001100011 0000000000000000 0000000000000000 1111111011111011
然后将每个块转换为十六进制并用':'符号分隔:
2001:0000:3238:DFE1:0063:0000:0000:FEFB
即使转换为十六进制格式后,IPv6 地址仍然很长。 IPv6 提供了一些规则来缩短地址。 规则如下:
Rule.1: 舍弃前导零:
Block 5, 0063, 前两个0可以省略,如(5th block):
2001:0000:3238:DFE1:63:0000:0000:FEFB
Rule.2:如果两个以上的块包含连续的零,则将它们全部省略并替换为双冒号 ::,例如(第 6 和第 7 个块):
2001:0000:3238:DFE1:63::FEFB
连续的零块只能被 :: 替换一次,所以如果地址中仍然有零块,可以将它们缩小为单个零,例如 (2nd block):
2001:0:3238:DFE1:63::FEFB
接口编号 ID
IPv6 具有三种不同类型的单播地址方案。 地址的后半部分(最后 64 位)始终用于接口 ID。 系统的 MAC 地址由 48 位组成,以十六进制表示。 MAC 地址被认为是全球唯一分配的。 接口 ID 利用了 MAC 地址的这种唯一性。 主机可以使用 IEEE 的扩展唯一标识符 (EUI-64) 格式自动配置其接口 ID。 首先,主机将自己的 MAC 地址分成两个 24 位的一半。 然后将 16 位十六进制值 0xFFFE 夹在这两半 MAC 地址中,从而产生 EUI-64 接口 ID。
将 EUI-64 ID 转换为 IPv6 接口标识符
为了将 EUI-64 ID 转换为 IPv6 接口标识符,EUI-64 ID 的最高有效第 7 位被补充。 例如:
全局单播地址
这种地址类型相当于 IPv4 的公共地址。 IPv6 中的全局单播地址是全局可识别且可唯一寻址的。
全局路由前缀:最重要的 48 位被指定为分配给特定自治系统的全局路由前缀。 全局路由前缀的三个最高有效位始终设置为 001。
链接本地地址
自动配置的 IPv6 地址称为链路本地地址。 该地址始终以 FE80 开头。 链路本地地址的前 16 位始终设置为 1111 1110 1000 0000 (FE80)。 接下来的 48 位设置为 0,因此:
链路本地地址仅用于链路(广播段)上的 IPv6 主机之间的通信。 这些地址不可路由,因此路由器永远不会将这些地址转发到链路之外。
唯一本地地址
这种类型的IPv6地址是全球唯一的,但应该在本地通信中使用。 该地址的后半部分包含接口 ID,前半部分分为前缀、本地位、全局 ID 和子网 ID。
前缀始终设置为 1111 110。 L 位,如果地址是本地分配的,则设置为 1。 到目前为止,L位为0的含义没有定义。 因此,唯一本地 IPv6 地址始终以"FD"开头。
IPv6 单播地址的范围:
链接本地地址的范围仅限于段。 唯一本地地址在本地是全球性的,但不通过 Internet 路由,将其范围限制在组织边界内。 全球单播地址是全球唯一且可识别的。 他们应构成 Internet v2 寻址的本质。