IPv6最显著的特征就在于它的巨量的地址空间,我们知道IPv6采用128位的地址长度,是IPv4的四倍。
在IPv4时最多就可有2^32或4,294,967,296(40多亿)个可能的IP地址,但由于对这些IP进行分类,实际上可利用的IP地址就少许多。
而当IPv6地址长度为128位时,则将有2^128或340,282,366,920,938,463,463,374,607,431,768,211,456个可能的IP地址,这个天文数字足以使全球每一个人均可分配1.8×1019个IPv6地址。
IPv6地址是独立接口的标识符,所有的IPv6地址都被分配到接口,而非节点。
由于每个接口都属于某个特定节点,因此节点的任意一个接口地址都可用来标识一个节点。
在IPv6地址中也作了相应分类,但它与IPv4的分类方法不一样,它主要是通过其地址前缀来划分其传输类型的,共分为3种:
在具体介绍这些地址类型之前,我还是先来介绍决定这些IP地址类型的“地址前缀”(Format Prefix ,FP)。顾名思义,地址前缀就是在地址的最前面那段数字。当然也属于128位地址空间范围之中,通过不同的地址前缀来代表不同的地址类型。下表1就是在IPv6标准中规定的地址前缀所代表的意义。
注意:在IPv4中除了IP地址外,还有子网掩码之说,但在IPv6中已不再使用,IPv6仅支持前缀长度表示法。
地址前缀 | 前缀分配状况及意义 | 地址前缀 | 前缀分配状况及意义 |
001 | 可聚集全球单播传送地址 | 0000 001 | 预留给NSAP分配 |
010 | 基于运营商地址 | 0000 010 | 未分配 |
011 | 未分配 | 0000 011 | 未分配 |
100 | 基于地理位置的地址 | 1111 110 | 未分配 |
101 | 未分配 | 1111 1111 | 多播传送地址 |
110 | 未分配 | 0000 0000 | 保留 |
0001 | 未分配 | 0000 0001 | 未分配 |
1110 | 未分配 | 1111 1110 0 | 未分配 |
0000 1 | 未分配 | 1111 1110 10 | 本地链路地址 |
1111 0 | 未分配 | 1111 1110 11 | 本地地区单播传送地址 |
1111 10 | 未分配 |
·NSAP(Network Service Access Point,NSAP)地址:称为网络服务访问点地址,这也是用于保留的地址,它的地址前缀FP=0000 001。
·IPX(FP=0000 010):这也是用于保留下来的IP地址,它的地址前缀为FP=0000 010。
·站点本地地址:这类格式前缀FP=1111 1110 11。相当于10.0.0.0/8、172.16.0.0/12和 192.168.0.0/16等IPv4私用地址空间。例如企业专用Intranet,如果没有连接到IPv6 Internet上,那么在企业站点内部可以使用站点本地地址,其有效域限于一个站点内部,站点本地地址不可被其他站点访问,同时含此类地址的包也不会被路由器转发到站外。一个站点通常是位于同一地理位置的机构网络或子网。与链路本地地址不同的是,站点本地地址不是自动配置的,而必须使用无状态或全状态地址配置服务。
站点本地地址允许和Internet不相连的企业构造企业专用网络,而不需要申请一个全球地址空间的地址前缀。如果该企业日后要连入Internet,它可以用它的子网ID和接口ID与一个全球前缀组合成一个全球地址。IPv6自动进行重编号。
·链路本地地址:格式前缀FP=1111 1110 10。用于同一链路的相邻节点间通信,如单条链路上没有路由器时主机间的通信。链路本地地址相当于当前在Windows下使用169.254.0.0/16前缀的APIPA IPv4地址,其有效域仅限于本地链路。链路本地地址可用于邻居发现,且总是自动配置的,包含链路本地地址的包永远也不会被IPv6路由器转发。
其实除了以上介绍的几种单播传送地址外,在IPv6标准中还规定了以下类兼容IPv4标准的单播传送地址类型,这主要是用于在IPv4向IPv6的迁移过渡期,一般有“IPv4兼容地址”、“IPv4映射地址”、“6to4地址”三类。
·IPv4兼容地址:可表示为0:0:0:0:0:0:w.x.y.z或::w.x.y.z(w.x.y.z是以点分十进制表示的IPv4地址),用于具有IPv4和IPv6两种协议的节点使用IPv6进行通信。
·IPv4映射地址:是又一种内嵌IPv4地址的IPv6地址,可表示为0:0:0:0:0:FFFF:w.x.y.z或::FFFF:w.x.y.z。这种地址被用来表示仅支持IPv4地址的节点。
·6to4地址:用于具有IPv4和IPv6两种协议的节点在IPv4路由架构中进行通信。6to4是通过IPv4路由方式在主机和路由器之间传递IPv6分组的动态隧道技术。
2、任播地址
IPv6任播地址是分配给多于一个接口(通常属于不同的节点)的地址,任播地址从单播地址空间中进行分配,使用单播地址的任何格式。因而,从语法上,任播地址与单播地址没有区别。当一个单播地址被分配给多于一个的接口时,就将其转化为任播地址。被分配具有任播地址的接点必须得到明确的配置,从而知道它是一个任播地址。目前,任意点传送地址仅被用做目标地址,且仅分配给路由器。任意点传送地址是从单点传送地址空间中分配的,使用了单点传送地址格式中的一种。地址结构如图2所示。
值 | 范围域 | 值 | 范围域 |
0 | 保留 | 8 | 机构本地范围 |
1 | 节点本地范围 | 9 | 未分配 |
2 | 链路本地范围 | A | 未分配 |
3 | 未分配 | B | 未分配 |
4 | 未分配 | C | 未分配 |
5 | 站点本地范围 | D | 未分配 |
6 | 未分配 | E | 全球范围 |
7 | 未分配 | F | 保留 |
对于非永久分配的组播地址,只有在给定的区域范围内才有意义。例如:一个场所的非永久场所局部组播地址为FF15:0:0:0:0:0:0:111,则该组与不同场所的相同地址的组无关,与不同区域中有相同group ID的非永久组无关,与使用相同group ID的永久组无关。多播地址绝不可以用作IPv6的信源地址,或用作任何寻经头标。
5.IPv 6主机及路由器可以获得的IP地址
在IPv4中,如果一台主机安装一张网卡,那么典型的情况是该主机有一个分配给网卡的IPv4地址。但IPv6则不同,通常一台IPv6主机有多个IPv6地址,即使该主机只有一个单接口。一台IPv6主机可同时拥有以下几种单点传送地址:
·每个接口的链路本地地址
·每个接口的单点传送地址(接口的单点传送地址可以是一个站点本地地址和一个或多个可聚集全球地址)
·环路(loopback)接口的环路地址(::1)
一台典型的IPv6主机至少有两个地址:(1).接收本地链路信息的链路本地地址 (2).可路由的站点本地地址或全球地址。此外,每台主机还需要时刻保持收听以下多点传送地址上的信息流:
·节点本地范围内所有节点组播地址(FF01::1)
·链路本地范围内所有节点组播地址(FF02::1)
·请求节点(solicited-node)组播地址(如果主机的某个接口加入请求节点组)
·组播组多点传送地址(如果主机的某个接口加入任何组播组)
而一台IPv6路由器可被分配为以下几种单播地址:
·每个接口的链路本地地址
·每个接口的单点传送地址(接口的单点传送地址可以是一个站点本地地址和一个或多个可聚集全球地址)
·子网-路由器任意点传送地址
·其他任意点传送地址(可选)
·环路接口的环路地址(::1)
同样,除以上这些地址外,路由器需要时刻保持收听以下多点传送地址上的信息流:
·节点本地范围内的所有节点组播地址(FF01::1)
·节点本地范围内的所有路由器组播地址(FF01::2)
·链路本地范围内的所有节点组播地址(FF02::1)
·链路本地范围内的所有路由器组播地址(FF02::2)
·站点本地范围内的所有路由器组播地址(FF05::2)
·请求节点(solicited-node)组播地址(如果路由器的某个接口加入请求节点组)
·组播组多点传送地址(如果路由器的某个接口加入任何组播组)
这一部分就讲到这里。下一部分里,我们将介绍IPv6的地址表示方法,数据报格式以及域名解析原理。