依据IETF的RFC 2373《IPv6寻址架构》的规定,IPv6地址是接口和接口集的128位标识符;并将IPv6地址的类型分为单播地址、组播地址和任播地址三类,其含义详见下表0中。下述对IPv6的这三种地址类型给予介绍。
表 0:单播地址、组播地址和任播地址的释义
欲具体了解RFC 2373标准内容的请进入。
“任播地址”与“组播地址”虽然都用于标志一组物理接口,但是发向任播地址的IP分组将仅投递给由该任播地址标志的接口之一,具体哪个接口来代表全组,则取决于按照所采用的路径算法,哪个接口离发送该IP分组的源的路径最短。RFC 2460还把Anycast地址称为“Cluster”地址,故国内有人将它译作群集地址。任播地址本质上也是一种组地址,所不同的是网络仅需将相关IP分组投递给组中某一成员,而不是所有成员。
与IPv4不同的是:IPv6的寻址方式中除增加了任播方式外,还取消了广播方式(Broadcasting)。从实际效果看,全Internet网的广播没有实际意义,子网内的广播可以通过组播来实现。在IPv4中,广播方式还占用了通信子网中代码为全“1”的地址。
一、单播地址(Unicast Address)
IPv6的单播地址(Unicast Address)是单个接口的标识符,发送单播地址的数据包被送到该地址标识的接口。IPv6的单播地址为整合型(Aggregtable)地址,可用若干比特的掩码(Mask)分层选径。IPv6标准中已定义的“单播地址”的形式,包括:整合全域型、NSAP型、IPX结构化地址、环回(Loopback)型地址、线路局部型、场地局部型和支持IPv4主机地址(带有嵌入式IPv4地址的IPv6地址)型等,某些具体详见下表1-0。IPv6路由器可能对它将要处理的某些IPv6地址的内部结构有足够的了解,但主机(Host)却可能了解甚少。因此,在最坏情况下,网络节点(主机或路由器)可能把“单播地址”视为128比特组成的无内部结构的地址;“知识”稍多的节点可能把“单播地址”视为由n比特子网前缀(Sub-network Prefix)和长度为128比特减去n比特的接口标志符(Interface ID)组成。根据节点在网络中扮演的作用,它也可能具备某类地址内部结构的知识。
表 1-0:几种“单播地址”的形式
1、接口标志符(Interface ID)
IPv6中单播地址中的接口标志符用于标志一条线路上的接口,它必须在该线路上具备惟一性,也可能在更广大的范围内具有惟一性。在许多场合,接口标志符就是该接口的数据线路地址。对同一节点,同一接口标志符也可以用来标志多个接口,因为同一节点的不同的接口可能有不同的子网前缀。
IPv6中的许多格式的前缀都要求接口标志符为64比特;并且要求符合IEEE EUI-64的格式。以EUI-64为基础的接口标志符可能具备全局意义(如使用IEEE 48比特MAC地址时),也可能只具备局部意义(如串行线路上、在隧道端点等)。64比特的接口标志符中的前3字节具有下图1-1所示的格式。
图 1-1:IPv6中64比特的接口标志符中的前3个字节格式规定
欲具体了解EUI-64技术介绍的请进入。
上图中的C为二进制比特,组成公司标志符(Company-Id);U为全局/局部(Universal/Local)标志位,“1”表示全局,“0”表示局部;G为单/组(Single/Group)标志(注意:IPv6中对U比特的使用方法与EUI-64中的规定相反)。
2、整合全域型单播地址(Aggregatable Global Unicast Addresses)
整合型全域单播地址是为支持目前的服务提供商整合和交换整合两种方式而设置的。二者的结合可使直接连接到网络访问服务提供商的“用户场地”(Site)与直接连接到交换机(Exchange)的“用户场地”间高效地实现选径方式的整合。不同场地的用户可以选择连接到上面两种整合点之一上。整合型全域单播地址具有下图1-2所示的格式,关于图中的符号含义见下表1-2。整合型全域单播地址的详细描述见RFC 2374。
图 1-2:整合型全域单播地址格式
表 1-2:整合型全域单播地址格式中符号含义
3、局部用单播地址(Local-use Unicast Address)
局部用单播地址有两类:线路局部(Link-Local)用单播地址和场地局部(Site-Local)用单播地址,分别在单链线路上和在单个场地内使用。线路局部用单播地址的设计的目的是为了在单条链路上(为了进行自动地址配置和邻居站点自动发现的需要,或者在无路由器存在时)进行寻址。相关标准规定:路由器绝不能将“源地址”或“目的地址”为“线路局部用单播地址”格式的分组转发到其他链路上。“线路局部用单播地址”的格式如下图1-3-1所示,图中Interface ID的格式如图1-1。线路局部用单播地址的前缀总是FE80::/64。
图 1-3-1:线路局部用单播地址格式
场地局部用单播地址的格式如下图1-3-2所示。由于场地局部单播地址仅用于场地内部,故图中的Subnet ID(子网标志符)为场地内部的子网标志符,可以在自己的机构内创建子网,路由器不得把带有“场地局部单播地址”的分组转接到场地外部的网络。场地局部用单播地址相当于IPv4中的私有地址空间。场地局部用单播地址的前缀总是FEC0::/48。
图 1-3-2:场地局部用单播地址格式
二、组播地址(Multicast Address)
IPv6的组播地址(Multicast Address)是一组接口(通常属于不同节点)的标识符,发送到多播地址的数据包将被发送到由该地址标识的所有接口。一个节点可以隶属于任意多个广播组。
1、组播地址格式
组播地址格式如下图2-1所示。图中各字段的解释如下:
图 2-1:组播地址格式
一是前缀(FP):8比特“11111111”,表示此地址为组播地址;
二是标志(Flag):4比特,其中,前3比特保留,第4比特为“临时”(T比特,即Transient)位,为“0”时表示为永久性组播地址,为“1”表示为临时性组播地址;
三是有效域(Scope):4比特用于限制组播地址的有效作用范围,目前RFC 2373定义的Scope值详见下表2-1-3。
表 2-1-3:IPv6的组播地址的范围字段的定义值
四是组播“组标志符”(Group ID):用于标志二个(独立于Scope的)永久性组播成员组,或者用于标志在Scope限定的范围内有效域临时性组播成员组。RFC 2375定义了那些被永久分配的IPv6组播的初始方案,详见下表2-1-4。
表 2-1-4:IPv6永久组播地址方案
注意:组播地址不能用作IPv6数据包中的源地址,也不能出现在任何路由头中。
2、预定义组播地址
下表2-2是预定义的知名IPv6组播地址(Pre-Defined Multicast Addresses)。
表 2-2:预定义的知名IPv6组播地址
3、新IPv6组播地址的分配
当前的方法将IPv6组播地址映射到IEEE 802 MAC地址,采用IPv6组播地址的低阶32位并使用它来创建MAC地址(请注意令牌环网络的处理方式不同)。组ID小于或等于32位将生成唯一的MAC地址。由于这个新的IPv6组播地址应该分配,使组标识符总是在低阶32位,如下图2-3所示(参见图2-1)。图中设置虽然这将永久IPv6组播组的数量限制在232,但这在未来不太可能成为限制。如果将来有必要超过这个限制,多播仍然可以工作,但处理速度会稍微慢一些。额外的IPv6组播新地址由互联网号码分配机构(IANA)负责。
图 2-3:低阶32位的IPv6组播地址
三、任播地址(Anycast Address)
IPv6的任播地址(Anycast Address)是一组接口(通常属于不同节点)的标识符,发送到任播地址的数据包被传送到由该地址标识的一个接口(根据路由协议的距离度量,是“最近的”接口)。任播地址指派给一个以上的接口(其典型情况为不同节点上的多个接口),发给任播地址的分组将被路由器按其“最短路径”算法,投递给该组接口中“最近”的一个。因此也有人称“组代播地址”。任播地址占用“单播地址”空间,并使用任一种单播地址格式。当“单播地址”被指派给一组接口时,该地址就成为“任播地址”。被指派为“任播地址”的所有节点必须明确地配置得使它们知道其地址为“任播地址”。
“任播地址”具有下图3所示的格式。图中的Subnet Prefix为子网前缀(简称“P”),用于标志“任播地址”组内所有接口的拓扑区域。在该区域内,P组内的每个成员必须作为一个独立的地址表项以“广告”方式进入选径表(通常称为主机选径)。在该区域之外,P作为标志符,“任播地址”可以整合进“P”的路径“广告”过程中。
图 3:任播地址格式
应当指出:如果“任播地址”中的“P”为0时,该地址的拓扑区不再具有局部性,而成为整个Internet内的全局“任播地址”,因而其“广告”过程必须在整个Internet内进行。因此,不宜支持全网性“任播地址”。人们预料“任播地址”可能应用将是用于标志提供Internet服务的组织/机构的路由器组、接入某通信子网的路由器组,或者进入某特定路径域的一组路由器。
注意:任意播地址不能作为IPv6报文的源地址。任意播地址不能分配给IPv6主机,也就是说,它只能分配给IPv6路由器。
事实上,有关上述IPv6地址的分配是由互联网号码分配机构(IANA)负责的。
欲详细了解互联网号码分配机构(IANA)关于IPv6地址分配情况的请进入。
欲进一步了解IPv6地址技术介绍的请进入。