IPv6地址结构
- 格式:doc
- 大小:92.22 KB
- 文档页数:12
实用标准
文案大全 IPv6地址结构
RFC 3513
1.前言
本文描述了ipv6的地址结构,ipv6 地址的文本表示,IPv6的单播地址、任播地址,多播地址以及IPv6结点所必须的地址的定义。
IPv6的不同的地址的基本格式(单播,任播,以及多播)。
2.IPv6选址
IPv6地址是对接口或接口集合的128-bit的标识符。有三种类型的地址:
单播(Unicast):针对一个接口的标识符。一个发向单播地址的数据包被送往该地址所确定的接口。
任播(Anycast):接口的一个集合的标识符(代表性的属于不同结点)。一个发向任播地址的数据包被发送到为该地址所标识的一集接口之一(即,按照路由协议的测量距离的“最近的”接口)。
多播(Multcast):接口的一个集合的标识符。一个发向多播地址的数据包被发往所有以该地址做标识的接口。
在IPv6中,没有广播地址,广播地址的功能被多播地址的能力所取代。
本文中,给地址字段一个种名,如“子网(subnet)”。当一个做标识符用的“ID”跟在种名后面一起使用(如“subset ID”),则表示种名字段的内容。当它和一个“prefix”的术语一起使用时(如“subset prefix”),它指所有的从左一直到并包含本字段的所有地址。
在IPv6中,除非明确声明排除,则所有全0或全1的字段值是合法的。特定的,前缀可能包含,或以全0字段值结束。
2.1地址模型
所有类型的IPv6地址分配给接口,而不是分配给结点。一个IPv6单播地址与单个接口相关。由于每个接口只属于一个结点,故任何一个结点的单播地址可用来做为结点的标识。
所有接口必须至少有一个单播link-local地址(见2.8结点必需的地址)。一个接口也可能有多个任意类型的或任意范围的IPv6地址(单播,任播和多播)。不做为来自或发送到非邻居的IPv6包的源或目的的接口不需要用超出链路范围的单播地址。这对于点到点的连接的接口有时是非常方便的。这个地址模型有一个例外:
在执行中,如果将多个物理接口视为一个接口,当它出现在网络层时,一个单播地址或一个单播地址集可能被分配到多个物理接口上。这有利于在多个物理接口上进行负载分担。 实用标准
文案大全 当前,IPv6沿用IPv4模型中的子网前缀关联一条链路。多个子网前缀可分配到同一条链路上。
2.2地址的文本表示
有三种惯用方式用文本字符串表示IPv6地址:
1. 首选方式x: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,但是每个字段至少有一个数值。
2. 由于分配某些风格的IPv6地址的方法不同,地址中包含一长串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:1 loopback地址
0:0:0:0:0:0:0:0 未指明地址
可表示如下:
1080::8:800:200C:417A 一个单播地址
FF01::101 一个多播地址
::1 loopback地址
:: 未指明地址
3. 当处理IPv4和IPv6结点都存在的混合环境时,使用一种可替代的形式即:x:x:x:x:x:x:d.d.d.d有时要更方便些。
X 表示处于6个地址高位的16-bit的16进制数;d表示处于地址低4位的8-bit的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的地址前缀表达式与IPv4的地址前缀CIDR记法【CIDR】相仿。IPv6的地址前缀记法:
Ipv6-address/prefix-length
其中:
IPv6-address 是2.2所列出的任何一种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
2.4地址类型的标识
IPv6的地址类型的是由地址字段的高位比特来标识。如下所示:
地址类型 二进制前缀 IPv6记法 章节
未指明的
环回地址
多播地址
链路本地单播地址 00…0(128bits)
00…1(128bits)
11111111
1111111010 ::/128
::1/128
FF00::/8
FE80::/10 2.5.2
2.5.3
2.7
2.5.6 实用标准
文案大全 站点本地单播地址
全球单播地址 1111111011
(其余所有地址) FEC0::/10 2.5.6
任播地址从单播地址空间(任何范围的)获得,并且不在语法上与单播地址进行区分。
全球单播地址的通用格式在2.5.4节中有述。全球单播地址的某些特殊用途的子类型,包含了一个内嵌的IPv4地址(用于IPv4-IPv6互操作)在2.5.5节中有述。
未来的规范可能会为其他用途而重新定义一个或多个“子域”的全球单播空间,但是除非直到发生,实践中必须将所有的不以上表所列前缀为开头的地址视为全球单播地址。
2.5单播地址
IPv6单播地址可以以前缀的任意bit长度做聚合,这一点与IPv4的无类域间路由(CIDR)相似。
有几种类型的IPv6单播地址,详细地,有全球单播(global unicast),站点本地单播(site-local unicast) 和链路本地单播(link-local unicast)。也有一些全球单播特殊之用的子类型,如内嵌IPv4的IPv6地址,或者是编了码的NSAP(网络服务接入点)的IPv6地址。另外的地址类型或子类型在将来会有所定义。
IPv6结点可能会对IPv6地址的内部结构知道的很多或很少,这要看结点所充当的角色(例如,路由器还是主机)。最小的情况,结点认为单播地址(包括结点自身的)没有内部结构:
一个稍稍复杂的主机(但仍是相当简单)可能又会知道它所连接链路的子网前缀,此时,不同的地址可能有不同的n值:
尽管一个非常简单的路由器可能不清楚IPv6单播地址的内部结构,但是路由器通常更熟知一级或多级路由协议的操作的层次边界。了解的边界因路由器而异,主要是取决于路由器所处的路由层次的位置。
2.5.1接口标识符
IPv6单播地址的接口标识被用于标识一个链路上的接口。要求在子网前缀中唯一。建议不要将同一个标识符分配给同一链路上的不同接口。它们也可能在结点地址 128 bits
子网 前缀 128-n bits
接口 ID n bits 实用标准
文案大全 更广范围内唯一。在某些情况下,接口标识符源于接口链路层地址。同一个接口标识符可以用于同一个结点的不同接口上,只要这些接口与不同的子网相连。
注意到接口标识符的唯一性不依赖IPv6地址的唯一性。例如:以一个非全球范围的接口标识符可以生成一个全球单播地址,而一个站点本地地址可由一个全球范围的接口标识符生成。
对于所有的单播地址,除了那些以二进制数000开始的地址,要求接口ID必须是64bit长并以改进EUI-64的格式创建。
基于接口标识符的改进EUI-64格式当源于一个全球令牌(如:IEEE 802
48-bit MAC或IEEE EUI-64 标识符[EUI64])时,可能有全球范围;或是当获得不到(例如,串行链路,隧道末端等等)全球令牌时,或是全球令牌不合需要(如,私用[PRIV]临时令牌)时,有本地范围。
改进EUI-64格式接口标识符是当从IEEE EUI-64标识符形成接口标识符时通过颠倒“u”比特(在IEEE EUI-64术语中称 universal/local 比特)形成的。在做为结果的改进EUI-64格式中,“u”比特设值为1表示全球范围,设置成0表示本地范围。IEEE EUI-64标识符最前面的3个字节的二进制表示如下:
以因特网标准比特顺序书写,“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比特的使用允许未来技术的发展能够以全球范围利用接口标识符。
形成接口标识符的细节在适当的“IPv6 over ”规范中有定义。如“IPv6 over Ethernet”[ETHER],“IPv6 over FDDI”[FDDI]。
2.5.2未指明地址
地址:0:0:0:0:0:0:0:0被称作未指明地址。这一地址不能分派给任何结点。它指示一个地址的缺乏。一个使用的例子就是一个初始化主机不知道自身的地址之前,发送IPv6数据包中包含的源地址字段值。