IPv6寻址体系结构(RFC2373: IP Version 6 Addressing Architecture)
最新推荐文章
图文推荐
『IPv6寻址体系结构(RFC2373: IP Version 6 Addressing Architecture)』如果文章有大量图片,显示会较慢,请等待图片下载完成
点击数: 更新时间:2006-5-12 21:10:18
本备忘录的状态 本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建 议以得到改进。请参考最新版的“Internet正式协议标准” (STD1)来获得本协议的标准化 程度和状态。本备忘录的发布不受任何限制。 版权声明 Copyright (C) The Internet Society (1998). All Rights Reserved. 摘要 本技术规范定义I P v 6的寻址体系结构。本文件包括I P v 6 寻址模型、I P v 6 地址的 文字表示、I P v 6 单播地址、任意点播地址和组播地址的定义以及I P v 6 节点需要的地址。
1.简介 本技术规范定义了I P v 6 的寻址体系结构。包括当前定义的I P v 6地址格式的详细描 述。 作者衷心感谢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 S i m p s o n 和Sue Thomson 所做的努力。 2. IPv6 寻址 I P v 6 地址为接口和接口组指定了1 2 8 位的标识符。有三种地址类型: · 单播。一个单接口有一个标识符。发送给一个单播地址的包传递到由该地址标识的接口 上。 · 任意点播。一般属于不同节点的一组接口有一个标识符。发送给一个任意点播地址的包 传送到该地址标识的、根据选路协议距离度量最近的一个接口上。 · 组播。一般属于不同节点的一组接口有一个标识符。发送给一个组播地址的包传递到该 地址所标识的所有接口上。 在I P v 6 中没有广播地址,它的功能正在被组播地址所代替。在本文中,地址内的字 段给 予一个规定的名字,例如“用户”。当名字后加上标识符一起使用(如“用户I D ”)时, 则用来表示名字字段的内容。当名字和前缀一起使用时(如“用户前缀”)则表示一直到包括 本字段在内的全部地址。 在I P v 6 中,任何全“0 ”和全“1 ”的字段都是合法值,除非特殊地排除在外的。 特别是前缀可以包含“0 ”值字段或以“0 ”为终结。 2.1 寻址模型 所有类型的I P v 6 地址都被分配到接口,而不是节点。一个I P v 6 单播地址属于单个 接口。因为每个接口属于单个节点,多个接口的节点,其单播地址中的任何一个可以用作该 节点的标识符。所有接口至少需要有一个链路本地单播地址(见2 . 8 节额外需要的地址)。 一个单接口可以指定任何类型的多个I P v 6 地址(单播、任意点播、组播)或范围。具有大于 链路范围的单播地址,对这样的接口是不需要的,也就是从非邻居或者到非邻居的这些接口, 不是任何I P v 6包的起源或目的地。这有时适用于点到点接口。对这样的寻址模型有一个 例外: 如果处理多个物理接口的实现呈现在I n t e r n e t 层好像一个接口的话,一个单播地址 或一组单播地址可以分配给多个物理接口。这对于在多个物理接口上负载共享很有用。 目前的I P v 6 延伸了I P v 4 模型,一个子集前缀与一条链路相关联。多个子集前缀可 以指定给同一链路。 2.2 地址的文本表示 用文本串表示的I P v 6 地址有三种规范形式: (1) 优先选用的形式为x : x : x : x : x : x : x : x :,其中x 是8 个1 6 位地址段的十六进 制值。 例如: FEDC : BA98 : 7654 : 3210 : FEDC : BA98 : 7654 : 3210 1080 : 0 : 0 : 0 : 8 : 800 : 200C : 417A 个别字段中前面的0 可以不写,但是每段必须至少有一位数字( ( 2 )中描述的情形除 外)。 (2) 在分配某种形式的I P v 6 地址时,会发生包含长串0 位的地址。为了简化包含0 位 地址的书写,指定了一个特殊的语法来压缩0 。使用“::”符号指示有多个0 值的16 位 组。“::”符号在一个地址中只能出现一次。该符号也能用来压缩地址中前部和尾部的0 。 用下面的例子来说明: 1 0 8 0 : 0 : 0 : 0 : 8 : 8 0 0 : 2 0 0 C : 4 1 7 A 单播地址 F F 0 1 : 0 : 0 : 0 : 0 : 0 : 0 : 1 0 1 组播地址 0 : 0 : 0 : 0 : 0 : 0 : 0 : 1 回返地址 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 未指定地址 可用下面的压缩格式表示: 1 0 8 0 : : 8 : 8 0 0 : 2 0 0 C : 4 1 7 A 单播地址 F F 0 1 : : 1 0 1 组播地址 : : 1 回返地址 : :未指定地址 (3) 当谈到I P v 4 和I P v 6 节点这样一个混合环境时,有时更适合于采用另一种表示 形式:x : x : x : x : x : x : d . d . d . d ,其中x 是地址中6 个高阶1 6 位段的十六进制值,d 是 地址中4 个低价8 位段的十进制值(标准I P v 4 表示)。举例说明: 0 : 0 : 0 : 0 : 0 : 0 : 1 3 . 1 . 6 8 . 3 0 : 0 : 0 : 0 : 0 : F F F F : 1 2 9 . 1 4 4 . 5 2 . 3 8 写成压缩形式为: : : 1 3 . 1 . 6 8 . 3 : : F F F F. 1 2 9 . 1 4 4 . 5 2 . 3 8 2.3 地址前缀的文本表示 I P v 6 地址前缀的表示方式和I P v 4 地址前缀在C I D R 中的表示方式很相似。一个 I P v 6 地址前缀可以表示为如下的形式: I P v 6 地址/前缀长度 其中,I P v 6 地址是2 . 2 节中表示的任何形式的I P v 6 地址。而前缀长度是组成前缀 的十进制值,说明地址最左边的连续的地址位的长度。 例如,6 0 位长的前缀1 2 A B 0 0 0 0 0 0 0 0 C D 3 (十六进制)可用下面的合法格式来表 示: 1 2 A B : 0 0 0 0 : 0 0 0 0 : C D 3 0 : 0 0 0 0 : 0 0 0 0 : 0 0 0 0 : 0 0 0 0 / 6 0 1 2 A B : : C D 3 0 : 0 : 0 : 0 : 0 / 6 0 1 2 A B : 0 : 0 : C D 3 0 : : / 6 0 但是,下面的表示方式是不合法的。 1 2 A B : 0 : 0 : C D 3 / 6 0 在任何一个1 6 位段的地址块中,可以省略前部的0 。但 不能省略尾部的0 。 1 2 A B : : C D 3 0 / 6 0 /左边的地址会展开成1 2 A B : 0 0 0 0 : 0 0 0 0 : 0 0 0 0 : 0 0 0 0 : 0 0 0 : 0 0 0 0 : C D 3 0 1 2 A B : : C D 3 / 6 0 /左边的地址会展开成1 2 A B : 0 0 0 0 : 0 0 0 0 : 0 0 0 0 : 0 0 0 0 : 0 0 0 : 0 0 0 0 : 0 C D 3 当书写节点地址和它的子网前缀两者时,可以组合成如下表示: 节点地址: 1 2 A B : 0 : 0 : C D 3 0 : 1 2 3 : 4 5 6 7 : 8 9 A B : C D E F 和它的子网号: 1 2 A B : 0 : 0 : C D 3 0 : : / 6 0 可以缩写成为: 1 2 A B : 0 : 0 : C D 3 0 : 1 2 3 : 4 5 6 7 : 8 9 A B : C D E F / 6 0 2.4 地址类型表示 一个I P v 6 地址的具体类型是由地址的前面几位来指定的。包含这前面几位的可变长 度字段称为格式前缀( F P )。这些前缀的初始分配如下: 分配 前缀(二进制) 占地址空间的百分率 ———————————————————————————— 保留 0000 0000 1 / 2 5 6 未分配 0000 000 11 / 2 5 6 为N S A P地址保留 0000 001 1 / 1 2 8 为I P X 地址保留 0000 010 1 / 1 2 8 未分配 0000 011 1 / 1 2 8 未分配 0 0 0 0 1 1 / 3 2 未分配 0 0 0 1 1 / 1 6 可集聚全球单播地址 0 0 1 1 / 8 未分配 0 1 0 1 / 8 未分配 0 11 1 / 8 未分配 1 0 0 1 / 8 未分配 1 0 1 1 / 8 未分配 11 0 1 / 8 未分配 111 0 1 / 1 6 未分配 1111 0 1 / 3 2 未分配 1111 10 1 / 6 4 未分配 1111 11 0 1 / 1 2 8 未分配 1111 1110 0 1 / 5 1 2 链路本地单播地址 1111 1110 10 1 / 1 0 2 4 站点本地单播地址 1111 1110 11 1 / 1 0 2 4 组播地址 1111 1111 1 / 2 5 6 注:(1) 未指定地址(见2 . 5 . 2 节)、回返地址(见2 . 5 . 3 节),和嵌入I P v 4 地址的I P v 6 地址(见2 . 5 . 4 节)的分配在格式前缀空间0 0 0 0 - 0 0 0 0 以外。 (2) 除了组播地址( 1111 1111 )外,格式前缀空间0 0 1 到111 ,在E U I - 6 4 格式中都 要求必须有64 位接口标识符。参见2 . 5 . 1 节中的定义。 这样的分配方案支持可集聚地址、本地用地址和组播地址的直接分配,并有保留给N S A P地址和I P X 地址的空间。其余的地址空间留给将来用。可用于已有使用的扩展(如附加 可集聚地址等)或者新的用途(如将定位符和标识符分开)。地址空间的1 5 %是初始分配的, 其余8 5 %的地址空间留作将来使用。 单播地址和组播地址是由地址的高阶字节值来区分的:值为F F ( 1111 1111 )标识一个 地址为组播地址,其他值则标识一个地址为单播地址。任意点播地址取自单播地址空间,和 单播地址在语法上是无法区分的。 2.5 单播地址 I P v 6 单播地址是用连续的位掩码集聚的地址,类似于C I D R 的I P v 4 地址。I P v 6 中的单播地址分配有多种形式,包括全部可集聚全球单播地址、N S A P 地址、I P X 分级 地址、站点本地地址、链路本地地址以及运行I P v 4 的主机地址。将来还可以定义另外的 地址类型。 I P v 6 节点对I P v 6 地址的内部结构可能知之甚多或知之甚少,这是由节点的作用决 定的(例如,主机还是路由器)。在最简单的情况下,节点把单播地址(包括它本身)看成是无 内部结构的、如下图所表示的1 2 8 位地址。 | 128 bits | +-----------------------------------------------------------------+ | 节点地址 | +-----------------------------------------------------------------+
一个稍完善但仍很简单的主机可能还知道它所连接的链路的子网前缀,在这种场合下, 不同地址可能有不同值。更完善的主机可能知道单播地址中其他分级边界。虽然一个非常简 单的路由器可能对I P v 6单播地址的内部结构一无所知,但为了运行选路协议,路由器对 一个或多个分级边界要有更为普遍的知识。知道边界随路由器不同而不同,是由路由器在选 路分级中所处的位置决定的。 2.5.1 接口标识符 在I P v 6 单播地址中接口标识符用来标识链路的接口。标识符在该链路上应是唯一的。 也可能在较宽范围内是唯一的。在许多情况下,一个接口标识符与该接口的链路层地址相同。 在一个单节点上,同一个接口标识符可以用在多个接口上。在一个单节点的多个接口上, 用同样的接口标识符不会影响接口标识符的全球唯一性,或由接口标识符创建的每个I P v 6 地址的全球唯一性。 在许多格式前缀中(见2 . 4 节),接口标识符要求6 4 位长,并构成IEEE EUI-64 格式。 基于E U I - 6 4 的接口标识符,当全球令牌可用时(如IEEE 48 位M A C ),具有全球范围的 意义。当全球令牌不可用时(如串行链路、隧道终点等),则只具有本地范围的意义。当由E U I - 6 4 形成接口标识符时,若u 位(IEEE EUI-64 术语中称全球/本地位)置1 ,则表示全球 范围;若u 位置0 ,则表示本地范围。一个E U I - 6 4 标识符的头三个字节的二进制表示 如下所示。
按I n t e r n e t 标准中的位序,其中u 是全球/本地位,g 是个体/团体位,c 是公司标 识符。“附录A 创建基于E U I - 6 4 接口标识符”为不同的基于E U I - 6 4 接口标识符的创 建提供了实例。 当形成接口标识符时,使用u 位的动机是当硬件令牌不可用,即在串行链路、隧道终 点等情况下,便于系统管理员人工配置本地范围标识符。另一种方法是用0 2 0 0 : 0 : 0 : 1 、 0 2 0 0 : 0 : 0 : 2等形式代替十分简单的: : 1 、: : 2 等形式。 在IEEE EUI-64 标识符中使用全球/本地位的目的是为了将来技术的发展能利用具有全 球范围的接口标识符所带来的好处。 形成接口标识符的细节定义在IP over技术规范中,诸如IP over Ethernet[ E T H E R ] 、I P over FDDI[ F D D I ]等。 2.5.2 未指定地址 地址0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 称为未指定地址。它不能分配给任何节点。意思是没有这 个地址。它的一个应用示例是初始化主机时,在主机未取得自己的地址以前,可在它发送的 任何I P v 6 包的源地址字段放上未指定地址。 未指定地址不能在I P v 6 包中用作目的地址,也不能用在I P v 6 选路头中。 2.5.3 回返地址 单播地址0 : 0 : 0 : 0 : 0 : 0 : 0 : 1 称为回返地址。节点用它来向自身发送I P v 6 包。它 不能分配给任何物理接口。可以设想它正在与一个虚拟接口相关联(如回返接口)。 发送到单节点外的I P v 6 包回返地址必须用作源地址。具有一个目的地址为回返地址 的包不应发送出单节点之外,I P v 6 路由器也不会转发这样的包。 2.5.4 嵌有IPv4 地址的IPv6 地址 I P v 6 过渡机制[ T R A N ] 包括一种技术,使主机和路由器能在I P v 4 选路基础设施 上动态地以隧道方法传送I P v 6 包。使用该技术的I P v 6 节点要指定特殊的I P v 6 单播 地址,它在低阶3 2 位上携带I P v 4 地址。这种地址类型称其为“与I P v 4 兼容的I P v 6 地址”,并具有下面的格式: | 80 位 | 16 | 32 位 | +--------------------------------------+--------------------------+ |0000..............................0000|0000| IPv4 地址 | +--------------------------------------+----+---------------------+
第二种类型的I P v 6 地址嵌有I P v 4 地址。该地址用来表示只支持I P v 4 ,而不支 持I P v 6 的节点的I P v 6 地址。这种地址类型称为“与I P v 4 映射的I P v 6 地址”,并具 有下面的格式: | 80 位 | 16 | 32 位 | +--------------------------------------+--------------------------+ |0000..............................0000|FFFF| IPv4 地址 | +--------------------------------------+----+---------------------+
2.5.5 NSAP 地址 N S A P 地址到I P v 6 地址的映射定义在[ N S A P ]中。对于已经规划或应用OSI NSAP 寻址计划,并希望应用I P v 6 或向I P v 6 过渡的网络实现者,该文件应该重新设计成I P v 6 寻址计划来满足他们的需要。另外还定义了一套机制,用来在I P v 6 网络中支持OSI NSAP 寻址。如果需要这种支持的话,则必须要有这样的机制。该文件还定义了O S I 地址 格式内I P v 6 地址的映射,这应该是必需的。 2.5.6 IPX 地址 I P X 地址到I P v 6 地址的映射表示如下: | 7 | 121位 | +-------+---------------------------------------------------------+ |0000010| 待定义 | +-------+---------------------------------------------------------+
本草案的定义、动机和使用正在研究中。 2.5.7 可集聚全球单播地址 全部可集聚全球单播地址定义在[ A G G R ]中。设计这样的地址格式为了既支持基于当 前供应商的集聚,又支持被称为交换局的新的集聚类型。其组合使高效的选路集聚可用于直 接连接到供应商和连接到交换局两者的站点上。站点可以选择连接到两种类型中的任何一种 集聚点。 I P v 6 可集聚全球单播地址格式如下所示: | 3| 13 | 8 | 24 | 16 | 64 位 | +--+-----+---+--------+--------+--------------------------------+ |FP| TLA |RES| NLA | SLA | 接口号 | | | ID | | ID | ID | | +--+-----+---+--------+--------+--------------------------------+
其中: 0 0 1 ( F P )用于可集聚全球单播地址的格式前缀( 3 位); TLA ID 为顶级集聚标识符;R E S 保留将来用; NLA ID 为下一级集聚标识符;SLA ID 为站点级集聚标识符; I N T E R FA C EI D 为接口标识符。 在[ A G G R ]中,还规定了内容、字段长度和分配规则。 2.5.8 本地用IPv6 单播地址 规定了链路本地和站点本地两种类型的本地使用单播地址。链路本地地址用在单链路 上,而站点本地地址用在单站点上。链路本地地址格式表示如下: | 10 位 | 54 位 | 64 位 | +----------+-------------------------+----------------------------+ |1111111010| 0 | 接口号 | +----------+-------------------------+----------------------------+
站点本地地址的设计目的是为了用于无需全球前缀的站点内部寻址。 路由器不应转发站点外具有站点本地源或目的地址的任何包。 2.6 任意点播地址 I P v 6 任意点播地址是分配给一般属于不同节点的多个接口。根据这个特性,发送给 任意点播地址的包,总是发送到具有该地址并按照选路协议测得距离为最近的接口。 任意点播地址从单播地址空间分配而来,可用任何一种规定的单播地址格式。这样,任 意点播地址和单播地址在语法上是无法区别的。当一个单播地址分配给多个接口时,如果把 它转为任意点播地址,那么被分配该地址的节点,必须显式地配置,以便知道这是一个任意 点播地址。 对于任何已分配的单播地址,有一个最长的地址前缀P 用于标识拓扑地区。在该地区 中,所有接口均属于该任意点播地址。在由P 标识的区域内,任意点播组的每个成员,被 告知在选路系统中作为一个独立实体(通常称之为“主机路由”)。在P 标识的区域以外,任 意点播地址可以集合在前缀P 的选路通告中。 在最坏情况下,一个任意点播组的前缀P 可以是0 前缀,那组成员可能没有拓扑位置。 在这种情况下,任意点播地址在整个I n t e r n e t 中,必须被告知作为一个分离的选路实体, 这就为可以支持多少这样的全球任意点播组,带来严格的规模限制。因此,期望支持全球任 意点播组似乎是不可能的或者说是非常受限制的。 任意点播地址的用途之一是标识一组路由器,该组路由器是属于提供I n t e r n e t 服务 的一个组织的。这样的地址在I P v 6 选路头中可用作直接地址,造成包的传递通过一个特 定的集聚或集聚系列。其他可能的用途是标识连到一个特定子网的一组路由器,或者标识提 供入口到一个特定选路域的一组路由器。 I n t e r n e t 任意点播地址在广泛传播及随意使用方面经验不多,然而已知使用它们所 带来的复杂性和麻烦却很普遍[ A N Y C S T ] 。在获得更多的经验,并对一些问题有一致的 解决方案之前,I P v 6 任意点播地址的下列限制始终存在。