各类IPv6的地址总结(任播地址、单播地址、全球单播地址、IPv6组播地址、链路本地地址、唯一本地地址、未指定地址、环回地址)
各类IPv6的地址总结(任播地址、单播地址、全球单播地址、IPv6组播地址、链路本地地址、唯一本地地址、未指定地址、环回地址)
IPv6地址分为单播地址、任播地址(Anycast Address)、组播地址三种类型。
和IPv4相比,取消了广播地址类型,以更丰富的组播地址代替,同时增加了任播地址类型。
IPv6地址分类:单播、组播、任播,取消广播地址,用被请求节点组播地址替代。
IPv6单播地址前3 bit 不是 000 则接口标识必须为 64bit
单播地址:
全球单播地址
格式:001+前缀+子网ID+接口ID
全球前缀至少48位,子网ID最多分配64位
2000::3
链路本地地址
怎么产生的?启动IPv6协议栈的设备,接口自动产生
格式:FE80+0(50bit)+接口ID(64bit)
前缀:FE80::/10 (即FE80::10开头)
当一个节点启动IPv6协议栈时,启动时节点的每个接口会自动配置一个链路本地地址(其固定的前缀+EUI-64规则形成的接口标识)。
这种机制使得两个连接到同一链路的IPv6节点不需要做任何配置就可以通信。
所以链路本地地址广泛应用于邻居发现,无状态地址配置等应用。
以链路本地地址为源地址或目的地址的IPv6报文不会被路由设备转发到其他链路。
唯一本地地址(私网地址)
如何理解?类似IPv4中的私网地址,只在本地网格内部路由转发。
格式:前缀+L标志+全球唯一前缀+子网ID+接口标识
格式:Prefix+L+Global ID+Subnet ID+Interface ID
前缀:FC00::/7
Prefix:前缀(7bit),固定为FC00::/7
L:L(1bit)标志位,值为1标识本地网络范围内使用,值为0保留
Global ID:全球唯一前缀(40bit),通过伪随机方式产生。
Subnet ID:子网ID(16bit),划分子网用的
Interface :接口标识(64bit)
唯一本地地址的作用类似于IPv4中的私网地址,任何没有申请到提供商分配的全球单播地址的组织机构都可以使用唯一本地地址。
唯一本地地址只能在本地网络内部被路由转发而不会在全球网络中被路由转发。
唯一本地地址具有如下特点:
具有全球唯一的前缀(虽然随机方式产生,但是冲突概率很低)。
可以进行网络之间的私有连接,而不必担心地址冲突等问题。
具有知名前缀(FC00::/7),方便边缘设备进行路由过滤。
如果出现路由泄漏,该地址不会和其他地址冲突,不会造成Internet路由冲突。
应用中,上层应用程序将这些地址看作全球单播地址对待。
独立于互联网服务提供商ISP(Internet Service Provider)。
可聚合全球单播地址
2001::/16
2002::/16
3FFE::/16
可聚合全球单播地址包括地址格式的起始3位为“001”的所有地址。即前缀是“001”。
任意播地址的组成是子网前缀+全0
环回地址
定义: 0:0:0:0:0:0:0:1/128 或者::1/128
未指定地址
定义:0:0:0:0:0:0:0:0/128 或者::/128
表示什么?表示接口、节点没有IP 。
什么情况会出现?
NS报文的重复地址检测中会出现
有什么特点?
不会被路由设备转发。
IPv4兼容地址:0:0:0:0:0:0::/96
组播地址,也叫多播地址
IPv6的组播与IPv4相同,用来标识一组接口,一般这些接口属于不同的节点。一个节点可能属于0到多个组播组。发往组播地址的报文被组播地址标识的所有接口接收。例如组播地址FF02::1表示链路本地范围的所有节点,组播地址FF02::2表示链路本地范围的所有路由器。
一个IPv6组播地址由前缀,标志(Flag)字段、范围(Scope)字段以及组播组ID(Global ID)4个部分组成:
前缀:IPv6组播地址的前缀是FF00::/8
IPv6组播地址
格式:前缀+标志(Flag)+范围(Scope)+组播组ID
格式:前缀+标志(flag)+范围+组播组
*前缀(8bit):固定为FF00::/8
前缀:FF00::/8
*标志(4bit):前3bit为0,第4bit为0表示永久组地址,为1表示临时组地址。
*范围:定义组播流传递都范围
*组播组ID(112bit) :前80bit用0填充,后32bit表示组播组ID
被请求节点组播地址:该组播地址的节点才处理
被请求节点组播地址前缀:FF02::1:FF00:0/104+单播地址的最后24位
被请求节点组播地址:前缀FF02::1:FF00:0/104+单播地址的最后24位组成。
生成方式:通过节点的单播或任播地址生成
被请求节点组播地址:用于邻居发现机制和地址重复检测功能。
当一个节点要解析一个IPv6地址对应的MAC时,发送NS报文,
该报文的目的IP就是对应的被请求节点组播地址;只有该组播地址的节点会检查处理。
预定义组播地址
Node-local
FF01::1 表示所有节点
FF01::2 表示所有路由器
Link-local
所有节点的组播地址: FF02:0:0:0:0:0:0:1
所有路由器的组播地址: FF02:0:0:0:0:0:0:2
Solicited-Node组播地址: FF02:0:0:0:0:1:FFXX:XXXX
所有OSPF路由器组播地址: FF02:0:0:0:0:0:0:5
所有OSPF的DR路由器组播地址: FF02:0:0:0:0:0:0:6
所有RIP路由器组播地址: FF02:0:0:0:0:0:0:9
所有PIM路由器组播地址: FF02:0:0:0:0:0:0:13
任播地址
作用:用于 IPv6 的移动特性,以及访问路径优化
没有独立的地址空间,使用和 IPv6单播地址共同的地址空间。
IPv6 任播地址仅用于路由设备,不能应用于主机及IPv6 报文的源地址。
任播地址标识一组网络接口(通常属于不同的节点)。
目标地址是任播地址的数据包将发送给其中路由意义上最近的一个网络接口。
任播地址设计用来在给多个主机或者节点提供相同服务时提供冗余功能和负载分担功能。目前,任播地址的使用通过共享单播地址方式来完成。将一个单播地址分配给多个节点或者主机,这样在网络中如果存在多条该地址路由,当发送者发送以任播地址为目的IP的数据报文时,发送者无法控制哪台设备能够收到,这取决于整个网络中路由协议计算的结果。这种方式可以适用于一些无状态的应用,例如DNS等。
IPv6中没有为任播规定单独的地址空间,任播地址和单播地址使用相同的地址空间。目前IPv6中任播主要应用于移动IPv6。
IPv6任播地址仅可以被分配给路由设备,不能应用于主机。任播地址不能作为IPv6报文的源地址。
①任意播地址不能作源地址,而只能作为目标地址。
②任意播地址不能指定给IPv6主机,只能指定给IPv6路由器。
IPv6地址分为单播地址、任播地址(Anycast Address)、组播地址三种类型。
和IPv4相比,取消了广播地址类型,以更丰富的组播地址代替,同时增加了任播地址类型。
IPv6单播地址 Unicast
IPv6单播地址标识了一个接口,由于每个接口属于一个节点,因此每个节点的任何接口上的单播地址都可以标识这个节点。发往单播地址的报文,由此地址标识的接口接收。
IPv6定义了多种单播地址,目前常用的单播地址有:未指定地址、环回地址、全球单播地址、链路本地地址、唯一本地地址ULA(Unique Local Address)。
未指定地址(不确定地址)
IPv6中的未指定地址即 0:0:0:0:0:0:0:0/128 或者::/128。该地址可以表示某个接口或者节点还没有IP地址,可以作为某些报文的源IP地址(例如在NS报文的重复地址检测中会出现)。源IP地址是::的报文不会被路由设备转发。
环回地址
IPv6中的环回地址即 0:0:0:0:0:0:0:1/128 或者::1/128。环回与IPv4中的127.0.0.1作用相同,主要用于设备给自己发送报文。该地址通常用来作为一个虚接口的地址(如Loopback接口)。实际发送的数据包中不能使用环回地址作为源IP地址或者目的IP地址。
回送地址(ipv4回送地址是127.0.0.1,用来指本机)
任播地址Anycast Address:任意播地址是一组接口的标识符,对应的多个接口。
如果一个数据报文要求被传送到一个任意点地址,则将被传送到最近一个接口(路由器决定)。
IPv6任意播地址的限制:
1、任意播不能用于源地址,只能做目的地址。
2、任意播地址不能指定给IPv6主机,只能指定给IPv6路由器。
和IPv4相比,取消了广播地址类型,以更丰富的组播地址代替,同时增加了任播地址类型。
IPv6单播地址 Unicast
IPv6单播地址标识了一个接口,由于每个接口属于一个节点,因此每个节点的任何接口上的单播地址都可以标识这个节点。发往单播地址的报文,由此地址标识的接口接收。
IPv6定义了多种单播地址,目前常用的单播地址有:未指定地址、环回地址、全球单播地址、链路本地地址、唯一本地地址ULA(Unique Local Address)。
未指定地址
IPv6中的未指定地址即 0:0:0:0:0:0:0:0/128 或者::/128。该地址可以表示某个接口或者节点还没有IP地址,可以作为某些报文的源IP地址(例如在NS报文的重复地址检测中会出现)。源IP地址是::的报文不会被路由设备转发。
环回地址
IPv6中的环回地址即 0:0:0:0:0:0:0:1/128 或者::1/128。环回与IPv4中的127.0.0.1作用相同,主要用于设备给自己发送报文。该地址通常用来作为一个虚接口的地址(如Loopback接口)。实际发送的数据包中不能使用环回地址作为源IP地址或者目的IP地址。
全球单播地址
全球单播地址是带有全球单播前缀的IPv6地址,其作用类似于IPv4中的公网地址。这种类型的地址允许路由前缀的聚合,从而限制了全球路由表项的数量。
全球单播地址由全球路由前缀(Global routing prefix)、子网ID(Subnet ID)和接口标识(Interface ID)组成,其格式如图所示:
Global routing prefix:全球路由前缀。由提供商(Provider)指定给一个组织机构,通常全球路由前缀至少为48位。目前已经分配的全球路由前缀的前3bit均为001。
Subnet ID:子网ID。组织机构可以用子网ID来构建本地网络(Site)。子网ID通常最多分配到第64位。子网ID和IPv4中的子网号作用相似。
Interface ID:接口标识。用来标识一个设备(Host)。
链路本地地址
链路本地地址是IPv6中的应用范围受限制的地址类型,只能在连接到同一本地链路的节点之间使用。它使用了特定的本地链路前缀FE80::/10(最高10位值为1111111010),同时将接口标识添加在后面作为地址的低64比特。
当一个节点启动IPv6协议栈时,启动时节点的每个接口会自动配置一个链路本地地址(其固定的前缀+EUI-64规则形成的接口标识)。这种机制使得两个连接到同一链路的IPv6节点不需要做任何配置就可以通信。所以链路本地地址广泛应用于邻居发现,无状态地址配置等应用。
以链路本地地址为源地址或目的地址的IPv6报文不会被路由设备转发到其他链路。链路本地地址的格式如图所示:
唯一本地地址
唯一本地地址是另一种应用范围受限的地址,它仅能在一个站点内使用。由于本地站点地址的废除(RFC3879),唯一本地地址被用来代替本地站点地址。
唯一本地地址的作用类似于IPv4中的私网地址,任何没有申请到提供商分配的全球单播地址的组织机构都可以使用唯一本地地址。唯一本地地址只能在本地网络内部被路由转发而不会在全球网络中被路由转发。唯一本地地址格式如图所示:
Prefix:前缀;固定为FC00::/7。
L:L标志位;值为1代表该地址为在本地网络范围内使用的地址;值为0被保留,用于以后扩展。
Global ID:全球唯一前缀;通过伪随机方式产生。
Subnet ID:子网ID;划分子网使用。
Interface ID:接口标识。
唯一本地地址具有如下特点:
具有全球唯一的前缀(虽然随机方式产生,但是冲突概率很低)。
可以进行网络之间的私有连接,而不必担心地址冲突等问题。
具有知名前缀(FC00::/7),方便边缘设备进行路由过滤。
如果出现路由泄漏,该地址不会和其他地址冲突,不会造成Internet路由冲突。
应用中,上层应用程序将这些地址看作全球单播地址对待。
独立于互联网服务提供商ISP(Internet Service Provider)。
IPv6组播地址
IPv6的组播与IPv4相同,用来标识一组接口,一般这些接口属于不同的节点。一个节点可能属于0到多个组播组。发往组播地址的报文被组播地址标识的所有接口接收。例如组播地址FF02::1表示链路本地范围的所有节点,组播地址FF02::2表示链路本地范围的所有路由器。
一个IPv6组播地址由前缀,标志(Flag)字段、范围(Scope)字段以及组播组ID(Global ID)4个部分组成:
前缀:IPv6组播地址的前缀是FF00::/8。
标志字段(Flag):长度4bit,目前只使用了最后一个比特(前三位必须置0),当该位值为0时,表示当前的组播地址是由IANA所分配的一个永久分配地址;当该值为1时,表示当前的组播地址是一个临时组播地址(非永久分配地址)。
范围字段(Scope):长度4bit,用来限制组播数据流在网络中发送的范围,该字段取值和含义的对应关系如图5所示。
组播组ID(Group ID):长度112bit,用以标识组播组。目前,RFC2373并没有将所有的112位都定义成组标识,而是建议仅使用该112位的最低32位作为组播组ID,将剩余的80位都置0。这样每个组播组ID都映射到一个唯一的以太网组播MAC地址(RFC2464)。
IPv6组播地址格式如图所示:
•被请求节点组播地址 •被请求节点组播地址通过节点的单播或任播地址生成。当一个节点具有了单播或任播地址,就会对应生成一个被请求节点组播地址,并且加入这个组播组。一个单播地址或任播地址对应一个被请求节点组播地址。该地址主要用于邻居发现机制和地址重复检测功能。 •IPv6中没有广播地址,也不使用ARP。但是仍然需要从IP地址解析到MAC地址的功能。在IPv6中,这个功能通过邻居请求NS(Neighbor Solicitation)报文完成。当一个节点需要解析某个IPv6地址对应的MAC地址时,会发送NS报文,该报文的目的IP就是需要解析的IPv6地址对应的被请求节点组播地址;只有具有该组播地址的节点会检查处理。 被请求节点组播地址由前缀FF02::1:FF00:0/104和单播地址的最后24位组成
IPv6任播地址
任播地址标识一组网络接口(通常属于不同的节点)。
目标地址是任播地址的数据包将发送给其中路由意义上最近的一个网络接口。
任播地址设计用来在给多个主机或者节点提供相同服务时提供冗余功能和负载分担功能。目前,任播地址的使用通过共享单播地址方式来完成。将一个单播地址分配给多个节点或者主机,这样在网络中如果存在多条该地址路由,当发送者发送以任播地址为目的IP的数据报文时,发送者无法控制哪台设备能够收到,这取决于整个网络中路由协议计算的结果。这种方式可以适用于一些无状态的应用,例如DNS等。
IPv6中没有为任播规定单独的地址空间,任播地址和单播地址使用相同的地址空间。目前IPv6中任播主要应用于移动IPv6。
IPv6任播地址仅可以被分配给路由设备,不能应用于主机。任播地址不能作为IPv6报文的源地址。
①任意播地址不能作源地址,而只能作为目标地址。
②任意播地址不能指定给IPv6主机,只能指定给IPv6路由器。
IPv6子网路由器任播地址
子网路由器任播地址是已经定义好的一种任播地址(RFC3513)。发送到子网路由器任播地址的报文会被发送到该地址标识的子网中路由意义上最近的一个设备。所有设备都必须支持子网任播地址。子网路由器任播地址用于节点需要和远端子网上所有设备中的一个(不关心具体是哪一个)通信时使用。例如,一个移动节点需要和它的“家乡”子网上的所有移动代理中的一个进行通信。
子网路由器任播地址由n bit子网前缀标识子网,其余用0填充。格式如图所示: