现在的位置: 首页 > 综合 > 正文

RFC4291 IPv6寻址结构

2018年04月16日 ⁄ 综合 ⁄ 共 16203字 ⁄ 字号 评论关闭

 
RFC4291废止了RFC3513(RFC3513废止了RFC2373)。 
 
本备忘录状态 
本文档规定了一种互联网社区的互联网标准跟踪协议,它需要进一步讨论和建议以不断
完善。请参考最新版本的“互联网正式协议标准”(Internet Official Protocol Standards, STD1)
以了解本协议的标准化程度和状态。本备忘录的分发不受限制。 
 
版权说明 
Copyright Notice 
Copyright (C) The Internet Society (2006). 
 
摘要 
本标准定义了IPv6协议的寻址结构。本文件包括IPv6寻址模式,IPv6地址的文本表示,
IPv6单播地址、任播地址和多播地址的定义,以及IPv6 节点需要的地址。 
本文件废止了RFC3513(“IP Version 6 Addressing Architecture  ”)。 
 
目录 
第1章  介绍 
第2章  IPv6寻址   
2-1  寻址模型   
2-2  地址的文本表示 
2-3  地址前缀的文本表示 
2-4  地址类型标识   
2-5  单播地址 
2-5-1  接口标识符 
2-5-2  未指定地址 
2-5-3  环回地址 
2-5-4  全球单播地址 
2-5-5  带有嵌入IPv4地址的IPv6地址 
2-5-6  链路本地IPv6单播地址 
2-5-7  站点本地IPv6单播地址 
2-6  任播地址 
2-6-1    被要求的任播地址   
2-7    多播地址 
2-7-1  预先定义的多播地址 
2-8    节点被要求的地址   
第3章  安全考虑 
第4章  IANA考虑 
第5章  致谢 
第6章  参考文献 
6-1  标准类参考文献 
6-2  信息类参考文献 
附录A:生成改进的EUI-64格式接口标识符 
附录B:对RFC3513的改动 
 
第1章  介绍 
本标准定义了IPv6协议的寻址结构。包括各种类型IPv6 (单播、任播和多播)地址的基
本格式。 
 
第2章  IPv6 寻址 
IPv6 地址是接口和接口组(“接口”的定义参阅[IPv6]第2章定义)的128比特标识符。
有三种地址类型: 
单播地址:是单一接口的标识符。发送到单播地址的分组被交付给由该地址标识的接口。 
任播地址:一组接口(典型属于不同节点)的标识符。发送到任播地址的分组被交付给由该地
址标识的一组接口之一(“最近的”一个,按照路由协议的测量距离)。 
多播地址:一组接口的标识符(典型属于不同节点)。发送到多播地址的分组被交付给由该地
址标识的所有接口。 
IPv6不使用广播地址,广播地址的功能由多播地址代替。 
本文中,地址中的字段被给予了特定的名称,例如“子网(subnet)”。当这样的名称在前,
表示标识符的术语“ID”紧随其后一起使用(例如,子网ID(subnet ID))时,二者的组合指该
名称字段的内容。当这样的名称与术语“前缀(prefix)”一起使用(例如,子网前缀(subnet prefix))
时,二者的组合指从左边开始直到包括这个字段在内的全部地址。 
在IPv6 中,对于任何字段,全0和全1是合法的,除非特殊规定。更准确地说,前缀
可以包括0值字段,或前缀可以以0值字段结束。 
 
2-1   寻址模式 
所有类型IPv6 地址都是分配给接口的,不是分配给节点的。IPv6 单播地址指单一接口。
由于每个接口都属于单一节点,任何节点的接口单播地址都可以用作该节点的标识符。 
要求所有接口至少有一个链路本地单播地址(参阅第2-8节,额外需要的地址)。单个接口也
可以有多个任何类型(单播、任播和多播),或任何范围的IPv6 地址。不用作任何IPv6 分组(该
分组是发送到或来自于非邻居)的源或目的地的接口,不需要范围大于链路范围的单播地址。
这在某些情况对点对点接口较为方便。此寻址模式有一个例外: 
如果实现中将此多个物理接口当作在网络层上出现的一个接口,一个单播地址或一组单
播地址可以分配给多个物理接口。这样做有利于多个物理接口上的负载均衡。 
目前,在子网前缀与一条链路关联上,IPv6 继承了IPv4 模式。多个子网前缀可以分配
给同一链路。 
 
2-2   地址的文本表示 
有三种将IPv6 地址表示为文本串的约定格式: 
1、优先选用格式为x:x:x:x:x:x:x:x,这里“x”是地址的8个16位地址片中每个16位片的1
到4个16进制数字。例如: 
ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 
2001:DB8:0:0:8:800:200C:417A 
注意,可以不写单个字段(即16位地址片。译者)中开始的0,但是每个字段中至少要有1个
数字(除了下面2、中介绍的情况以外。)。 
2、由于需要分配特定类型IPv6 地址,地址中会包括长0位串。为简化包含长0位地址的书
写,采用特殊句法压缩0的个数。即用“::”表示1个或多个0值16位组。“::”在地址中
仅可以出现一次。“::”也用于压缩地址中开始位置和结束位置的多个0。 
例如,下述地址 
2001:DB8:0:0:8:800:200C:417                  单播地址 
        FF01:0:0:0:0:0:0:101                                  多播地址 
0:0:0:0:0:0:0:1                                            环回地址 
0:0:0:0:0:0:0:0                                            未指定地址 
可以表示为: 
2001:DB8::8:800:200C:417                        单播地址 
FF01::101                                                    多播地址 
::1                                                                环回地址 
::                                                                  未指定地址 
3、在混用IPv4 节点和IPv6 节点环境,一种替代地址格式有时更为方便,这种地址格式是
x:x:x:x:x:x:d.d.d.d。这里“x”是地址的6个高阶16位地址片的16进制值,“d”是地址的
4个低阶8位地址片的10进制值(标准的IPv4 地址表示)。例如:   
0:0:0:0:0:0:13.1.68.3 
0:0:0:0:0:FFFF:129.144.52.38 
或压缩形式: 
::13.1.68.3 
::FFFF:129.144.52.38 
 
2-3     地址前缀的文本表示 
IPv6 地址前缀的文本表示类似采用无分类域间路由(Classless  Inter-Domain  Routing, 
CIDR)斜线表示法[CIDR]书写的IPv4 地址前缀。IPv6 地址前缀表示为: 
ipv6 地址/前缀长度 
这里 
ipv6 地址              是用第2-2节列出的任何一种符号表示法表示的IPv6地址。 
前缀长度              是十进制值,规定地址中最左边多少个连续位构成前缀。 
例如,下述是60比特前缀20010DB80000CD3(16 进制)的合法表示: 
2001:0DB8:0000:CD30:0000:0000:0000:0000/60 
2001:0DB8::CD30:0:0:0:0/60 
2001:0DB8:0:CD30::/60 
下述不是上述前缀的合法表示: 
2001:0DB8:0:CD3/60        在任何16比特地址块中,可以抛弃起始的0,但是不能抛弃
尾部的0。 
2001:0DB8::CD30/60        “/”左边的地址扩展为 
2001:0DB8:0000:0000:0000:0000:0000:CD30 
2001:0DB8::CD3/60          “/”左边的地址扩展为 
2001:0DB8:0000:0000:0000:0000:0000:0CD3 
当书写节点地址和该节点地址的前缀(例如,节点的子网前缀)时,二者合并写法如下: 
节点地址              2001:0DB8:0:CD30:123:4567:89AB:CDEF 
和它的子网号      2001:0DB8:0:CD30::/60 
二者能够缩写为          2001:0DB8:0:CD30:123:4567:89AB:CDEF/60 
 
2-4   地址类型标识 
IPv6地址类型由地址的高阶位标识,即: 
地址类型           二进制前缀                 IPv6 符号表示法              所在章节 
未指定                00...0 (128 bits)                          ::/128                          第2-5-2节 
环回                    00...1 (128 bits)                          ::1/128                        第2-5-3节 
多播                    11111111                                  FF00::/8                        第8-2-7节 
链路本地单播  1111111010                             FE80::/10                     第2-5-6节 
全球单播            (别的每一种)    
任播地址取自(具有任何范围的)单播地址空间,在句法上任播地址与单播地址难以区分。 
全球单播地址一般格式如第2-5-4节所述。一些特定目的全球单播地址子类型,包含了嵌入
的IPv4地址(出于IPv4-IPv6 互操作目的),在第2-5-5节介绍。 
出于其他考虑,将来的标准可以为全球单播空间重新定义细分的一种或多种子空间,但
是,除非出现这种重新定义和直到这种重新定义发生,实现中必须把没有以上述列出的任何
一种前缀开始的所有地址,当作是全球单播地址。 
 
2-5     单播地址 
IPv6 单播地址是与任意比特长度的前缀聚合在一起的,类似IPv4 的无分类域间路由
(CIDR)地址。 
在IPv6中有几类单播地址:全球单播、站点本地单播(已过时,参阅第2-5-7节)和链路
本地单播。全球单播还有一些特定目的子类型,例如带有嵌入IPv4 地址的IPv6地址。将来
可以定义新增的地址类型或子类型。 
IPv6节点可能非常了解,也可能很少了解IPv6地址内部结构,取决于节点担当的角色(例
如,主机还是路由器)。最简单情况,节点或许认为单播地址(包括它自己的)没有内部结构,
仅是图1所示的128位地址。 
节点地址 (node addres s )
128 bits
 
图1   节点眼中的最简单单播地址结构 
 
稍微完善些的主机(仍然相当简单)或许多少意识到它附着的链路的子网前缀,在子网前
缀中不同的地址有不同的n值(子网前缀比特值。译者),参见图2。 
子网前缀(s ubnet prefix)
n bits
接口ID(interface ID )
128-n bits
 
图2   稍微完善些主机眼中的单播地址格式 
 
虽然非常简单的路由器或许不知道IPv6 单播地址内部结构,通常情况下路由器有一种
或多种路由协议运行分层边界知识。这些已知边界因路由器的不同而不同,取决于该路由器
在路由等级结构中的位置。 
除了上一段讨论的子网边界知识以外,节点不会对IPv6地址结构做任何假设。 
 
2-5-1     接口标识符 
IPv6单播地址中的接口标识符(interface ID)用于标识链路上的接口。子网前缀中接口标
识符应该是唯一的。建议同一接口标识符不分配给链路上的不同节点。在更宽范围上接口标
识符或许也是唯一的。有些情况,接口的标识符直接来源于该接口的链路层地址。同一接口
标识符可用在单一节点的多个接口上,只要它们附着到不同子网。 
注意,接口标识符的唯一性独立于IPv6 地址的唯一性。例如,全球单播地址可以用本
地范围接口标识符生成,链路本地地址可以用全球范围接口标识符生成。 
对于所有单播地址,除了以二进制值000开始的以外,要求接口IDs 为64比特长,由
改进的EUI-64格式构建。 
当源自全球标记时(例如,IEEE 802 48-bit MAC标识符或IEEE EUI-64标识符[EUI64]),
基于改进的EUI-64格式的接口标识符可以有全球范围;当不能得到全球标记时(例如,串联
链路,隧道端点)或者不希望使用全球标记时(例如,临时的私有标记[PRIV]),基于改进的
EUI-64格式的接口标识符可以有本地范围。 
当根据IEEE EUI-64标识符形成接口标识符时,通过插入“u”比特(universal/local比特,
IEEE EUI-64术语),即可形成改进的EUI-64格式接口标识符。最终在改进的EUI-64格式中,
“u”比特置1表示全球范围,“u”比特置0表示本地范围。二进制形式的IEEE  EUI-64标
识符的前3个字节如图3所示。 
c c c c
0 0
c c u g c c c c c c c c c c c c c c c c
0 7
0
8 5 6 3
1 1 2
 
图3     二进制形式IEEE EUI-64标识符的前3个字节格式 
 
图3中用互联网标准比特顺序书写。“u”是universal/local位,“g”是individual/group 位,
“c”是公司ID 位。附录A“生成改进的EUI-64格式接口标识符”,举例说明了任何生成基
于改进的EUI-64格式接口标识符。 
形成接口标识符时插入“u”比特是为了便于系统管理者,使其在不能得到硬件标记时,
也能配置非全球标识符。例如,针对串联链路和隧道端点情况。对这些情况的替代方案或许
是0200:0:0:1,0200:0:0:2格式等,代替更简单的0:0:0:1,0:0:0:2等。 
不要求IPv6 节点证实由改进的EUI-64标记(该标记的“u”比特设置为全球范围)生成
的接口标识符是唯一的。 
在改进的EUI-64格式标识符中使用universal/local比特将引起新技术研发,这些新技术
能够利用具有全球范围的接口标识符。 
形成接口标识符的细节在相应的“相关链路的IPv6”规范中定义,例如“以太网上的
IPv6”  [ETHER],和“FDDI上的IPv6”  [FDDI]。 
 
2-5-2   未指定地址 
地址0:0:0:0:0:0:0:0称作未指定地址。它必须不分配给任何节点。它表示没有这个地址。
使用未指定地址的例子如:正在初始化的主机还没有学习到它自己的地址之前,它发送的任
何IPv6分组中Source Address字段的内容。 
未指定地址必须不用作IPv6分组的目的地地址,也必须不在IPv6  的Routing首部中使
用。IPv6 路由器必须不转发含未指定的源地址的IPv6 分组。 
 
2-5-3     环回地址 
单播地址0:0:0:0:0:0:0:1称为环回地址。节点用其发送返回到自己的IPv6分组。它必须
不分配给任何物理接口。它被看作属于链路本地范围,可以被当作是虚拟接口(典型称作“环
回接口”)的链路本地单播地址,该虚拟接口通向一个假想的链路,该链路和谁也不连通。 
环回地址必须不用作IPv6 分组(这些分组是从单个节点发送到该节点外面的)中的源地
址。以环回地址为目的地地址的IPv6 分组决不能发送到单一节点以外,并且决不能经由IPv6
路由器转发。接口收到目的地为环回地址的分组必须将其抛弃。 
 
2-5-4     全球单播地址 
IPv6全球单播地址一般格式如图4所示。 
全球路由前缀
(global routing prefix)
n bits  
接口ID
( interface ID )
子网ID
(s ubnet ID)
m bits   128-n-m bits  
 
图4   全球单播地址一般格式 
 
图4中,全球路由前缀是一个(典型等级结构)值,该值分配给站点(一群子网/链路),子网ID
是该站点内链路的标识符,接口ID 如第2-5-1节定义。 
除了以二进制000开始的全球单播地址外,所有全球单播地址有一个64位的接口ID
字段(即,n + m = 64),格式如第2-5-1节所述。以二进制000开始的全球单播地址,在大小
上或接口ID 字段结构上没有这类限制。 
以二进制000开始的全球单播地址的例子是具有嵌入的IPv4 地址的IPv6 地址,如第
2-5-5节所述。使用除了000外的二进制值开始的全球地址的例子(因此有一个64比特接口
ID 字段)参阅[GLOBAL]。 
 
2-5-5     带有嵌入的IPv4地址的IPv6 地址 
定义了两类携带IPv4地址的IPv6地址,它们均在地址的低阶32比特中携带IPv4地址。
它们是“IPv4兼容的IPv6 地址”和“IPv4映射的IPv6 地址”。 
 
2-5-5-1      IPv4兼容的IPv6 地址 
“IPv4 兼容的IPv6 地址”用于IPv6 转换。“IPv4 兼容的IPv6地址”的格式如图5所示。 
0000„„„„„ 0000
80 bits  
IP v 4地址 0000
16 32 bits
 
图5    IPv4兼容的IPv6地址格式 
 
注意:在“IPv4兼容的IPv6 地址”中使用的IPv4 地址必须是全球唯一IPv4 单播地址。 
“IPv4 兼容的IPv6 地址”现在已经过时,因为目前IPv6 转换机制不再使用这些地址。不要
求新的或更新的实现支持这种地址类型。 
 
2-5-5-2      IPv4映射的IPv6 地址 
定义了第二类内含嵌入的IPv4 地址的IPv6 地址。这个地址类型用于将IPv4 节点的地
址表示为IPv6 地址。“IPv4 映射的IPv6地址”的格式如图6所示。 
0000„„„„„ 0000
80 bits  
IP v 4地址 F F F F
16 32 bits
 
图6    IPv4映射的IPv6地址格式 
 
使用“IPv4 映射的IPv6 地址”的背景介绍参阅[RFC4038]。 
 
2-5-6     链路本地IPv6单播地址 
链路本地地址用于单一链路。链路本地地址格式如图7所示。| 
1111111010
10 bits  
接口ID
( interface ID )
0
54 bits 64 bits
 
图7   链路本地地址格式 
 
链路本地地址被设计用于在单一链路上寻址,在诸如自动地址配置、邻居发现,或者在
链路上没有路由器时使用。 
路由器必须不转发任何具有链路本地源地址,或具有链路本地目的地地址的分组到其他
链路。 
 
2-5-7     站点本地IPv6单播地址 
最初设计站点本地地址是用于不需要全球前缀的站点内部寻址。现在,站点本地地址已
经过时了,参阅[SLDEP]。站点本地地址格式如图8所示。 
1111111011
10 bits  
接口ID
( interface ID )
子网ID
(s ubnet ID )
54 bits 64 bits
 
图8   站点本地地址格式 
 
在新的实现中,必须不再支持由[RFC3513]定义的这个前缀的特殊性质(即,新的实现必
须将此前缀看作是全球单播)。 
已有的实现和部署可以继续使用这个前缀。 
 
2-6     任播地址 
IPv6任播地址分配给多于一个接口(典型属于不同节点)。任播地址具有这样的性质:发
送到任播地址的分组,被按照路由协议的测量距离,路由到有该任播地址的“最近的”接口。 
任播地址是根据单播地址空间分配的,使用任何已定义的单播地址格式。因此,任播地址在
句法上不能与单播地址相互区别。于是,当单播地址分配给多于一个接口时,该单播地址转
化为任播地址。分得该地址的节点必须被显示配置,以便知道该地址是任播地址。 
对于任何分配的任播地址,有一个该地址的最长前缀P,它标识一个拓扑区域,属于该
任播地址的所有接口都驻留在此区域内。在由P标识的区域内,路由系统(通常指“主机路
由”)必须将任播地址作为独立条目维护;在由P标识的区域外,任播地址可以被聚合成前
缀P的路由条目。 
注意,在最坏情况,一个任播集的前缀P 或许是空前缀,即,该集合的成员在拓扑上
没有位置。在此情况下,该任播地址必须在整个互联网被作为独立的路由条目维护,这产生
了严重的规模限制,即,可以支持多少个这样的“全球”任播集合?因此,对全球任播集合
的支持即使不是不现实的,也是非常受限的。 
希望使用任播地址的一种情况是,标识属于某个提供互联网服务组织的路由器的集合。
这样的地址能够用作IPv6 Routing首部内的中继地址,以便使分组交付经由特定服务提供商
或一系列服务提供商实现。 
其他应用包括,标识附着在特定子网上的路由器集合,或提供进入特定路由域入口的路
由器集合。 
 
2-6-1     被要求的任播地址 
Subnet-Router任播地址是预先定义的。它的格式如图9所示。 
0000000000000000000
子网前缀
(s ubnet prefix)
n bits 128-n bits
 
图9   Subnet-Router任播地址格式 
 
图9任播地址中“子网前缀”是这样一个前缀,它标识一个特定链路。此任播地址在句法上,
与该链路上接口标识符设置为0的接口的单播地址相同。 
发送到Subnet-Router任播地址的分组将交付给该子网上的一个路由器。要求所有与子
网有接口连通的路由器支持该子网的Subnet-Router任播地址。 
Subnet-Router任播地址可用于这样的场合,那里节点需要与一组路由器中的任何一个
通信。 
 
2-7     多播地址 
IPv6多播地址是一组接口的标识符(典型在不同节点上)。一个接口可以属于任何数目的
多播组。多播地址格式如图10所示。 
组ID
(group ID )
11111111
8 112 bits
标记
(flgs )
范围
( s cop)
4 4
 
图10   多播地址格式 
 
地址开始处的二进制11111111 标识该地址是一个多播地址。“flgs”(即flags。译者)
标识下述4个标记,如图11所示。 
0
1
R P T
1 1 1
 
图11   多播地址格式中的4个标记 
 
高阶标记被保留,并必须初始化为0。 
T = 0表示永久分配的(“熟知的”)多播地址,由互联网编号分配机构(Internet Assigned 
Numbers Authority, IANA)分配。 
T = 1 表示非永久分配的(“临时的”或“动态”分配的)多播地址。 
P标记的定义和应用参阅[RFC3306]。 
R标记的定义和应用参阅[RFC3956]。 
scop(即scope。译者)是一个4位多播范围值,用于限制多播组的范围,scop 的取值如
下: 
0   保留 
1   接口本地范围 
2      链路本地范围 
3      保留 
4      域本地范围   
5      站点本地范围 
6      (未分配) 
7    (未分配) 
8      组织本地范围 
9      (未分配) 
A    (未分配) 
B   (未分配) 
C   (未分配) 
D   (未分配) 
E   全球范围 
F   保留 
接口本地范围仅跨越节点上的单一接口,仅用于多播的环回发送。 
链路本地多播范围跨越与对应单播范围相同的拓扑区域。 
域本地范围是最小的范围,它必须从管理上配置,即,不能自动地通过物理连接配置,
或不能通过其他非多播相关配置实现。 
站点本地范围力图跨越单一站点。 
组织本地范围力图跨越属于单一组织的多个站点。   
标注“(未分配)”的范围可由管理者使用,以便定义增加的多播区域。 
组ID 标识给定范围内的多播组,多播组或者是永久的或者是临时的。多播组ID 字段
结构的附加定义参阅[RFC3306]。 
永久分配的多播地址的“含义”独立于范围值。例如,如果给“NTP服务器组”分配
一个组ID  为101(16进制)的永久多播地址,那么 
FF01:0:0:0:0:0:0:101意味着在相同接口(即,相同节点)上的所有NTP服务器(作为发送者)。 
FF02:0:0:0:0:0:0:101意味着在相同链路上的所有NTP服务器(作为发送者)。 
FF05:0:0:0:0:0:0:101意味着在相同站点内的所有NTP服务器(作为发送者)。 
FF0E:0:0:0:0:0:0:101意味着在互联网中的所有NTP服务器。 
非永久分配的多播地址仅在给定范围内是有意义的。例如,由一个站点内非永久站点本
地多播地址F15:0:0:0:0:0:0:101标识的组,与在不同站点、使用相同地址的组没有关联;与
使用相同组ID,具有不同范围的非永久组也没有关联;与具有相同组ID 的永久组也没有关
联。 
多播地址必须不用于IPv6分组中的源地址,或必须不出现在任何Routing首部中。 
路由器必须不转发超出在目的地多播地址中scop字段标识的范围的任何多播分组。 
节点必须不发起到这样的多播地址的分组,该多播地址的scop 字段包含保留值为0;
如果收到这样的分组,节点必须将其静默抛弃。节点应当不发起到其scop 字段包含保留值
为F的多播地址的分组;如果发送或收到这样的分组,节点必须像对待目的地为全球(scop E)
多播地址的分组那样处理这样的分组。 
 
2-7-1     预定义多播地址 
下述熟知的多播地址是预先定义好的。本节定义的组ID 被分配了显示范围值。 
不允许这些组ID(带有T标记为0)使用任何其他范围值。 
保留的多播地址:FF00:0:0:0:0:0:0:0 
FF01:0:0:0:0:0:0:0 
FF02:0:0:0:0:0:0:0 
FF03:0:0:0:0:0:0:0 
FF04:0:0:0:0:0:0:0 
FF05:0:0:0:0:0:0:0 
FF06:0:0:0:0:0:0:0 
FF07:0:0:0:0:0:0:0 
FF08:0:0:0:0:0:0:0 
FF09:0:0:0:0:0:0:0 
FF0A:0:0:0:0:0:0:0 
FF0B:0:0:0:0:0:0:0 
FF0C:0:0:0:0:0:0:0 
FF0D:0:0:0:0:0:0:0 
FF0E:0:0:0:0:0:0:0 
FF0F:0:0:0:0:0:0:0 
上述多播地址被保留,决不能分配给任何多播组。 
所有节点地址:  FF01:0:0:0:0:0:0:1 
FF02:0:0:0:0:0:0:1 
上述多播地址标识范围1(接口本地)或范围2(链路本地)内的所有IPv6 节点组。 
所有路由器地址:FF01:0:0:0:0:0:0:2 
FF02:0:0:0:0:0:0:2 
FF05:0:0:0:0:0:0:2 
上述多播地址标识范围1(接口本地)、范围2(链路本地)或范围5(站点本地)内的所有IPv6
路由器组。 
Solicited-Node地址:FF02:0:0:0:0:1:FFXX:XXXX 
Solicited-Node多播地址(被请求的节点多播地址)是作为节点的单播地址和任播地址的
函数,通告计算得出的。Solicited-Node多播地址按如下方法形成:取地址(单播或任播)的低
阶24位,把这些位挂到前缀FF02:0:0:0:0:1:FF00::/104上,产生从 
FF02:0:0:0:0:1:FF00:0000 
到 
FF02:0:0:0:0:1:FFFF:FFFF 
范围内的多播地址。 
例如,对应IPv6 地址4037::01:800:200E:8C6C 的Solicited-Node 多播地址是
FF02::1:FF0E:8C6C。仅高阶比特不同的IPv6 地址(例如,由于与不同聚合关联的多个高阶前
缀)将映射到相同的Solicited-Node地址,由此减少了节点必须加入的多播地址数目。 
要求节点,为所有单播地址和任播地址(它们已经通过手工或自动配置给节点的接口), 
计算并加入(在适当的接口上)关联的Solicited-Node多播地址。 
 
2-8     节点被要求的地址 
当识别自身时,主机被要求认得下述地址: 
  它的每个接口(被要求)的链路本地地址。 
  任何已经(手工或自动)配置给节点接口的附加单播地址和任播地址。 
  环回地址。 
  第2-7-1节定义的所有节点多播地址。 
  每个它的单播地址和任播地址的Solicited-Node多播地址。 
  节点所属的所有其他组的多播地址。 
当识别自身时,路由器被要求认得所有要求主机认得的地址,还要加上下述地址: 
  所有接口(在这些接口上,它被配置承担路由器角色)的Subnet-Router任播地址。 
  所有其他任播地址,路由器已经被用这些地址配置过。 
  第2-7-1节定义的所有路由器多播地址。 
 
第3章   安全考虑 
IPv6 寻址文件对互联网基础设施安全没有任何直接影响。IPv6 分组的认证在[AUTH]
中定义。 
 
第4章   IANA 考虑 
到本文件为止,“IPv4 兼容的IPv6 地址”已经过时。IANA 会继续在

http://www.iana.org/assignments/ipv6-address-space列出包含这些地址的地址块,作为“由IETF

保留”的地址块,并且不会为任何其他目的分配它。例如: 
0000::/8     由IETF保留的              [RFC3513]                [1] 
IANA添加了下述说明和到这个地址块的链接。 
[5]    0000::/96先前已经定义为“IPv4 兼容的IPv6 地址”前缀。这个定义到RFC4291
发布为止已经过时。 
于是,  IANA已经更新了IANA注册中的IPv6 地址架构参照。   
 
第5章  致谢 
The authors would like to acknowledge the contributions of Paul Francis, Scott Bradner, Jim 
Bound, Brian Carpenter, Matt Crawford, Deborah Estrin, Roger Fajman, Bob Fink, Peter Ford, 
Bob Gilligan, Dimitry Haskin, Tom Harsch, Christian Huitema, Tony Li, Greg Minshall, Thomas 
Narten, Erik Nordmark, Yakov Rekhter, Bill Simpson, Sue Thomson, Markku Savela, Larry 
Masinter, Jun-ichiro Itojun Hagino, Tatuya Jinmei, Suresh Krishnan, and Mahmood Ali. 
 
第6章      参考文献 
6-1  标准类参考文献 
[IPV6]     Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 
2460, December 1998. 
 
6-2  信息类参考文献 
[AUTH]    Kent, S. and R. Atkinson, "IP Authentication Header", RFC 2402, November 1998. 
[CIDR]       Fuller, V., Li, T., Yu, J., and K. Varadhan, "Classless Inter-Domain Routing (CIDR): 
an Address Assignment and Aggregation Strategy", RFC 1519, September 1993. 
[ETHER]   Crawford, M., "Transmission of IPv6 Packets over Ethernet Networks", RFC 2464, 
December 1998. 
[EUI64]    IEEE, "Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority", 
http://standards.ieee.org/regauth/oui/tutorials/EUI64.html, March 1997. 
[FDDI]      Crawford, M., "Transmission of IPv6 Packets over FDDI Networks", RFC 2467, 
December 1998. 
[GLOBAL]   Hinden, R., Deering, S., and E. Nordmark, "IPv6 Global Unicast Address Format", 
RFC 3587, August 2003. 
[PRIV]     Narten, T. and R. Draves, "Privacy Extensions for Stateless Address 
Autoconfiguration in IPv6", RFC 3041, January 2001. 
[RFC3513]   Hinden, R. and S. Deering, "Internet Protocol Version 6 (IPv6) Addressing 
Architecture", RFC 3513, April 2005. 
[RFC3306]   Haberman, B. and D. Thaler, "Unicast-Prefix-based IPv6 Multicast Addresses", 
RFC 3306, August 2002. 
[RFC3956]   Savola, P. and B. Haberman, "Embedding the Rendezvous Point (RP) Address in 
an IPv6 Multicast Address", RFC 3956, November 2004. 
[RFC4038]   Shin, M-K., Hong, Y-G., Hagino, J., Savola, P., and E. Castro, "Application 
Aspects of IPv6 Transition", RFC 4038, March 2005. 
[SLDEP]     Huitema, C. and B. Carpenter, "Deprecating Site Local Addresses", RFC 3879, 
September 2004. 
 
附录A:生成改进的EUI-64格式接口标识符 
根据具体链路或节点的特点,有一系列生成改进的EUI-64格式接口标识符的方法。本
附录描述其中的一些。 
1、采用IEEE EUI-64标识符的链路或节点 
转换IEEE  EUI-64标识符为接口标识符需要做的唯一改变是插入“u”(universal/local)
位。下例是全球唯一IEEE EUI-64标识符格式,参见图12。 
cccccc0gcccccccc
0
0
1
5
ccccccccmmmmmmmm mmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmm
1
6
3
1
3
2
4
7
4
8
6
3
 
图12   全球唯一IEEE EUI-64标识符格式 
 
图12中“c”是分配的公司ID 位,“0”是universal/local位的值,指出全球范围,“g”是
individual/group 位,“m”是选定的制造商扩展标识符位。IPv6 接口标识符格式如图13所
示。 
cccccc1gcccccccc
0
0
1
5
ccccccccmmmmmmmm mmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmm
1
6
3
1
3
2
4
7
4
8
6
3
 
图13      IPv6接口标识符格式 
 
唯一的改变是插入universal/local位的值。 
 
2、采用IEEE 802 48-bit MACs的链路或节点 
[EUI64]定义一种方法,根据IEEE  48-bit MAC标识符生成IEEE  EUI-64标识符。具体
做法是在48-bit MAC的中部(公司ID 和供应商ID 之间),插入两个字节,其16进制值分别
是0xFF和0xFE(参阅本附录最后的注释)。下例是全球范围48-bit IEEE MAC,参见图14。 
cccccc0gcccccccc
0
0
1
5
ccccccccmmmmmmmm mmmmmmmmmmmmmmmm
1
6
3
1
3
2
4
7
 
图14   全球范围48-bit IEEE MAC 
 
图14中“c”是分配的公司ID 位,“0”是universal/local位的值,指出全球范围,“g”是
individual/group 位,“m”是选定的制造商扩展标识符位。接口标识符格式如图15所示。 
cccccc1gcccccccc
0
0
1
5
cccccccc11111111 11111110mmmmmmmm mmmmmmmmmmmmmmmm
1
6
3
1
3
2
4
7
4
8
6
3
 
图15   接口标识符格式 
 
当可以得到IEEE 802 48-bit MAC地址时(在接口或节点上),基于MAC地址的可用性和唯一
性特性,实现中可以使用MAC地址生成接口标识符。 
 
3、带有其他种类标识符的链路 
有许多链路类型,它们使用不同于IEEE EUI-64或IEEE 802 48-bit MACs的链路层接口
标识符。例如LocalTalk和Arcnet。这时生成改进的EUI-64格式标识符的方法是取链路标
识符(例如,LocalTalk 8-bit节点标识符),并用0填充在链路标识符的左边。例如,16进制
值0x4F的LocalTalk 8-bit节点标识符可生成图16所示的接口标识符。 
0000000000000000
0
0
1
5
1
6
3
1
3
2
4
7
4
8
6
3
0000000000000000 0000000000000000 0000000001001111
 
图16     用LocalTalk 8-bit节点标识符生成的接口标识符 
 
注意,图16中universal/local比特设置为0,表示本地范围。 
 
4、没有标识符的链路 
有许多链路,它们没有任何类型的内置标识符,最常见的是串联链路和配置的隧道。对
于这样的链路,必须选择在子网前缀内为唯一的接口标识符。 
当链路上没有内置标识符可用时,优先采用的方法是使用来自另一个接口(或分配给该
节点自身的接口)的全球接口标识符。用此方法时,就不会有连接相同节点到相同子网前缀
的其他接口可以使用此相同的标识符。 
如果链路上没有全球接口标识符可用,实现中需要生成一个本地范围接口标识符。对此
的要求是在子网前缀内该本地范围接口标识符是唯一的。有许多方法可用于选择子网前缀唯
一接口标识符。包括: 
手工配置 
节点序列号 
其他节点特定标记 
生成子网前缀唯一接口标识符采用的方法,应保证在重新启动节点之后,或者当向节点
添加接口/从节点删除接口时,子网前缀唯一接口标识符不会改变。 
适当算法的选择与链路和实现有关。形成接口标识符的细节在适当的“相关链路的IPv6”
规范中定义。强烈建议将冲突检测算法作为实现中任何自动算法的一部分。 
注释:[EUI-64]实际上定义0xFF和0xFF作为,根据IEEE  MAC-48标识符生成IEEE 
EUI-64标识符的插入比特。当以IEEE EUI-48标识符开始时,使用0xFF和0xFE
值。在早期版本标准中,由于错误理解了IEEE MAC-48标识符和EUI-48标识符
之间的差异,使用了不正确的值。 
本文件特意继续使用0xFF和0xFE,因为它们可满足对IPv6 接口标识符的要求(即,它
们在链路上必须是唯一的),IEEE EUI-48标识符和IEEE MAC-48标识符在句法上是等同的,
这不会在实践中引起任何问题。 
 
附录B:对RFC 3513的改动 
本文件对RFC3513(“IP Version 6 Addressing Architecture”)有下述改动: 
  取消了对使用IPv6 任播地址的限制,因为现在使用任播地址已经很有经验了,存在的问
题不是IPv6 特有的,并且GROW工作组正在这一领域工作。 
  指出站点本地单播前缀已过时。改动包括: 
  在第2-4节从特定前缀列表中删除了站点本地。   
  将标题为“本地使用的IPv6 单播地址”的一节分成两节,“链路本地IPv6单播地址”和
“站点本地IPv6单播地址”。 
  对指出站点本地已经过时的一节做了说明。 
  对Robert  Elz呼吁已有IAB响应,在IAB 响应中提出了一些问题,对这些问题已经有解
决方案,本文件对此解决方案做了改动。改动内容如下: 
  增加了对第2-5节(节点对IPv6地址结构不做假设)的解释。 
  改变了第2-5-1节和附录A的叙述,认为改进的EUI-64格式接口标识符,如果“u”比特
设置为1,是全球范围。 
  增加了对第2-5-1节的解释,不要求IPv6节点证实:用改进的EUI-64格式生成的接口标
识符(“u”比特设置为1)是唯一的。 
  改变了第2-5-4节(“全球单播地址”)指出的参考,改为RFC3587。   
  删除了举例中NSAP地址的叙述。 
  解释了文本表示法中“x”可以是1到4个数字。 
  指出“IPv6兼容地址”已过时,因为在IPv6 变换机制中不使用它。 
  添加“R”标记和“P”标记到第2-7节的多播地址部分,并指出了定义它们的标准文件。 
  编辑上的改变。

抱歉!评论已关闭.