目录
16bit中如果开头为0,则可以压缩掉,但至少保留一个数字0 ;
多个相邻的16bit零,则可以压缩使用双冒号(::)表示,但仅能使用一次::
- 示例1:
-
- 21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A
-
- 压缩头部0得到: 21DA:D3:0:2F3B:2AA:FF:FE28:9C5A
-
- 示例2:
-
- FE80:0:0:0:2AA:FF:FE9A:4CA2
-
- 压缩相邻16bit 0得到:FE80::2AA:FF:FE9A:4CA2
需要注意的是,IPV6地址中十六进制数字不区分大小写,RFC 5952建议使用小写,但大写也很常见
单播地址唯一标识一个网络接口,类似V4地址的单播地址,IPV6要求所有的单播地址的网络前缀必须是64bit,如下图:
单播地址分类如下表格:
地址类型 | 前缀 | 前缀标识 |
全球单播 | 其他 | - |
唯一本地 | 1111110 | fc00::/7 |
链路本地 (Link Local地址) | 1111111010 | fe80::/10 |
此外,环回地址和全零(又称未指定地址)地址也被认作是单播地址。
环回地址:000...1(127bit 0+1bit 1),或表示为:::1/128;
未指定地址:0000..0(128bit 0),或表示为:::/128。
单播地址关系图
唯一本地地址可以按照fc00::/7地址块被识别,L位设置为1,该地址时本地分配。RFC 4193保留0,以供未来使用。因此,L位实际将fc00::/7地址块分成两个地址块:
Global ID(全局ID)是一个40bit的标识符,确保了地址的全局唯一性,它是伪随机产生的,不必是序列化的(因为ULA不应被全局路由,因而不必汇聚,所以序列化的全局ID是不必要的)。RFC 4193规定了分配40位全局ID的方法。RFC中定义了一种半随机算法,提供 了非常高的全局ID唯一性概率。
子网ID为管理者提供了一个资源,使得在站内可以定义层次化的寻址方案。
接口标识符,对所有单播地址的定义是相同的,符合EUI-64格式。
关于link local地址:
- 所有使能IPV6的网络接口都会自动配置一个link local单播地址,不同于IPV4,这是强制的;IPV4的链路本地地址时169.254.0.0/16地址块,不会自动配置,也不是强制的
- 同时配置link local和可路由地址时,优先使用可路由地址
- Link local地址可以被软件自动配置,格式为前缀FE80::/10(1111 1110 10)加上网络接口标识符(网卡mac地址),其中网络接口标识符采用EUI-64格式。
- 由于link local地址具有自动配置功能,因而被用作自动地址配置和邻居节点发现协议。在同一物理链路中,系统启动就可以自动通信,不需要全球唯一IP地址。由于link local地址的特殊生成规则,它是唯一的不会产生冲突。
- 使用link local地址的自动配置,IPV6的Neighbor Discovery协议代替了IPV4里面ARP协议,因而避免了ARP攻击。
- 路由器不会转发link local地址的数据包。
将link local地址视为一种便利的工具,让你能够为召开会议而组建临时LAN,或创建小型LAN,这些LAN不与因特网相连,但可以在本地共享文件和服务。
IEEE扩展唯一标识符(EUI-64)格式:
例如:48bit的MAC地址为 1c:34: da :4e:73:b4,将MAC地址划分成两个24bit的部分,然后中间插入16bit的十六进制0xfffe,就产生了EUI-64格式的网络接口ID部分。
MAC地址: 1c:34: da :4e:73:b4
自动配置产生的Link local地址:fe80::1e34:daff:fe4e:73b4
注意:对于接口ID的网络部分,EUI64格式的高位第7位(u位)当设置为0时,定义了一个本地范围,当设置为1时,就定义了一个全局单播地址。
标识属于不同节点的一组接口,类似IPv4的组播地址。发送到组播地址的数据包被传输给此地址所标识的所有接口。IPv6没有广播地址,广播地址的功能均由组播地址来提供(广播流量被证明是太耗费资源)。
定义为标识一组接口(通常这组接口属于不同的节点),发送给任播地址的数据包被传输给所标识的一组接口中距离源节点最近的一个接口。
任意播通信模式为一对接收者 中最近的一个(one-to-the-nearest-of-many)。这意味着,在任意播通信模 式中,一个主机可与多个潜在节点中最近的一个节点进行通信。最近是一个相对概念,通常取决于一个路由协议及其相关指标,根据所选标准来决定哪个任意播 地址最近或最佳。
(1) IPv6任播地址的用途之一是用来标识属于同一提供因特网服务的组织的一组路由器。这些地址可在IPv6路由头中作为中间地址,以使报文能够通过特定聚合或聚合顺序发送。另一个用途就是标识特定子网的一组路由器。
(2) 任意播通信的另一个典型示例为DNS查询,需要了解www.xyz. com地址是什么的主机并不关心哪个DNS服务器响应。发出查询的主机被导向拓扑结构上最近的服务器。如果进行响应的DNS服务器离线,则下一个最近的服务器会接受此请求。任意播地址与单播地址无法进行辨别(例如,没有构成任意播地址的确定位)。
地址类型 | 用途 | IPV6地址块 | 类比IPV4地址块 |
单播地址 | 特殊地址-未指定地址 | ::/128 | 0.0.0.0/32 |
特殊地址-环回地址 | ::1/128 | 127.0.0.1/8 | |
全球单播地址 | 2000::/3 | 公网地址 | |
链路本地地址 | fe80::/10 | 169.254.0.0/16 | |
唯一本地地址 | fc00::/7,其中 fc00::/8保留未定义 fd00::/8可以使用 | 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 | |
站点本地地址(已弃用) | fec0::/10 | ||
过渡-IPV4兼容地址(IPV4 Mapped)(已弃用) | ::192.168.1.1 | ||
过渡-IPV4映射地址 | ::ffff:192.168.1.1 | ||
多播地址 | 地址范围 | ff00::/8 | 224.0.0.0/ |