您的位置:首页 > 其它

初识IPv6(三)

2007-07-27 11:03 204 查看
3 IPv6

本章在介绍I P v 6寻址之前,首先介绍一些与使用I P寻址来标识和定位I P网络上的节点相关的问题。

多年以来, I P地址被认为是可以在I P网络上最终唯一并持久的节点标识符。近年中,尤其是随着下一代I P技术的发展,对于I P地址的这种观点正在改变。如果我们仍像过去2 0年中所使用的方法来分配网络和节点地址,那将是一种不必要和低效的办法。

本章在介绍了RFC 2373(IPv6寻址体系结构)中描述的I P寻址体系结构之后,将首先介绍一些与I P寻址相关的议题。然后将介绍几种可能的地址分配方法。本章将I P v 6寻址分成了以下几个部分: 1 2 8位地址的结构和命名及I P v 6地址的不同类型(单播、组播和泛播)。

I P v 6的设计者们可以只是简单地在I P v 4寻址体系结构中扩大地址空间。但是这样一来将使我们丧失一个改进I P的巨大机会。对于整个寻址体系结构的修改所带来的巨大机会,不仅体现在提高地址分配的效率上,同时也体现在提高I P选路性能上。本章将介绍这些改进。

RFC 2373于1 9 9 8年7月发表,并废弃了最早于1 9 9 5年1 2月发表的RFC 1884(IPv6址体系结构)。其中大部分变化源自在最初的R F C发布后的两年半中被认为是必需要进行澄清、更正和修改之处。

3.1 地址

I P v 4与I P v 6地址之间最明显的差别在于长度: I P v 4地址长度为3 2位,而I P v 6地址长度为1 2 8位。RFC 2373中不仅解释了这些地址的表现方式,同时还介绍了不同的地址类型及其结构。I P v 4地址可以被分为2至3个不同部分(网络标识符、节点标识符,有时还有子网标识符),
I P v 6地址中拥有更大的地址空间,可以支持更多的字段。I P v 6地址有三类、单播、组播和泛播地址。下一节将对此作更详细的介绍。单播和组播地址与I P v 4的地址非常类似;但I P v 6中不再支持I P v 4中的广播地址,而增加了一个泛播地址。
本节介绍的是I P v 6的寻址模型、地址类型、地址表达方式以及地址中的特例。

(1)地址表达方式
I P v 4地址一般以4部分点分的方法来表示,即4个数字用点分隔。例如,下面是一些合法的I P v 4地址,都用十制整数表示:
1 0 . 5 . 3 . 1
1 2 7 . 0 . 0 . 1
2 0 1 . 1 9 9 . 2 4 4 . 1 0 1
I P v 4地址也常以一42位的十六制整数或48位的二制整数表示,但后一种情况

I P v 6地址4倍于I P v 4地址,表达起来的复程度也是I P v 4地址的4倍。I P v 6地址的基本表达方式是X : X : X : X : X : X : X : X,其中X是一个4位十六制整数( 1 6)每一个数字包含4位,每个X包含4个数字,每个地址包括8X,共1 2 8( 4×4×8 = 1 2 8 )。例如,下面是一些合法的I P v 6地址:
CDCD : 910A : 2222 : 5498 : 8475 : 1111 : 3900 : 2020
1030 : 0 : 0 : 0 : C9B4 : FF12 : 48AA : 1A2B
2000 : 0 : 0 : 0 : 0 : 0 : 0 : 1
 下面试举一例,先看一个以二制形式表示的IPv6地址:    0010000111011010000000001101001100000000000000000010111100111011   0000001010101010000000001111111111111110001010001001110001011010     128位地址以16一分可表示  0010000111011010 0000000011010011 0000000000000000
0010111100111011 0000001010101010 0000000011111111 1111111000101000 1001110001011010    每个16位分组转换成十六制并以冒号分隔:    21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A     IPv6可以将每4个十六制数字中的前零位去除做化表示,但每个分至少保留一位数字。去除前零位后,上述地址可写成:    21DA:D3:0:2F3B:2AA:FF:FE28:9C5A

注意些整数是十六制整数,其中AF表示的是1 01 5。地址中的每个整数都必表示出来,但起始的0可以不必表示。是一种比较标准的I P v 6地址表达方式,此外有另外两种更加清楚和易于使用的方式。
1.某些I P v 6地址中可能包含一串的0 (就像上面的第二和第三个例子一)。当出现这种情况准中允空隙来表示串的0话说,地址
2000 : 0 : 0 : 0 : 0 : 0 : 0 : 1
可以被表示
2000 : : 1
两个冒号(::)表示地址可以展到一个完整的1 2 8位地址。在种方法中,只有当1 6全部0才会被两个冒号取代,且两个冒号在地址中只能出一次。
2.I P v 4I P v 6的混合境中可能有第三种方法。I P v 6地址中的最低3 2位可以用于表示I P v 4地址,地址可以按照一种混合方式表达,即X : X : X : X : X : X : d . d . d . d,其中X表示一个1 6位整数,而d表示一个8位十制整数。例如,地址
0 : 0 : 0 : 0 : 0 : 0 : 10 . 0 . 0 . 1
就是一个合法的I P v 4地址。把两种可能的表达方式合在一起,地址也可以表示
: : 10 . 0 . 0 . 1

由于I P v 6地址被分成两个部分—子网前缀和接口标识符,因此人们期待一个 I P节点地址可以按照类似CIDR(无类别域际路由选择)地址的方式被表示为一个携带额外数值的地址,其中指出了地址中有多少位是掩码。即,I P v 6节点地址中指出了前缀长度,该长度与I P v 6地址间以斜杠区分,例如:
1030 : 0 : 0 : 0 : C9B4 : FF12 : 48AA : 1A2B / 6 0
这个地址中用于选路的前缀长度为6 0位。
IPv6 前缀
  前缀是地址中具有固定值的位数部分或表示网络标识的位数部分。IPv6的子网标识、路由器和地址范围前缀表示法与IPv4采用的CIDR标记法相同,其前缀可书写为:地址/前缀长度。例如21DA:D3::/48是一个路由器前缀,而21DA:D3:0:2F3B::/64是一个子网前缀。
  
  注意:在IPv4实现中普遍使用的被称为子网掩码的点分十进制网络前缀表示法在IPv6中已不再使用,IPv6仅支持前缀长度表示法。

(2)址模型
I P v 6寻址模型与I P v 4很相似。每个单播地址标识一个单独的网络接口。I P地址被指定给网络接口而不是节点,因此一个拥有多个网络接口的节点可以具备多个 I P v 6地址,其中任何一个I P v 6地址都可以代表该节点。尽管一个网络接口能与多个单播地址相关联,但一个单播地址只能与一个网络接口相关联。每个网络接口必须至少具备一个单播地址。这里有一个非常重要的声明和一个非常重要的例外。
这个声明与点到点链路的使用有关。在I P v 4中,所有的网络接口,其中包括连接一个节点与路由器的点到点链路(用许多拨号I n t e r n e t连接中),都需要一个专用的I P地址。随着许多机构开始使用点到点链路来连接其分支机构,每条链路均需要其自己的子网,这样一来消耗了许多地址空间。在I P v 6中,如果点到点链路的任何一个端点都不需要从非邻居节点接受和发送数据的话,它们就可以不需要特殊的地址。即,如果两个节点主要是传递业务流,则它们并不需要具备I P v 6地址。
为每个网络接口分配一个全球唯一的单播地址的要求阻碍了I P v 4地址的扩展。一个提供通用服务的服务器在高需求量的情况下可能会崩溃。因此, I P v 6地址模型中又提出了一个重要的例外:如果硬件有能力在多个网络接口上正确地共享其网络负载的话,那么多个网络接口可以共享一个I P v 6地址。这使得从服务器扩展至负载分担的服务器群成为可能,而不再需要在服务器的需求量上升时必须进行硬件升级。下面将要讨论的组播和泛播地址也与网络接口有关。一个网络接口可以具备任意类型的多个地址。

(3)地址空
I P v 6地址空间的分配如下图:



如上所述, I P地址有三种类型:单播、组播和任意点播。广播地址已不再有效。RFC2373中定义了三种I P v 6地址类型:
• 单播:一个单接口的标识符。送往一个单播地址的包将被传送至该地址标识的接口上。
• 泛播:一组接口(一般属于不同节点)的标识符。送往一个泛播地址的包将被传送至该地址标识的接口之一(根据选路协议对于距离的计算方法选择“最近”的一个)。

组播:一组接口(一般属于不同节点)的标识符。送往一个组播地址的包将被传送
至有该地址标识的所有接口上。
这三种地址类型将在下面进行更详细的论述。

#广播路在何方
广播地址从一开始就为I P v 4网络带来了问题。广播被用来携带去向多个节点的信息或被那些不知信息来自何方的节点用来发出请求。但是,广播可能将为网络性能设置障碍。同一网络链路上的大量广播意味着该链路上的所有每个节点都必须处理所有广播,其中绝大部分节点最终都将忽略该广播,因为该信息与自己无关。把广播在子网之间进行转发将导致更多的问题,因为路由器上将充斥着这种业务流。
I P v 6对此的解决办法是使用一个“所有节点”组播地址来替代那些必须使用广播的情况,同时,对那些原来使用了广播地址的场合,则使用一些更加有限的组播地址。通过这种方法,对于原来由广播携带的业务流感兴趣的节点可以加入一个组播地址,而其他对该信息不感兴趣的节点则可以忽略发往该地址的包。广播从来不能解决信息穿越I n t e r n e t的问题,如选路信息,而组播则提供了一个更加可行的方法。

3.2
单播地址标识了一个单独的I P v 6接口。一个节点可以具有多个I P v 6网络接口。每个接口必须具有一个与之相关的单播地址。单播地址可被认为包含了一段信息,这段信息被包含在128位字段中:该地址可以完整地定义一个特定的接口。此外,地址中数据可以被解释为多个小段的信息。但无论如何,当所有的信息被放在一起后,将构成标识一个节点接口的1 2 8位地址。
I P v 6地址本身可以为节点提供关于其结构的或多或少的信息,这主要根据是由谁来观察这个地址以及观察什么。例如,节点可能只需简单地了解整个1 2 8位地址是一个全球唯一的标识符,而无须了解节点在网络中是否存在。另一方面,路由器可以通过该地址来决定,地址中的一部分标识了一个特定网络或子网上的一个唯一节点。
例如,一个I P v 6单播地址可看成是一个两字段实体,其中一个字段用来标识网络,而另一个字段则用来标识该网络上节点的接口。在后面讨论特定的单播地址类型时还会看到,网络标识符可被划分为几部分,分别标识不同的网络部分。I P v 6单播地址功能与I P v 4地址一样受制于C I D R,即,在一个特定边界上将地址分为两部分。地址的高位部分包含选路用的前缀,而地址的低位部分包含网络接口标识符。

简单的方法是把I P v 6地址作为不加区分的一块1 2 8位的数据,而从格式化的观点来看,可把它分为两段,即接口标识符和子网前缀。接口标识符的长度取决于子网前缀的长度。两者的长度是可以变化的,这取决于谁对它进行解释。对于非常靠近寻址的节点接口(远离骨干网)的路由器可用相对较少的位数来标识接口。而离骨干网近的路由器,只需用少量地址位来指定子网前缀,这样,地址的大部分将用来标识接口标识符。

I P v 6单播地址包括下面几种类型:

可集聚全球地址。
• 未指定地址或全0地址。
• 回返地址。
• 嵌有I P v 4地址的I P v 6地址。
• 基于供应商和基于地理位置的供应商地址。
• OSI网络服务访问点( N S A P )地址。
• 网络互联包交换( I P X )地址。

下面要讨论的是可集聚的单播地址,它的结构更为复杂。

1.可集聚全球地址



全局单播地址中的字段有:
•固定部分(FP字段)
三个高序位被设置为 001。当前分配的全局地址的地址前缀是 2000::/3。
•全局路由前缀
全局路由前缀可标识一个特定组织的站点。三个固定位和 45 位全局路由前缀的组合用于创建 48 位站点地址前缀,创建的站点地址将被分配给组织的单个站点。分配之后,IPv6 Internet 上的路由器会将匹配 48 位地址前缀的 IPv6 通信量转发到组织站点的路由器。
•子网 ID
子网 ID 标识组织站点中的子网。此字段长 16 位。组织站点可在其站点内使用这 16 位来创建 65,536 个子网或多个层次的寻址层次结构和一个高效路由基础结构。
•接口 ID
接口 ID 指示站点内子网上的接口。此字段长 64 位。 例如,3FFE:FFFF:2A3C:F282:2B0:D0FF:FEE9:4143 是一个全局单播 IPv6 地址。在此地址中:
•3FFE:FFFF:2A3C 表示组织站点
•F282 表示该站点内的子网
•2B0:D0FF:FEE9:4143 表示该站点内该子网上的接口

2. 特殊地址和保留地址
在第一个1/256 IPv6地址空间中,所有地址的第一个8位:0000 0000被保留。大部分空的地址空间用作特殊地址,这些特殊地址包括:
•未指定地址:这是一个“全0”地址,当没有有效地址时,可采用该地址。例如当一个主机从网络第一次启动时,它尚未得到一个I P v 6地址,就可以用这个地址,即当发出配置信息请求时,在I P v 6包的源地址中填入该地址。该地址可表示为0 : 0 : 0 : 0 : 0 : 0 : 0 : 0,如前所述,也可写成: :。

回返地址:在I P v 4中,回返地址定义为1 2 7 . 0 . 0 . 1。任何发送回返地址的包必须通过协议栈到网络接口,但不发送到网络链路上。网络接口本身必须接受这些包,就好像是从外面节点收到的一样,并传回给协议栈。回返功能用来测试软件和配置。I P v 6回返地址除了最低位外,全为0,即回返地址可表示为0 : 0 : 0 : 0 : 0 : 0 : 0 : 1: : 1。

•嵌有I P v 4地址的I P v 6地址:有两类地址,一类允许I P v 6节点访问不支持 I P v 6的I P v 4节点,
另一类允许I P v 6路由器用隧道方式,在I P v 4网络上传送I P v 6包。这两类地址将在下面进行讨论。

3.嵌有I P v 4地址的I P v 6地址

IPv4 兼容的地址
IPv4 兼容的地址,0:0:0:0:0:0:w.x.y.z ::w.x.y.z(其中的 w.x.y.z是公用 IPv4 地址的点分十进制表示形式),IPv4兼容地址被节点用于通过IPv4路由器以隧道方式传送IPv6包,这些节点即理解IPv6又理解IPv4。
•IPv4 映射地址
IPv4 映射地址,0:0:0:0:0:FFFF:w.x.y.z ::FFFF:w.x.y.z,仅使用 IPv4 的节点表示为 IPv6 节点。IPv4 映射地址仅用作内部表示形式,被IPv6节点用于访问只支持IPv4的节点,IPv4 映射地址从不用作 IPv6 数据包的源或目标地址。用于 Windows Server 2003 和 Windows XP 的 IPv6 不支持 IPv4 映射地址。



4. 路本地和站点本地地址
路本地地址
节点在与同一链路(又称子网)上的相邻节点通信时会使用链路本地地址。例如,在没有路由器的单链路 IPv6 网络上,链路上主机之间的通信会使用链路本地地址。链路本地地址相当于运行 Windows 的计算机上自动配置的 APIPA IPv4 地址。链路本地地址的范围(网络上的一个区域,地址在其中保持着唯一性)是本地链路。
邻居发现过程需要使用链路本地地址(该地址总是自动配置的),即使在所有其他单播地址都不存在的情况下也需要。



由于链路本地地址的前 64 位是固定的,所有链路本地地址的地址前缀都是 FE80::/64。
IPv6 路由器绝对不会将链路本地通信量转发到链路之外。

站点本地地址
如果说链路本地地址只用于单个网络链路的话,那么站点本地地址则可用于站点。这意味着站点本地地址能用在内联网中传送数据,但不允许从站点直接选路到全球I n t e r n e t。站点内的路由器只能在站点内转发包,而不能把包转发到站点外去。站点本地地址的1 0位前缀与链路本地地址的1 0位前缀略有区别,然后后面紧跟一连串“ 0”。站点本地地址的子网标识符为1 6位,而接口标识符同样是6 4位基于I E E E地址。



站点本地地址的前 10 位被固定为 1111 1110 11。因此,所有站点本地地址的地址前缀都是 FEC0::/10。除了 10 个高序固定位外,还有一个 54 位子网 ID 字段,您可以使用该字段在您的组织中创建子网。使用 54 位,您在一个平面子网结构中最多可拥有 2(54) 个子网;您也可以分割子网 ID 字段的高序位来创建一个分层的、摘要型路由基础结构。子网 ID 字段的后面是 64 位接口 ID 字段,它标识子网上的特定接口。

5. NSAPIPX地址分配
IPng的目标之一是要统一整个网络世界,使I P、I P X和O S I网络间能进行互操作。为了支持这种互操作性, I P v 6为O S I和I P X各保留了1 / 1 2 8地址空间。在本书写作时, I P X地址格式尚未精确定义; N S A P地址分配的描述见RFC 1888(OSI NSAP和I P v 6 )。对
OS I和N S A P感兴趣的可以在R F C中找到更完整的论述。

3.3多播
地址格式中的第1个字节为全“ 1”,标识其为组播地址。组播地址占了IPv 6地址空间的整整1 / 2 5 6。组播地址格式中除第1字节外的其余部分,包括如下三个字段:



标志字段:由4个单个位标志组成。目前只指定了第4位,该位用来表示该地址是由I n t e r n e t编号机构指定的熟知的组播地址,还是特定场合使用的临时组播地址。如果该标志位为“ 0”,表示该地址为熟知地址;如果该位为“ 1”,表示该地址为临时地址。其他3个标志位保留将来用。
范围字段:长4位,用来表示组播的范围。即,组播组是只包括同一本地网、同一站点、同一机构中的节点,还是包括I P v 6全球地址空间中任何位置的节点。该4位的可能值为0 ~ 15。



• 组标识符字段:
标识多播组;它在作用域内是唯一的。此字段的大小是 112 位。暂时的组标识符仅与特定的范围字段相关。。

为了标识接口本地和链路本地作用域的所有节点,定义了以下地址:
•FF01::1(接口本地作用域的所有节点多播地址)
•FF02::1(链路本地作用域的所有节点多播地址)为了标识接口本地、链路本地和站点本地作用域的所有路由器,定义了以下地址:
•FF01::2(接口本地作用域的所有路由器多播地址)
•FF02::2(链路本地作用域的所有路由器多播地址)
•FF05::2(站点本地作用域的所有路由器多播地址)

#IPv6 多播地址取代了各种形式的 IPv4 广播地址。IPv6 中的链路本地作用域的所有节点多播地址 (FF02::1) 取代了 IPv4 网络广播地址(用于有类别环境中,该地址中的所有主机位都设置为 1)、子网广播地址(用于无类别环境中,该地址中的所有主机位都设置为 1)和有限广播地址 (255.255.255.255)。

点多播地址:
被请求节点多播地址为使用高效的网络节点查询从已知的 IPv6 地址来解析链路层地址(称为链路层地址解析)提供了便利。在 IPv4 中,以太网和 802.11 无线网段上的 ARP 请求帧被发送到了广播地址 0xFF-FF-FF-FF-FF-FF。此帧会干扰网段上的所有节点,包括那些没有运行 IPv4 的节点。IPv6 使用“邻居请求”消息来执行链路层地址解析。但是,如果将本地链路作用域的所有节点多播地址用作“邻居请求”消息目标,则会干扰本地链路上的所有 IPv6 节点,因此使用了被请求节点多播地址。被请求节点多播地址由前缀 FF02::1:FF00:0/104 和单播 IPv6 地址的最后 24 位构成。下图显示了单播 IPv6 地址到其对应的被请求节点多播地址的映射。
例如,节点 A 被分配了链路本地地址FE80::2AA:FF:FE28:9C5A,它侦听对应的被请求节点多播地址 FF02::1:FF28:9C5A。(粗 体字突出显示了最后六个十六进制数字是一致的。)本地链路上的节点 B 必须将节点 A 的链路本地地址 FE80::2AA:FF:FE28:9C5A 解析为其对应的链路层地址。节点 B 向被请求节点多播地址 FF02::1:FF28:9C5A 发送一条“邻居请求”消息。因为节点 A 正在侦听该多播地址,所以它将处理该“邻居请求”消息并回复一条单播“邻居公布”消息,这就完成了地址解析过程。
通过使用被请求节点多播地 址,链路层地址解析(链路上的常见事件)就不会影响到所有的网络节点了。因此,在地址解析过程中,只有很少的节点受干扰。实际上,链路层地址、IPv6 接口 ID 和被请求节点地址之间的关系允许将被请求节点地址用作伪单播地址以获得非常高效的地址解析。



IPv6地址的变更如下图



3.4 嵌有I P v 4地址的I P v 6地址的
随着网络厂商和开发者逐渐将I P v 6引入不同的平台,随着网络管理者逐渐确定自己所需要的I P v 6功能,向I P v 6过渡也将是一个相对缓慢的过程。预计IPv4和IPv6将长期共存,也许将永远共存。大多数过渡策略都依靠协议隧道的两路方法,即至少在最初,将来自I P v 6岛的I P v 6包封装在I P v 4包中,然后在广泛分布的I P v 4海洋中传送。经过过渡的早期阶段,越来越多的I P网络和设备将支持I P v 6。但即使在过渡的后期阶段, I P v 6封装仍将提供跨越只支持I P v 4的骨干网和其他坚持使用I P v 4的网络的连接能力。另一路策略是双栈方法,即主机和路由器在同一网络接口上运行I P v 4栈和I P v 6栈。这样,双栈节点既可以接受和发送I P v 4包,也可以接受和发送I P v 6包,因而两个协议可以在同一网络中共存。
IPv6协议隧道方法
见图1 2 - 1,隧道方法用于连接处于I P v 4海洋中的各孤立的I P v 6岛。此方法要求隧道两端的I P v 6节点都是双栈节点,即也能够发送I P v 4包。将I P v 6封装在 I P v 4中的过程与其他协议封装相似:隧道一端的节点把I P v 6数据报作为要发送给隧道另一端节点的I P v 4包中的净荷数据,这样就产生了包含I P v 6数据报的 I P v 4数据报流。在图1 2 - 1中,节点A和节点B都是只支持I P v 6的节点。如果节点A要向B发送包,A只是简单地把I P v 6头的目的地址设为B的I P v 6地址,然后传递给路由器X;
X对I P v 6包进行封装,然后将I P v 4头的目的地址设为路由器Y的I P v 4地址;
若路由器Y收到此I P v 4包,则首先拆包,如果发现被封装的I P v 6包是发给节点B的,Y就将此包正确地转发给B。



6BONE

1 9 9 6年,在第一个I P v 6标准为I E T F接受并作为R F C发布之后不久,就产生了6 B O N E网络。大型互联网需要有骨干结构来链接完全不同且广泛分布的网络,而作为现有I P v 4基础构架之上的虚拟结构,6 B O N E使用隧道方式来链接参与的网络。到1 9 9 8年9月,6 B O N E在3 5个国家中已有参与者,连接了至少2 0 0个站点。6 B O N E打算在I P v 6产品实现广泛的商业推广之前,用于测试或获取I P v 6的经验。

为将站点连接到6 B O N E,需要如下设备:

支持I P v 6并连接到6 B O N E的路由器。
• 支持I P v 6以建立用户自己的I P v 6网络的工作站。
• 连接到6 B O N E的途径,这可解释为找到已连接到6 B O N E的其他机构,并建立到这些机
构的站点的连接;
支持IPv6 AAAA记录的D N S服务器。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: