1 / 12
文档名称:

IPv6地址结构.pdf

格式:pdf   大小:307KB   页数:12页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

IPv6地址结构.pdf

上传人:小sjj 2022/12/6 文件大小:307 KB

下载得到文件列表

IPv6地址结构.pdf

文档介绍

文档介绍:该【IPv6地址结构 】是由【小sjj】上传分享,文档一共【12】页,该文档可以免费在线阅读,需要了解更多关于【IPv6地址结构 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:.
RFC3513
IPv6地址结构
RFC3513

本文描述了ipv6的地址结构,ipv6地址的文本表示,IPv6的单播地址、
任播地址,多播地址以及IPv6结点所必须的地址的定义。
IPv6的不同的地址的基本格式(单播,任播,以及多播)。

IPv6地址是对接口或接口集合的128-bit的标识符。有三种类型的地址:
单播(Unicast):针对一个接口的标识符。一个发向单播地址的数据包被送往该地址所确定
的接口。
任播(Anycast):接口的一个集合的标识符(代表性的属于不同结点)。一个发向任播地址
的数据包被发送到为该地址所标识的一集接口之一(即,按照路由协议的测量距离的“最近
的”接口)。
多播(Multcast):接口的一个集合的标识符。一个发向多播地址的数据包被发往所有以该
地址做标识的接口。
在IPv6中,没有广播地址,广播地址的功能被多播地址的能力所取代。
本文中,给地址字段一个种名,如“子网(subnet)”。当一个做标识符用的“ID”跟在种名
后面一起使用(如“subsetID”),则表示种名字段的内容。当它和一个“prefix”的术语
一起使用时(如“subsetprefix”),它指所有的从左一直到并包含本字段的所有地址。
在IPv6中,除非明确声明排除,则所有全0或全1的字段值是合法的。特定的,前缀可能
包含,或以全0字段值结束。

所有类型的IPv6地址分配给接口,而不是分配给结点。一个IPv6单播地址与单个接
口相关。由于每个接口只属于一个结点,故任何一个结点的单播地址可用来做为结点的标识。
所有接口必须至少有一个单播link-local地址()。一个接口
也可能有多个任意类型的或任意范围的IPv6地址(单播,任播和多播)。不做为来自或发送
到非邻居的IPv6包的源或目的的接口不需要用超出链路范围的单播地址。这对于点到点的
连接的接口有时是非常方便的。这个地址模型有一个例外:
在执行中,如果将多个物理接口视为一个接口,当它出现在网络层时,一个单播地址
或一个单播地址集可能被分配到多个物理接口上。这有利于在多个物理接口上进行负
载分担。
-1–
:.
RFC3513
当前,IPv6沿用IPv4模型中的子网前缀关联一条链路。多个子网前缀可分配到同一
条链路上。

有三种惯用方式用文本字符串表示IPv6地址:
:x:x:x:x:x:x:x,x是16进制数组成的一块,用以表示一个16bit
的二进制数。8个块组成一个地址。
例如:FEDC:BA98:7654:3210:FEDC:BA98:7654:3210
1080:0:0:0:8:800:200C:417A
注意:在每个单独的字段,没有必要写前面的0,但是每个字段至少有一
个数值。
,地址中包含一长串0是很平常
的。为了易于书写包含多个0bit的地址,可用一种简单语法来压缩这些0。
用“::”来表示一组或多组0。“::”只可在地址中出现一次。“::”也可
用来压缩地址中打头和末尾的0。
例如:
1080:0:0:0:8:800:200C:417A一个单播地址
FF01:0:0:0:0:0:0:101一个多播地址
0:0:0:0:0:0:0:1loopback地址
0:0:0:0:0:0:0:0未指明地址
可表示如下:
1080::8:800:200C:417A一个单播地址
FF01::101一个多播地址
::1loopback地址
::未指明地址
,使用一种可替代的形式即:
x:x:x:x:x:x:。
X表示处于6个地址高位的16-bit的16进制数;d表示处于地址低4位
的8-bit的10进制数(标准IPv4表示式)。例如:
0:0:0:0:0:0:
0:0:0:0:0:FFFF:
-2–
:.
RFC3513
或者为压缩表达式:
::
::FFFF:

IPv6的地址前缀表达式与IPv4的地址前缀CIDR记法【CIDR】相仿。IPv6
的地址前缀记法:
Ipv6-address/prefix-length
其中:
IPv6-。
Prefix-length一个十进制数值,指出地址包含前缀的最左连续bit数。
例如:下面是的60-bit的12AB00000000CD3(16进制)前缀的合法表示:
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-bit块中打头的0,但是末
尾的0不可省
12AB::CD30:/60/左侧的地址展开后为:
12AB:0000:0000:0000:0000:0000:0000:CD30
12AB::CD3/60/左侧的地址展开后为:
12AB:0000:0000:0000:0000:0000:0000:0CD3
当同时写结点的地址和它的地址前缀(如结点的子网前缀)时,可以组合
的写为:
结点地址:12AB:0:0:CD30:123:4567:89AB:CDEF
它的子网号:12AB:0:0:CD30::/60
简写为:12AB:0:0:CD30:123:4567:89AB:CDEF/60

IPv6的地址类型的是由地址字段的高位比特来标识。如下所示:
地址类型二进制前缀IPv6记法章节
未指明的00…0(128bits)::/
环回地址00…1(128bits)::1/
多播地址11111111FF00::/
链路本地单播地址1111111010FE80::/
-3–
:.
RFC3513
站点本地单播地址1111111011FEC0::/
全球单播地址(其余所有地址)
任播地址从单播地址空间(任何范围的)获得,并且不在语法上与单播地
址进行区分。
。全球单播地址的某些特殊用
途的子类型,包含了一个内嵌的IPv4地址(用于IPv4-IPv6互操作)
节中有述。
未来的规范可能会为其他用途而重新定义一个或多个“子域”的全球单播
空间,但是除非直到发生,实践中必须将所有的不以上表所列前缀为开头的地址
视为全球单播地址。

IPv6单播地址可以以前缀的任意bit长度做聚合,这一点与IPv4的无类
域间路由(CIDR)相似。
有几种类型的IPv6单播地址,详细地,有全球单播(globalunicast),站
点本地单播(site-localunicast)和链路本地单播(link-localunicast)。也
有一些全球单播特殊之用的子类型,如内嵌IPv4的IPv6地址,或者是编了码的
NSAP(网络服务接入点)的IPv6地址。另外的地址类型或子类型在将来会有所
定义。
IPv6结点可能会对IPv6地址的内部结构知道的很多或很少,这要看结点所
充当的角色(例如,路由器还是主机)。最小的情况,结点认为单播地址(包括
结点自身的)没有内部结构:
128bits
结点地址
一个稍稍复杂的主机(但仍是相当简单)可能又会知道它所连接链路的子网
前缀,此时,不同的地址可能有不同的n值:
nbits
128-nbits
子网前缀接口ID
尽管一个非常简单的路由器可能不清楚IPv6单播地址的内部结构,但是路
由器通常更熟知一级或多级路由协议的操作的层次边界。了解的边界因路由器而
异,主要是取决于路由器所处的路由层次的位置。

IPv6单播地址的接口标识被用于标识一个链路上的接口。要求在子网前缀
中唯一。建议不要将同一个标识符分配给同一链路上的不同接口。它们也可能在
-4–
:.
RFC3513
更广范围内唯一。在某些情况下,接口标识符源于接口链路层地址。同一个接口
标识符可以用于同一个结点的不同接口上,只要这些接口与不同的子网相连。
注意到接口标识符的唯一性不依赖IPv6地址的唯一性。例如:以一个非全
球范围的接口标识符可以生成一个全球单播地址,而一个站点本地地址可由一个
全球范围的接口标识符生成。
对于所有的单播地址,除了那些以二进制数000开始的地址,要求接口ID
必须是64bit长并以改进EUI-64的格式创建。
基于接口标识符的改进EUI-64格式当源于一个全球令牌(如:IEEE802
48-bitMAC或IEEEEUI-64标识符[EUI64])时,可能有全球范围;或是当获得
不到(例如,串行链路,隧道末端等等)全球令牌时,或是全球令牌不合需要(如,
私用[PRIV]临时令牌)时,有本地范围。
改进EUI-64格式接口标识符是当从IEEEEUI-64标识符形成接口标识符时
通过颠倒“u”比特(在IEEEEUI-64术语中称universal/local比特)形成的。
在做为结果的改进EUI-64格式中,“u”比特设值为1表示全球范围,设置成0
表示本地范围。IEEEEUI-64标识符最前面的3个字节的二进制表示如下:
000111
078563
ccccccugcccccccccccccccc
以因特网标准比特顺序书写,“u”表示universal/local位,“g”表示个人/团
体位,“c”是表示company-id的比特位。附录A:“生成改进EUT-64格式的接
口标识符”提供了例子,说明如何生成基于接口标识符的改进EUI-64格式。
将“u”比特翻转的动机是更易于系统管理员在硬件令牌不可用的情况下手
工配置非全球标识符。可以想象用在在像串口链路,隧道末端等这样的情形。该
替代方式的格式是0200:0:0:1,0200:0:0:2,等,并不是更简单的1,2等。
在改进EUI-64格式标识符中的universal/local比特的使用允许未来技
术的发展能够以全球范围利用接口标识符。
形成接口标识符的细节在适当的“IPv6over<link>”规范中有定义。如
“IPv6overEthernet”[ETHER],“IPv6overFDDI”[FDDI]。

地址:0:0:0:0:0:0:0:0被称作未指明地址。这一地址不能分派给任何结
点。它指示一个地址的缺乏。一个使用的例子就是一个初始化主机不知道自身的
地址之前,发送IPv6数据包中包含的源地址字段值。
未指明地址不能用于IPv6数据包及IPv6路由包头的目的地址字段。一个
源地址为未指明地址的IPv6数据包不允许被IPv6路由器转发。

单播地址0:0:0:0:0:0:0:1被称作环回地址。用于结点可能向自己发送
-5–
:.
RFC3513
IPv6报文。它也许从不分配给一个物理接口。被认为具有一个本地链路范围的
地址,也可被认为是一个不到任何地方的虚链路上的虚接口的链路本地单播地
址。(代表性的称为“环回接口”)。
环回地址不允许用于从单一结点发出去的IPv6数据报的源地址字段。一个
目的地为环回地址的IPv6数据包不允许发送到本结点之外,也绝不能被IPv6
路由器转发。丢弃从一个接口上收到的目的地为环回地址的报文。

IPv6全球单播地址的通用格式如下:
nbitsmbits128-n-mbits
全球路由前缀子网ID接口ID
其中:
全球路由前缀(Globalroutingprefix)分配给一个站点(子网或链路的
一个集群)的(典型地,为分级结构的)值;子网ID(subsetID)是站点内部
的一个链路的标识符;接口ID(InterfaceID)。
除了以000二进制数开头的全球单播地址,都有一个64-bit的接口ID字
段(也就是说n+m=64),。以二进制000开头的全球单
播地址没有这样对接口ID字段的尺寸和结构做限制。

的IPv6地址,和包含编码NSAP地址的IPv6地址,后者在[NSAP]有所详述。一
个以非000二进制数开头的全球单播地址(因此,有一个64-bit的接口ID字段)
的例子可在[AGGR]中找到。

IPv6过渡机制[TRAN]包括了一种技术,使得主机和路由器能自动地将IPv6
数据报文封装,并穿越IPv4的基础网络。使用这一技术的IPv6结点分配到了一
个特殊的IPv6单播地址,该地址在低32比特位承载了全球IPv4地址。这个地
址类型称为“ipv4兼容IPv6地址”,并有格式:
80bits16bits32bits
0000………………………………00000000IPv4地址
注意,用在“IPv4兼容IPv6地址”中的IPv4地址必须是全球唯一的IPv4
单播地址。
-6–
:.
RFC3513
第二种类型的IPv6地址含有一个嵌入的IPv4地址,这一地址类型以IPv6
地址代表IPv4结点地址,称为“IPv4映射的IPv6地址”,并有格式:
80bits16bits32bits
0000………………………………0000FFFFIPv4地址

已定义了两种本地使用的单播地址:链路本地(link-local)和站点本地
(site-local)地址。链路本地用在单一链路上,站点本地用在单一站点中。链
路本地地址有如下格式:
10bits54bits64bits
**********接口ID
链路本地地址被设计用来在单一链路上的寻址,用在诸如自动地址配置,
邻居发现,或是没有路由器在场的情况下。
路由器不允许转发任何以链路本地地址为源地址的数据包,也不允许转发
目的地为到其他链路的链路本地地址的数据包。
站点本地地址有如下格式:
10bits54bits64bits
1111111011子网ID接口ID
站点本地地址被设计用来当不需要用全球地址前缀时,在一个站点内部寻
址。虽然子网ID长度可达54bit,但是希望与全球地址相连的站点在站点本地
前缀和全球前缀上的子网ID值相同。
路由器不允许转发源地址为站点本地的数据包,也不允许将目的地为站点
本地的数据包转发出本地站点。
-7–
:.
RFC3513

任播地址是分配给多个(大于1个)接口(典型情况下,属于不同结点)
的一个地址,发送到任播地址的具有任播属性的数据包被路由到具有该地址的按
照路由协议测量距离“最近的”接口。
任播地址是从单播地址空间分配的,使用任何已定义了的单播地址格式。
因此,任播地址从语法上与单播地址无法进行区分。当一个单播地址被配置到多
于一个的接口上,就转变成一个任播地址,分配了该地址的结点必须做明确地配
置,以知道该地址是一个任播地址。
对于任何一个已分配的任播地址,有一个最长前缀P,指出分配了该任播地
址的其他接口所属的拓扑区域。在P所标识的区域,任播地址必须做为路由系统
维护的个别的表项(即通常所说的“主机路由”);在P未标识的区域,可以按P
前缀聚合任播地址成为路由表项。
注意最差的情况就是一个任播地址集合的P前缀可能是空前缀,即集合中
的成员可能没有拓扑位置。这种情况下,任播地址必须做为单独的路由表项在整
个Internet网络中进行维护,这样又引发了一个严重的比例限制,即可以支持
多少个这样的“全球”任播集合?因此,不希望对这种全球任播地址做支持或严
格限制这种支持。
任播地址是打算用来识别属于某个组织的路由器集合,该组织提供因特网
服务。这些地址可用于IPv6路由包头的中间地址,使一个包通过某个特定的服
务供应商或一系列服务供应商进行传递。
其他可能的用法是用于识别与一个特殊子网相连的路由器的集合,或是识
别提供一个表项的路由器集合,该表项通往某个特殊路由域。
广泛并自由的使用任播地址的经验非常少,当以完全一般性的方式[ANYCST]
使用任播地址时,存在一些已知的复杂性和危险性。直到获得更多的经验和指明
的解决方案,对IPv6任播地址实施以下的限制:
任播地址不允许用于IPv6数据包的源地址字段;
任播地址不允许分派给IPv6主机,即只能分派给IPv6路由器。
注:主机路由是一种针对特定IPv6地址的路由。主机路由允许以IPv6地址为基础进行路由操作。对于主机路由,
路由前缀是一个具有128位前缀的特定IPv6地址。

子网路由器(Subset-Router)任播地址是预定义的。格式如下:
nbits128-nbits
子网前缀(subsetprefix)000000000000
-8–
:.
RFC3513
任播地址中的子网前缀,标识了一个特殊链路的前缀。链路上接口标识符为
0的接口的任播地址和单播地址在符完全相同。
发向子网路由器任播地址的数据包将被送到该子网中的一台路由器。所有在
某一子网上有接口存在的路由器都必须支持该子网路由器任播地址。

一个IPv6多播地址是一组接口(典型的属于不同结点)的标识符。一个接口
可属于任意数目的多播组。多播地址的格式如下:
844112bits
11111111flgsscop组ID(groupID)
地址中开头的二进制11111111指出该地址做为一个多播地址。
flgs是一个4个标志位的集合:
+-+-+-+-+
|0|0|0|T|
+-+-+-+-+
高三位标志位做为保留位,且必须初始化为0;
T=0表示一个永久指派(“知名(well-known)”)组播地址,由IANA
(互联网地址分派机构)指派的。
T=1表示一个非永久指派(“临时(transient)”)组播地址。
scop是一个多播范围值,用于限制多播组的范围。值是:
0:保留(reserved)
1:接口本地范围(interface-localscope)
2:链路本地范围(link-localscope)
3:保留(reserved)
4:管理本地范围(admi-localscope)
5:站点本地范围(site-localscope)
6:(未指派的)(unassigned)
7:(未指派的)(unassigned)
8:组织机构本地范围(organization-localscope)
9:(未指派的)(unassigned)
A:(未指派的)(unassigned)
B:(未指派的)(unassigned)
D:(未指派的)(unassigned)
E:全球范围(globalscope)
F:(未指派的)(unassigned)
-9–
:.
RFC3513
接口本地范围的跨度为一个结点的单一接口,只对多播的环回传送
有用。
链路本地和站点本地范围的跨度与相应单播范围的拓扑区域相同。
管理本地范围是必须管理配置的最小区域,即不能从其他物理连通
性或其他非多播关联的配置中自动得到的。
组织机构本地范围意欲跨越属于单个组织的多个站点。
标识为“(未指派的)”的范围为管理者使用,用以定义额外的多播
区域。
组ID标识了多播组,在给定的范围内,永久的或临时的。
永久指派的多播地址的“含义”是指独立于范围值。例如,如果“NTP服务
器组”被分配了一个永久的多播地址,其中组ID为101(Hex),那么:
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服务器。
非永久分配的多播地址只有在给定的范围下才有意义。例如,在站点中一
个标识为非永久的,站点本地的多播地址FF05:0:0:0:0:0:0:101,与另外的一
站点中使用相同的组播地址的组没有任何关系,也和在不同范围的使用的相同组
ID的非永久组无关系,也和有着相同组ID的永久组没有关系。
多播地址不允许用做IPv6数据包源地址,也不允许在任何路由报头中出现。
路由器转发多播数据包,不允许超出目的多播地址中的scop字段指示的范
围。
不允许结点产生一个scop字段的保留值为0的组播数据包;若是收到这样
的数据包,则丢弃。结点也不应该产生这样的数据包,该数据包发向scop字段
含有保留值为F的多播地址;如果发送出去或接收到这样的包,必须视它与去往
全球(scop值为E)组播地址的数据包等同。

下面的知名多播地址是预定义的。本节为明确的范围值定义了相应的组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
-10–
:.
RFC3513
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
以上的多播地址标识了全部IPv6结点的组,其中范围值1(接口本地)
或2(链路本地)。
所有路由器地址:
FF01:0:0:0:0:0:0:2
FF02:0:0:0:0:0:0:2
FF05:0:0:0:0:0:0:2
以上多播地址标识了全部IPv6路由器的组,其中范围值1(接口本地),
2(链路本地),或5(站点本地)。
请求结点地址(Solicited-nodeaddress)
FF02:0:0:0:0:1:FFXX:XXXX
请求结点多播地址做为一个结点的单播和任播地址的一个功能计算的。请
求结点地址按如下方式形成:以一个(单播或任播)地址的低24位,与前缀
FF02:0:0:0:1:FF/104相拼接,结果产生一个
处于
FF02:0:0:0:0:1:FF00:0000

FF02:0:0:0:0:1:FFFF:FFFF
范围的一个多播地址。
例如:对应于IPv6地址为4037::01:800:200E:8C6C的请求结点的多播地
址为FF02::1:FF0E:8C6C。由于多个高位前缀与不同聚合相关,只是高位不同
的IPv6地址,将映射到相同的请求节点地址,从而减少了一个结点必须加入
的多播地址数目。
结点必须为每个已分配的单播和任播地址,计算并加入(在正确的接口上)
相关的请求结点多播地址。

主机必须识别以下标识自己的地址:
o每个接口上的链路本地地址
o给该结点接口上(自动或手工)配置的任何额外的单播和任播地址。
o环回地址。
-11–
:.
RFC3513

o每个单播或任播地址的请求结点多播地址。
o结点所属的所有其他组的多播地址
路由器必须识别所有主机必须识别的地址,再加上下面的地址来标识自
己:
o所有配置为路由器的接口上的子网路由器任播地址
o路由器上被配置的全部其他的任播地址

-12–