IPv6寻址体系结构
本备忘录的状态
本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建
议以得到改进。请参考最新版的“Internet正式协议标准”(STD1)来获得本协议的标准化
程度和状态。本备忘录的发布不受任何限制。
版权声明
Copyright(C)TheInternetSociety(1998).AllRightsReserved.
摘要
本技术规范定义IPv6的寻址体系结构。本文件包括IPv6寻址模型、IPv6地址的
文字表示、IPv6单播地址、任意点播地址和组播地址的定义以及IPv6节点需要的地址。
目录
摘要 1
1.简介 2
2.IPv6寻址 2
2.1寻址模型 3
2.2地址的文本表示 3
2.3地址前缀的文本表示 4
2.4地址类型表示 5
2.5单播地址 5
2.5.1接口标识符 6
2.5.2未指定地址 7
2.5.3回返地址 7
2.5.4嵌有IPv4地址的IPv6地址 7
2.5.5NSAP地址 7
2.5.6IPX地址 8
2.5.7可集聚全球单播地址 8
2.5.8本地用IPv6单播地址 8
2.6任意点播地址 9
2.6.1要求的任意点播地址 9
2.7组播地址 10
2.7.1预定义的组播地址 11
2.7.2新IPv6组播地址的分配 12
2.8节点要求的地址 12
3.安全性考虑 13
附录A创建EUI-64接口标识符 13
A.1具有EUI-64标识符的链路或节点 13
A.2具有IEEE80248位MAC地址的链路或节点 13
A.3具有非全球标识符的链路 14
A.4无标识符的链路 14
附录B文本表示的ABNF描述 15
附录C对RFC1884的修改 15
参考资料 16
作者联系方法 17
版权说明 17
1.简介
本技术规范定义了IPv6的寻址体系结构。包括当前定义的IPv6地址格式的详细描
述。
作者衷心感谢PaulFrancis,ScottBradner,JimBound,BrianCarpenter,Matt
Crawford,DeborahEstrin,RogerFajman,BobFink,PeterFord,BobGilligan,DimitryHaskin,
TomHarsch,ChristianHuitema,TonyLi,GregMinshall,ThomasNarten,ErikNordmark,Yakov
Rekhter,BillSimpson和SueThomson所做的努力。
2.IPv6寻址
IPv6地址为接口和接口组指定了128位的标识符。有三种地址类型:
·单播。一个单接口有一个标识符。发送给一个单播地址的包传递到由该地址标识的接口
上。
·任意点播。一般属于不同节点的一组接口有一个标识符。发送给一个任意点播地址的包
传送到该地址标识的、根据选路协议距离度量最近的一个接口上。
·组播。一般属于不同节点的一组接口有一个标识符。发送给一个组播地址的包传递到该
地址所标识的所有接口上。
在IPv6中没有广播地址,它的功能正在被组播地址所代替。在本文中,地址内的字
段给
予一个规定的名字,例如“用户”。当名字后加上标识符一起使用(如“用户ID”)时,
则用来表示名字字段的内容。当名字和前缀一起使用时(如“用户前缀”)则表示一直到包括
本字段在内的全部地址。
在IPv6中,任何全“0”和全“1”的字段都是合法值,除非特殊地排除在外的。
特别是前缀可以包含“0”值字段或以“0”为终结。
2.1寻址模型
所有类型的IPv6地址都被分配到接口,而不是节点。一个IPv6单播地址属于单个
接口。因为每个接口属于单个节点,多个接口的节点,其单播地址中的任何一个可以用作该
节点的标识符。所有接口至少需要有一个链路本地单播地址(见2.8节额外需要的地址)。
一个单接口可以指定任何类型的多个IPv6地址(单播、任意点播、组播)或范围。具有大于
链路范围的单播地址,对这样的接口是不需要的,也就是从非邻居或者到非邻居的这些接口,
不是任何IPv6包的起源或目的地。这有时适用于点到点接口。对这样的寻址模型有一个
例外:
如果处理多个物理接口的实现呈现在Internet层好像一个接口的话,一个单播地址
或一组单播地址可以分配给多个物理接口。这对于在多个物理接口上负载共享很有用。
目前的IPv6延伸了IPv4模型,一个子集前缀与一条链路相关联。多个子集前缀可
以指定给同一链路。
2.2地址的文本表示
用文本串表示的IPv6地址有三种规范形式:
(1)优先选用的形式为x:x:x:x:x:x:x:x:,其中x是8个16位地址段的十六进
制值。
例如:
FEDC:BA98:7654:3210:FEDC:BA98:7654:3210
1080:0:0:0:8:800:200C:417A
个别字段中前面的0可以不写,但是每段必须至少有一位数字((2)中描述的情形除
外)。
(2)在分配某种形式的IPv6地址时,会发生包含长串0位的地址。为了简化包含0位
地址的书写,指定了一个特殊的语法来压缩0。使用“::”符号指示有多个0值的16位
组。“::”符号在一个地址中只能出现一次。该符号也能用来压缩地址中前部和尾部的0。
用下面的例子来说明:
1080:0:0:0:8:800:200C:417A单播地址
FF01:0:0:0:0:0:0:101组播地址
0:0:0:0:0:0:0:1回返地址
0:0:0:0:0:0:0:0未指定地址
可用下面的压缩格式表示:
1080::8:800:200C:417A单播地址
FF01::101组播地址
::1回返地址
::未指定地址
(3)当谈到IPv4和IPv6节点这样一个混合环境时,有时更适合于采用另一种表示
形式:x:x:x:x:x:x:d.d.d.d,其中x是地址中6个高阶16位段的十六进制值,d是
地址中4个低价8位段的十进制值(标准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地址前缀的表示方式和IPv4地址前缀在CIDR中的表示方式很相似。一个
IPv6地址前缀可以表示为如下的形式:
IPv6地址/前缀长度
其中,IPv6地址是2.2节中表示的任何形式的IPv6地址。而前缀长度是组成前缀
的十进制值,说明地址最左边的连续的地址位的长度。
例如,60位长的前缀12AB00000000CD3(十六进制)可用下面的合法格式来表
示:
12AB:0000:0000:CD30:0000:0000:0000:0000/60
12AB::CD30:0:0:0:0/60
12AB:0:0:CD30::/60
但是,下面的表示方式是不合法的。
12AB:0:0:CD3/60在任何一个16位段的地址块中,可以省略前部的0。但
不能省略尾部的0。
12AB::CD30/60/左边的地址会展开成12AB:0000:0000:0000:00
00:000:0000:CD30
12AB::CD3/60/左边的地址会展开成12AB:0000:0000:0000:000
0:000:0000:0CD3
当书写节点地址和它的子网前缀两者时,可以组合成如下表示:
节点地址:
12AB:0:0:CD30:123:4567:89AB:CDEF
和它的子网号:
12AB:0:0:CD30::/60
可以缩写成为:
12AB:0:0:CD30:123:4567:89AB:CDEF/60
2.4地址类型表示
一个IPv6地址的具体类型是由地址的前面几位来指定的。包含这前面几位的可变长
度字段称为格式前缀(FP)。这些前缀的初始分配如下:
分配前缀(二进制)占地址空间的百分率
————————————————————————————
保留000000001/256
未分配000000011/256
为NSAP地址保留00000011/128
为IPX地址保留00000101/128
未分配00000111/128
未分配000011/32
未分配00011/16
可集聚全球单播地址0011/8
未分配0101/8
未分配0111/8
未分配1001/8
未分配1011/8
未分配1101/8
未分配11101/16
未分配111101/32
未分配1111101/64
未分配11111101/128
未分配1111111001/512
链路本地单播地址11111110101/1024
站点本地单播地址11111110111/1024
组播地址111111111/256
注:(1)未指定地址(见2.5.2节)、回返地址(见2.5.3节),和嵌入IPv4地址的IP
v6地址(见2.5.4节)的分配在格式前缀空间0000-0000以外。
(2)除了组播地址(11111111)外,格式前缀空间001到111,在EUI-64格式中都
要求必须有64位接口标识符。参见2.5.1节中的定义。
这样的分配方案支持可集聚地址、本地用地址和组播地址的直接分配,并有保留给NS
AP地址和IPX地址的空间。其余的地址空间留给将来用。可用于已有使用的扩展(如附加
可集聚地址等)或者新的用途(如将定位符和标识符分开)。地址空间的15%是初始分配的,
其余85%的地址空间留作将来使用。
单播地址和组播地址是由地址的高阶字节值来区分的:值为FF(11111111)标识一个
地址为组播地址,其他值则标识一个地址为单播地址。任意点播地址取自单播地址空间,和
单播地址在语法上是无法区分的。
2.5单播地址
IPv6单播地址是用连续的位掩码集聚的地址,类似于CIDR的IPv4地址。IPv6
中的单播地址分配有多种形式,包括全部可集聚全球单播地址、NSAP地址、IPX分级
地址、站点本地地址、链路本地地址以及运行IPv4的主机地址。将来还可以定义另外的
地址类型。
IPv6节点对IPv6地址的内部结构可能知之甚多或知之甚少,这是由节点的作用决
定的(例如,主机还是路由器)。在最简单的情况下,节点把单播地址(包括它本身)看成是无
内部结构的、如下图所表示的128位地址。
|128bits|
+-----------------------------------------------------------------+
|节点地址|
+-----------------------------------------------------------------+
一个稍完善但仍很简单的主机可能还知道它所连接的链路的子网前缀,在这种场合下,
不同地址可能有不同值。更完善的主机可能知道单播地址中其他分级边界。虽然一个非常简
单的路由器可能对IPv6单播地址的内部结构一无所知,但为了运行选路协议,路由器对
一个或多个分级边界要有更为普遍的知识。知道边界随路由器不同而不同,是由路由器在选
路分级中所处的位置决定的。
2.5.1接口标识符
在IPv6单播地址中接口标识符用来标识链路的接口。标识符在该链路上应是唯一的。
也可能在较宽范围内是唯一的。在许多情况下,一个接口标识符与该接口的链路层地址相同。
在一个单节点上,同一个接口标识符可以用在多个接口上。在一个单节点的多个接口上,
用同样的接口标识符不会影响接口标识符的全球唯一性,或由接口标识符创建的每个IPv6
地址的全球唯一性。
在许多格式前缀中(见2.4节),接口标识符要求64位长,并构成IEEEEUI-64格式。
基于EUI-64的接口标识符,当全球令牌可用时(如IEEE48位MAC),具有全球范围的
意义。当全球令牌不可用时(如串行链路、隧道终点等),则只具有本地范围的意义。当由EU
I-64形成接口标识符时,若u位(IEEEEUI-64术语中称全球/本地位)置1,则表示全球
范围;若u位置0,则表示本地范围。一个EUI-64标识符的头三个字节的二进制表示
如下所示。
000112
|078563|
+----+----+----+----+----+----+
|cccc|ccug|cccc|cccc|cccc|cccc|
+----+----+----+----+----+----+
按Internet标准中的位序,其中u是全球/本地位,g是个体/团体位,c是公司标
识符。“附录A创建基于EUI-64接口标识符”为不同的基于EUI-64接口标识符的创
建提供了实例。
当形成接口标识符时,使用u位的动机是当硬件令牌不可用,即在串行链路、隧道终
点等情况下,便于系统管理员人工配置本地范围标识符。另一种方法是用0200:0:0:1、
0200:0:0:2等形式代替十分简单的::1、::2等形式。
在IEEEEUI-64标识符中使用全球/本地位的目的是为了将来技术的发展能利用具有全
球范围的接口标识符所带来的好处。
形成接口标识符的细节定义在IPover<link>技术规范中,诸如IPoverEthernet[ETHE
R]、IPoverFDDI[FDDI]等。
2.5.2未指定地址
地址0:0:0:0:0:0:0:0称为未指定地址。它不能分配给任何节点。意思是没有这
个地址。它的一个应用示例是初始化主机时,在主机未取得自己的地址以前,可在它发送的
任何IPv6包的源地址字段放上未指定地址。
未指定地址不能在IPv6包中用作目的地址,也不能用在IPv6选路头中。
2.5.3回返地址
单播地址0:0:0:0:0:0:0:1称为回返地址。节点用它来向自身发送IPv6包。它
不能分配给任何物理接口。可以设想它正在与一个虚拟接口相关联(如回返接口)。
发送到单节点外的IPv6包回返地址必须用作源地址。具有一个目的地址为回返地址
的包不应发送出单节点之外,IPv6路由器也不会转发这样的包。
2.5.4嵌有IPv4地址的IPv6地址
IPv6过渡机制[TRAN]包括一种技术,使主机和路由器能在IPv4选路基础设施
上动态地以隧道方法传送IPv6包。使用该技术的IPv6节点要指定特殊的IPv6单播
地址,它在低阶32位上携带IPv4地址。这种地址类型称其为“与IPv4兼容的IPv6
地址”,并具有下面的格式:
|80位|16|32位|
+--------------------------------------+--------------------------+
|0000..............................0000|0000|IPv4地址|
+--------------------------------------+----+---------------------+
第二种类型的IPv6地址嵌有IPv4地址。该地址用来表示只支持IPv4,而不支
持IPv6的节点的IPv6地址。这种地址类型称为“与IPv4映射的IPv6地址”,并具
有下面的格式:
|80位|16|32位|
+--------------------------------------+--------------------------+
|0000..............................0000|FFFF|IPv4地址|
+--------------------------------------+----+---------------------+
2.5.5NSAP地址
NSAP地址到IPv6地址的映射定义在[NSAP]中。对于已经规划或应用OSINSAP
寻址计划,并希望应用IPv6或向IPv6过渡的网络实现者,该文件应该重新设计成IPv
6寻址计划来满足他们的需要。另外还定义了一套机制,用来在IPv6网络中支持OSI
NSAP寻址。如果需要这种支持的话,则必须要有这样的机制。该文件还定义了OSI地址
格式内IPv6地址的映射,这应该是必需的。
2.5.6IPX地址
IPX地址到IPv6地址的映射表示如下:
|7|121位|
+-------+---------------------------------------------------------+
|0000010|待定义|
+-------+---------------------------------------------------------+
本草案的定义、动机和使用正在研究中。
2.5.7可集聚全球单播地址
全部可集聚全球单播地址定义在[AGGR]中。设计这样的地址格式为了既支持基于当
前供应商的集聚,又支持被称为交换局的新的集聚类型。其组合使高效的选路集聚可用于直
接连接到供应商和连接到交换局两者的站点上。站点可以选择连接到两种类型中的任何一种
集聚点。
IPv6可集聚全球单播地址格式如下所示:
|3|13|8|24|16|64位|
+--+-----+---+--------+--------+--------------------------------+
|FP|TLA|RES|NLA|SLA|接口号|
||ID||ID|ID||
+--+-----+---+--------+--------+--------------------------------+
其中:
001(FP)用于可集聚全球单播地址的格式前缀(3位);
TLAID为顶级集聚标识符;RES保留将来用;
NLAID为下一级集聚标识符;SLAID为站点级集聚标识符;
INTERFACEID为接口标识符。
在[AGGR]中,还规定了内容、字段长度和分配规则。
2.5.8本地用IPv6单播地址
规定了链路本地和站点本地两种类型的本地使用单播地址。链路本地地址用在单链路
上,而站点本地地址用在单站点上。链路本地地址格式表示如下:
|10位|54位|64位|
+----------+-------------------------+----------------------------+
|1111111010|0|接口号|
+----------+-------------------------+----------------------------+
设计链路本地地址的目的是为了用于诸如自动地址配置、邻居发现或无路由器存在的单
链路的寻址。
路由器不能将带有链路本地源地址或目的地址的任何包转发到其他链路上去。
站点本地地址具有下面的地址格式:
|10位|38位|16位|64位|
+----------+-------------+-----------+----------------------------+
|1111111011|0|子网号|接口号|
+----------+-------------+-----------+----------------------------+
站点本地地址的设计目的是为了用于无需全球前缀的站点内部寻址。
路由器不应转发站点外具有站点本地源或目的地址的任何包。
2.6任意点播地址
IPv6任意点播地址是分配给一般属于不同节点的多个接口。根据这个特性,发送给
任意点播地址的包,总是发送到具有该地址并按照选路协议测得距离为最近的接口。
任意点播地址从单播地址空间分配而来,可用任何一种规定的单播地址格式。这样,任
意点播地址和单播地址在语法上是无法区别的。当一个单播地址分配给多个接口时,如果把
它转为任意点播地址,那么被分配该地址的节点,必须显式地配置,以便知道这是一个任意
点播地址。
对于任何已分配的单播地址,有一个最长的地址前缀P用于标识拓扑地区。在该地区
中,所有接口均属于该任意点播地址。在由P标识的区域内,任意点播组的每个成员,被
告知在选路系统中作为一个独立实体(通常称之为“主机路由”)。在P标识的区域以外,任
意点播地址可以集合在前缀P的选路通告中。
在最坏情况下,一个任意点播组的前缀P可以是0前缀,那组成员可能没有拓扑位置。
在这种情况下,任意点播地址在整个Internet中,必须被告知作为一个分离的选路实体,
这就为可以支持多少这样的全球任意点播组,带来严格的规模限制。因此,期望支持全球任
意点播组似乎是不可能的或者说是非常受限制的。
任意点播地址的用途之一是标识一组路由器,该组路由器是属于提供Internet服务
的一个组织的。这样的地址在IPv6选路头中可用作直接地址,造成包的传递通过一个特
定的集聚或集聚系列。其他可能的用途是标识连到一个特定子网的一组路由器,或者标识提
供入口到一个特定选路域的一组路由器。
Internet任意点播地址在广泛传播及随意使用方面经验不多,然而已知使用它们所
带来的复杂性和麻烦却很普遍[ANYCST]。在获得更多的经验,并对一些问题有一致的
解决方案之前,IPv6任意点播地址的下列限制始终存在。
·任意点播地址不能用作IPv6包的源地址。
·任意点播地址不能指定给IPv6主机,只能指定给IPv6路由器。
2.6.1要求的任意点播地址
预定的子网路由器任意点播地址,其格式如下:
|n位|128-n位|
+------------------------------------------------+----------------+
|子网前缀|00000000000000|
+------------------------------------------------+----------------+
在任意点播地址中,子网前缀用来标识一条特定链路。对于接口标识符置0的链路上
的一个接口,其任意点播地址和单播地址语法上是相同的。
发送给子网路由器任意点播地址的包会传递到子网上的一个路由器。与子网有接口的所
有路由器需要支持子网路由器任意点播地址。子网路由器任意点播地址企图用在某些应用场
合,即一个节点需要和远程子网上一组路由器中的一个进行通信的场合。例如当移动主机要
和一个位于本子网的移动代理通信的场合。
2.7组播地址
IPv6组播地址是一组节点的标识符。一个节点可以归属于任意数量的组播组。组播
地址具有下面的格式:
|8|4|4|112位|
+-------+----+----+---------------------------------------------+
|11111111|flgs|scop|组号|
+--------+----+----+---------------------------------------------+
地址开始的11111111标识该地址为组播地址。标志由4位组成:
+-+-+-+-+
|0|0|0|T|
+-+-+-+-+
前面3位为保留位,初始设置为0。
T=0指示一个永久分配的(熟知的)组播地址,由全球Internet编号机构进行分配。
T=1指示一个非永久分配(临时)的组播地址。
4位的组播范围值用来限制组播组的范围。该字段的可能值如下表:
0保留8组织本地范围
1节点本地范围9(未分配)
2链路本地范围A(未分配)
3(未分配)B(未分配)
4(未分配)C(未分配)
5站点本地范围D(未分配)
6(未分配)E全球范围
7(未分配)F保留
组标识符字段标识给定范围内的组播组,可以是永久的,也可以是临时的。
永久分配的组播地址,意思是独立于范围值。例如,如果为NTP服务器组指定一个
组标识符为101(十六进制)的永久组播地址,于是:
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指Internet上的所有NTP服务器。
非永久分配的组播地址仅在给定范围内才有意义。例如,在某个站点由非永久的站点本
地组播地址FF15:0:0:0:0:0:0:101标识的组与一个不同站点中使用同一个组标识
符的组没有关系,与不同范围内使用同一个组标识符分配非永久地址的组也没有关系,与具
有同一个组标识符的永久组也没有关系。
组播地址在IPv6包中不能用作源地址或出现在任何选路头中。
2.7.1预定义的组播地址
下面为熟知的预定义的组播地址。
保留的组播地址:
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路由器的组。
请求节点地址:FF02:0:0:0:0:1:FFXX:XXXX
上面的组播地址是从节点的单播和任意点播地址计算而得的。取单播或任意点播地址的
低24位,并将其附加到前缀FF02:0:0:0:0:1:FF00::/104上形成一个请求节点
组播地址,其范围在FF02:0:0:0:0:1:FF00:0000至FF02:0:0:0:0:1:FFF
F:FFFF之间。
例如,对应IPv6地址4037::01:800:200E:8C6C的请求节点组播地址是
FF02::1:FF0E:8C6C。IPv6地址差别仅在高位,譬如,由于与不同的集聚相关联的多个高
位前缀,将映射到同一个请求节点地址,因此减少了一个节点必须加入的组播地址数。
对每个指定的单播和任意点播地址,一个节点需要计算并加入相关的请求节点组播地
址。
2.7.2新IPv6组播地址的分配
目前将IPv6组播地址映射到IEEE802MAC地址的方法是用IPv6组播地址的低阶
32位来创建MAC地址。值得提出的是令牌网有不同的处理方法,定义见[TOKEN]。3
2位组标识符将生成唯一的MAC地址。由于新IPv6组播地址应当分配,所以组标识符总
是在低阶32位上,如下图所示:
|8|4|4|80bits|32bits|
+-------+----+----+---------------------------+-----------------+
|11111111|flgs|scop|reservedmustbezero|groupID|
+--------+----+----+---------------------------+-----------------+
尽管将永久IPv6组播组数限制在232,但在将来不可能成为极限。如果将来必须要
超过这个限度,组播仍然能工作,只是处理稍慢而已。
其他IPv6组播地址的定义和注册由IANA[MASGN]完成。
2.8节点要求的地址
主机需要识别下面的地址以辨识它自身:
·它的每个接口的链路本地地址。
·分配的单播地址。
·回返地址。
·所有节点的组播地址。
·每一个分配的单播和任意点播地址的请求节点组播地址。
·主机所属的所有其他组的组播地址。
主机需要识别的所有地址,要求路由器都能识别,路由器还要能识别用来识别其本身的
下列地址:
·配置路由器工作的接口所用的子网路由器任意点播地址。
·完成路由器配置要用的所有其他任意点播地址。
·所有路由器组播地址。
·路由器归属于所有其他组的组播地址。
在实现中应该预定义的地址前缀包括:
·未指定地址。
·回返地址。
·组播前缀(FF)。
·本地用前缀(链路本地和站点本地)。
·预定义的组播地址。
·IPv4兼容的前缀。
实现时除非专门配置(如任意点播地址),应假设所有其他地址均为单播地址。
3.安全性考虑
IPv6寻址文件对Internet基础设施的安全性没有任何直接影响。IPv6包身份验
证的定义见[AUTH]。
附录A创建EUI-64接口标识符
根据特定链路或节点的特性,有不少方法可以创建EUI-64接口标识符。本附录介绍
了其中的某些方法。
A.1具有EUI-64标识符的链路或节点
将一个EUI-64标识符转换成一个接口标识符,只需改变u位的值。例如,一个全
球唯一的EUI-64标识符具有下面的形式:
|01|13|34|46|
|05|61|27|83|
+----------------+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+
其中,c位是分配给公司的标识符;0是全球/本地位的值,此处指本地范围;m是生
产商选择的扩展标识符。IPv6接口标识符的形式如下:
|01|13|34|46|
|05|61|27|83|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+
唯一改变的是转变全球/本地位的值。
A.2具有IEEE80248位MAC地址的链路或节点
[EUI64]规定了从一个IEEE48位MAC标识符创建一个EUI-64标识符的方法。
就是将以十六进制表示的两个字节OxFF和OxFE插入到48位MAC地址中间(公司
标识符与厂商配给的标识符之间)。下面的例子是一个具有全球范围的48位MAC地址。
|01|13|34|
|05|61|27|
+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|
+-----------------------+----------------------+-----------------------+
其中,c位是分配给公司的标识符;0是指示全球范围的全球/本地位值;g是个体/团
体位;m是生产厂选择的扩展标识符。这样,接口标识符便具有下面的形式:
|01|13|34|46|
|05|61|27|83|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|cccccccc11111111|11111110mmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+
当接口或节点上IEEE89248位MAC地址可用时,由于它们具备的可用性和唯一性
特性,就可以用它来实现创建接口标识符。
A.3具有非全球标识符的链路
有许多链路类型,当多个接入时,例如包括LocalTalk和Arcnet,就无全球唯一
的链路标识符。创建EUI-64格式化标识符的方法是取链路标识符(如LocalTalk8位
节点标识符),并在其前面填充0。下面就是一个具有十六进制值Ox4F的LocalTalk8
位节点标识符生成的接口标识符的例子。
|01|13|34|46|
|05|61|27|83|
+----------------+----------------+----------------+----------------+
|0000000000000000|0000000000000000|0000000000000000|0000000001001111|
+----------------+----------------+----------------+----------------+
注意其中的全球/本位置为0,以指示本地范围。
A.4无标识符的链路
有一些链路无任何类型内置标识符。最普遍的就是一些串行链路和配置的隧道。为链路
选择的接口标识符必须是唯一的。
当一条链路上无内置标识符可用时,最好是用从另一个接口的,或分配给节点本身的,
一个全球接口标识符。使用这种方法就不会有连接同一链路的同一节点的其他的接口会用同
样的标识符。
如果在链路上无全球接口标识符可使用时,就需要创建一个本地范围接口标识符。唯一
的要求就是在该链路上是唯一的。有许多可能的方法用来选择一条链路唯一的接口标识符,
包括如下方法:
·人工配置。
·生成随机数。
·节点串行号(或其他节点特殊令牌)。
链路唯一接口标识符的生成方法应该使一个节点启动后或者接口从节点中删除或加入
时都不应该有变化。
合适算法的选择,取决于链路和实现。形成接口标识符的细节规定在相应的IPv6over<
link>技术规范中。建议在任何自动算法中要实现冲突检测算法。
附录B文本表示的ABNF描述
本附录定义了ABNF[ABNF]中的IPv6地址及前缀的文本表示,仅供参考用。
IPv6address=hexpart[":"IPv4address]
IPv4address=1*3DIGIT"."1*3DIGIT"."1*3DIGIT"."1*3DIGIT
IPv6prefix=hexpart"/"1*2DIGIT
hexpart=hexseq|hexseq"::"[hexseq]|"::"[hexseq]
hexseq=hex4*(":"hex4)
hex4=1*4HEXDIG
附录C对RFC1884的修改
对RFC1884(IPv6寻址体系结构)作了如下的修改:
1:增加了一个描述文本表示的ABNF的附录。
2:澄清了链路唯一标识符在自举或其他接口重新配置后不会改变。
3:阐述了评议后的地址模型。
4:改变了集聚格式术语,以便和集聚草案一致。
5:增加了在同一节点上,接口标识符可用于多个接口的文字说明。
6:增加了定义新组播地址的规则。
7:增加了创建基于EUI-64接口标识符的描述过程
8:增加了定义IPv5前缀的标记方法。
9:用一个长的前缀改变请求节点组播的定义。
10:增加了站点范围所有路由器组播地址。
11:规定可集聚全球单播地址用001格式前缀。
12:将010(基于供应商的单播)和100(保留为地理上的)格式前缀改成未指定的格式
前缀。
13:增加了对单播地址的接口标识符的定义部分;对单播地址增加了接口标识符定义的
选择。要求在格式前缀范围内使用EUI-64以及在EUI-64中置全球/本地范围位的规
则。
14:更新了NSAP文本部分以反映RFC10的工作。
15:删去协议特定的IPv6组播地址(如DHCP),并参考了IANA中的定义。
16:删去了“单播地址例子”部分,变成OBE。
17:增加了新参考文献,并更新了参考文献。
18:对少量文字说明进行了澄清和改进。
参考资料
[ABNF]Crocker,D.,andP.Overell,"AugmentedBNFfor
SyntaxSpecifications:ABNF",RFC2234,November1997.
[AGGR]Hinden,R.,O'Dell,M.,andS.Deering,"An
AggregatableGlobalUnicastAddressFormat",RFC2374,July
1998.
[AUTH]Atkinson,R.,"IPAuthenticationHeader",RFC1826,August
1995.
[ANYCST]Partridge,C.,Mendez,T.,andW.Milliken,"Host
AnycastingService",RFC1546,November1993.
[CIDR]Fuller,V.,Li,T.,Yu,J.,andK.Varadhan,"Classless
Inter-DomainRouting(CIDR):AnAddressAssignmentand
AggregationStrategy",RFC1519,September1993.
[ETHER]Crawford,M.,"TransmissionofIPv6PacektsoverEthernet
Networks",WorkinProgress.
[EUI64]IEEE,"Guidelinesfor64-bitGlobalIdentifier(EUI-64)
RegistrationAuthority",
http://standards.ieee.org/db/oui/tutorials/EUI64.html,
March1997.
[FDDI]Crawford,M.,"TransmissionofIPv6PacketsoverFDDI
Networks",WorkinProgress.
[IPV6]Deering,S.,andR.Hinden,Editors,"InternetProtocol,
Version6(IPv6)Specification",RFC1883,December1995.
[MASGN]Hinden,R.,andS.Deering,"IPv6MulticastAddress
Assignments",RFC2375,July1998.
[NSAP]Bound,J.,Carpenter,B.,Harrington,D.,Houldsworth,J.,
andA.Lloyd,"OSINSAPsandIPv6",RFC1888,August1996.
[RFC2119]Bradner,S.,"KeywordsforuseinRFCstoIndicate
RequirementLevels",BCP14,RFC2119,March1997.
[TOKEN]Thomas,S.,"TransmissionofIPv6PacketsoverTokenRing
Networks",WorkinProgress.
[TRAN]Gilligan,R.,andE.Nordmark,"TransitionMechanismsfor
IPv6HostsandRouters",RFC1993,April1996.
作者联系方法
RobertM.Hinden
Nokia
232JavaDrive
Sunnyvale,CA94089
USA
Phone:+1408990-2004
Fax:+1408743-5677
EMail:hinden@iprg.nokia.com
StephenE.Deering
CiscoSystems,Inc.
170WestTasmanDrive
SanJose,CA95134-1706
USA
Phone:+1408527-8213
Fax:+1408527-8254
EMail:deering@cisco.com
版权说明
Copyright(C)TheInternetSociety(1998).AllRightsReserved.
Thisdocumentandtranslationsofitmaybecopiedandfurnishedto
others,andderivativeworksthatcommentonorotherwiseexplainit
orassistinitsimplementationmaybeprepared,copied,published
anddistributed,inwholeorinpart,withoutrestrictionofany
kind,providedthattheabovecopyrightnoticeandthisparagraphare
includedonallsuchcopiesandderivativeworks.However,this
documentitselfmaynotbemodifiedinanyway,suchasbyremoving
thecopyrightnoticeorreferencestotheInternetSocietyorother
Internetorganizations,exceptasneededforthepurposeof
developingInternetstandardsinwhichcasetheproceduresfor
copyrightsdefinedintheInternetStandardsprocessmustbe
followed,orasrequiredtotranslateitintolanguagesotherthan
English.
Thelimitedpermissionsgrantedaboveareperpetualandwillnotbe
revokedbytheInternetSocietyoritssuccessorsorassigns.
Thisdocumentandtheinformationcontainedhereinisprovidedonan
"ASIS"basisandTHEINTERNETSOCIETYANDTHEINTERNETENGINEERING
TASKFORCEDISCLAIMSALLWARRANTIES,EXPRESSORIMPLIED,INCLUDING
BUTNOTLIMITEDTOANYWARRANTYTHATTHEUSEOFTHEINFORMATION
HEREINWILLNOTINFRINGEANYRIGHTSORANYIMPLIEDWARRANTIESOF
MERCHANTABILITYORFITNESSFORAPARTICULARPURPOSE.