现在的位置: 首页 > 综合 > 正文

IPv6地址格式分析

2014年08月29日 ⁄ 综合 ⁄ 共 6388字 ⁄ 字号 评论关闭
IPv6 128位地址的结构和命名
IPv4与IPv6地址之间最明显的差别在于长度: IPv4地址长度为3 2位,而IPv6地址长度为1 2 8位。RFC 2373中不仅解释了这些地址的表现方式,同时还介绍了不同的地址类型及其结构。IPv4地址可以被分为2至3个不同部分(网络标识符、节点标识符,有时还有子网标识符),IPv6地址中拥有更大的地址空间,可以支持更多的字段。IPv6地址有三类、单播、组播和任意播地址。单播和组播地址与IPv4的地址非常类似;但IPv6中不再支持IPv4中的广播地址,而增加了一个任意播地址。//本节介绍的是IPv6的寻址模型、地址类型、地址表达方式以及地址中的特例。//分别介绍如下:
IPv6地址表达方式
IPv4地址一般以4部分间点分的方法来表示,即4个数字用点分隔。
IPv6地址长度4倍于IPv4地址,表达起来的复杂程度也是IPv4地址的4倍。IPv6地址的基本表达方式是X : X : X : X : X : X : X : X,其中X是一个4位十六进制整数( 1 6位)。每一个数字包含4位,每个整数包含4个数字,每个地址包括8个整数,共计1 2 8位( 4×4×8 = 1 2 8 )。 
以上是一种比较标准的IPv6地址表达方式,此外还有另外两种更加清楚和易于使用的方式。某些IPv6地址中可能包含一长串的0 (就像上面的第二和第三个例子一样)。当出现这种情况时,标准中允许用“空隙”来表示这一长串的0。例如,地址2 0 0 0 : 0 : 0 : 0 : 0 : 0 : 0 : 1可以被表示为2 0 0 0 : : 1,这两个冒号表示该地址可以扩展到一个完整的1 2 8位地址。在这种方法中,只有当1 6位组全部为0时才会被两个冒号取代,且两个冒号在地址中只能出现一次。
在IPv4和IPv6的混合环境中可能有第三种方法。IPv6地址中的最低3 2位可以用于表示IPv4地址,该地址可以按照一种混合方式表达,即X : X : X : X : X : X : d . d . d . d,其中X表示一个1 6位整数,而d表示一个8位十进制整数。例如,地址0 : 0 : 0 : 0 : 0 : 0 : 1 0 . 0 . 0 . 1就是一个合法的IPv4地址。把两种可能的表达方式组合在一起,该地址也可以表示为:: : 1 0 . 0 . 0 . 1。
由于IPv6地址被分成两个部分—子网前缀和接口标识符,因此人们期待一个I P节点地址可以按照类似C I D R地址的方式被表示为一个携带额外数值的地址,其中指出了地址中有多少位是掩码。即,IPv6节点地址中指出了前缀长度,该长度与IPv6地址间以斜杠区分,例如:1 0 3 0 : 0 : 0 : 0 : C 9 B 4 : F F 1 2 : 4 8 A A : 1 A 2 B / 6 0这个地址中用于选路的前缀长度为6 0位。
寻址模型:
  IPv6寻址模型与IPv4很相似。每个单播地址标识一个单独的网络接口。I P地址被指定给网络接口而不是节点,因此一个拥有多个网络接口的节点可以具备多个IPv6地址,其中任何一个IPv6地址都可以代表该节点。尽管一个网络接口能与多个单播地址相关联,但一个单播地址只能与一个网络接口相关联。每个网络接口必须至少具备一个单播地址。这里有一个非常重要的声明和一个非常重要的例外。这个声明与点到点链路的使用有关。在IPv4中,所有的网络接口,其中包括连接一个节点与路由器的点到点链路(用许多拨号Internet连接中),都需要一个专用的I P地址。随着许多机构开始使用点到点链路来连接其分支机构,每条链路均需要其自己的子网,这样一来消耗了许多地址空间。在IPv6中,如果点到点链路的任何一个端点都不需要从非邻居节点接受和发送数据的话,它们就可以不需要特殊的地址。即,如果两个节点主要是传递业务流,则它们并不需要具备IPv6地址。为每个网络接口分配一个全球唯一的单播地址的要求阻碍了IPv4地址的扩展。一个提供通用服务的服务器在高需求量的情况下可能会崩溃。因此, IPv6地址模型中又提出了一个重要的例外:如果硬件有能力在多个网络接口上正确地共享其网络负载的话,那么多个网络接口可以共享一个IPv6地址。这使得从服务器扩展至负载分担的服务器群成为可能,而不再需要在服务器的需求量上升时必须进行硬件升级。
下面将要讨论的组播和泛播地址也与网络接口有关。一个网络接口可以具备任意类型的多个地址。
地址空间:
RFC 2373中包含了一个IPv6地址空间“图”,其中显示了地址空间是如何进行分配的,地址分配的不同类型,前缀(地址分配中前面的位值)和作为整个地址空间的一部分的地址分配的长度。下图显示了IPv6地址空间的分配。

IPv6 地址类型:
  I P地址有三种类型:单播、组播和任意点播。广播地址已不再有效。R F C2 3 7 3中定义了三种IPv6地址类型:
        单播:一个单接口的标识符。送往一个单播地址的包将被传送至该地址标识的接口上;
        任意播:一组接口(一般属于不同节点)的标识符。送往一个泛播地址的包将被传送至该地址标识的接口之一(根据选路协议对于距离的计算方法选择“最近”的一个);
        组播:一组接口(一般属于不同节点)的标识符。送往一个组播地址的包将被传送至有该地址标识的所有接口上。
下面进行更详细的论述:
IPv4的广播地址:
广播地址从一开始就为IPv4网络带来了问题。广播被用来携带去向多个节点的信息或被那些不知信息来自何方的节点用来发出请求。但是,广播可能将为网络性能设置障碍。同一网络链路上的大量广播意味着该链路上的所有每个节点都必须处理所有广播,其中绝大部分节点最终都将忽略该广播,因为该信息与自己无关。把广播在子网之间进行转发将导致更多的问题,因为路由器上将充斥着这种业务流。IPv6对此的解决办法是使用一个“所有节点”组播地址来替代那些必须使用广播的情况,同时,对那些原来使用了广播地址的场合,则使用一些更加有限的组播地址。通过这种方法,对于原来由广播携带的业务流感兴趣的节点可以加入一个组播地址,而其他对该信息不感兴趣的节点则可以忽略发往该地址的包。广播从来不能解决信息穿越Internet的问题,如选路信息,而组播则提供了一个更加可行的方法。
单播地址:
单播地址标识了一个单独的IPv6接口。一个节点可以具有多个IPv6网络接口。每个接口必须具有一个与之相关的单播地址。单播地址可被认为包含了一段信息,这段信息被包含在1 2 8位字段中:该地址可以完整地定义一个特定的接口。此外,地址中数据可以被解释为多个小段的信息。但无论如何,当所有的信息被放在一起后,将构成标识一个节点接口的1 2 8位地址。
IPv6地址本身可以为节点提供关于其结构的或多或少的信息,这主要根据是由谁来观察这个地址以及观察什么。例如,节点可能只需简单地了解整个1 2 8位地址是一个全球唯一的标识符,而无须了解节点在网络中是否存在。另一方面,路由器可以通过该地址来决定,地址中的一部分标识了一个特定网络或子网上的一个唯一节点。例如,一个IPv6单播地址可看成是一个两字段实体,其中一个字段用来标识网络,而另一个字段则用来标识该网络上节点的接口。在后面讨论特定的单播地址类型时还会看到,网络标识符可被划分为几部分,分别标识不同的网络部分。IPv6单播地址功能与IPv4地址一样受制于C I D R,即,在一个特定边界上将地址分为两部分。地址的高位部分包含选路用的前缀,而地址的低位部分包含网络接口标识符。最简单的方法是把IPv6地址作为不加区分的一块1 2 8位的数据,而从格式化的观点来看,可把它分为两段,即接口标识符和子网前缀。RFC 2373中表示的格式见下图:
N位        128-N位
子网标识符        接口标识符
接口标识符的长度取决于子网前缀的长度。两者的长度是可以变化的,这取决于谁对它进行解释。对于非常靠近寻址的节点接口(远离骨干网)的路由器可用相对较少的位数来标识接口。而离骨干网近的路由器,只需用少量地址位来指定子网前缀,这样,地址的大部分将用来标识接口标识符。下面要讨论的是可集聚的单播地址,它的结构更为复杂。
IPv6单播地址包括下面几种类型:
        可集聚全球地址。
        未指定地址或全0地址。
        回返地址。
        嵌有IPv4地址的IPv6地址。
        基于供应商和基于地理位置的供应商地址。
        OSI网络服务访问点( N S A P )地址。
        网络互联包交换( I P X )地址。
单播地址格式:
        接口标识符:
在IPv6寻址体系结构中,任何IPv6单播地址都需要一个接口标识符。接口标识符非常像48 位的介质访问控制( M A C )地址,M A C地址由硬件编码在网络接口卡中,由厂商烧入网卡中,而且地址具有全球唯一性,不会有两个网卡具有相同的M A C地址。这些地址能用来唯一标识网络链路层上的接口。IPv6主机地址的接口标识符基于IEEE EUI-64格式。该格式基于已存在的M A C地址来创建6 4位接口标识符,这样的标识符在本地和全球范围是唯一的。
        可集聚全球单播地址:
可集聚全球单播地址包括地址格式的起始3位为0 0 1的所有地址(此格式可在将来用于当前尚未分配的其他单播前缀)。地址格式化如下图所示:
3        13        8        24        16        64
FP        TLA ID        RES        NLA ID        SLA ID        接口标识符
图中包括下列字段:
• F P字段: IPv6地址中的格式前缀,3位长,用来标识该地址在IPv6地址空间中属于哪类地址。目前该字段为001,标识这是可集聚全球单播地址。
• TLA ID字段:顶级集聚标识符,包含最高级地址选路信息。这指的是网络互连中最大的选路信息。目前,该字段为1 3位,可得到最大8 1 9 2个不同的顶级路由。
• R E S字段:该字段为8位,保留为将来用。最终可能会用于扩展顶级或下一级集聚标识符字段。
• NLA ID字段:下一级集聚标识符, 2 4位长。该标识符被一些机构用于控制顶级集聚以安排地址空间。换句话说,这些机构(可能包括大型I S P和其他提供公网接入的机构)能按照他们自己的寻址分级结构来将此2 4位字段切开用。这样,一个实体可以用2位分割成4个实体内部的顶级路由,其余的2 2位地址空间分配给其他实体(如规模较小的本地I S P )。这些实体如果得到足够的地址空间,可将分配给它们的空间用同样的方法再子分。
• SLA ID字段:站点级集聚标识符,被一些机构用来安排内部的网络结构。每个机构可以用与IPv4同样的方法来创建自己内部的分级网络结构。若1 6位字段全部用作平面地址空间,则最多可有65 535个不同子网。如果用前8位作该组织内较高级的选路,那么允许2 5 5个高级子网,每个高级子网可有多达2 5 5个子子网。
• 接口标识符字段:6 4位长,包含IEEE EUI-64接口标识符的6 4位值。
        特殊地址和保留地址:
在第一个1/256 IPv6地址空间中,所有地址的第一个8位:0000 0000被保留。大部分空的地址空间用作特殊地址,这些特殊地址包括:
• 未指定地址:这是一个“全0”地址,当没有有效地址时,可采用该地址。例如当一个主机从网络第一次启动时,它尚未得到一个IPv6地址,就可以用这个地址,即当发出配置信息请求时,在IPv6包的源地址中填入该地址。该地址可表示为0 : 0 : 0 : 0 : 0 : 0 : 0 : 0。 
• 回返地址:在IPv4中,回返地址定义为127.0.0.1。任何发送回返地址的包必须通过协议栈到网络接口,但不发送到网络链路上。网络接口本身必须接受这些包,就好像是从外面节点收到的一样,并传回给协议栈。回返功能用来测试软件和配置。IPv6回返地址除了最低位外,全为0,即回返地址可表示为0 : 0 : 0 : 0 : 0 : 0 : 0 : 1或: : 1。
• 嵌有IPv4地址的IPv6地址:有两类地址,一类允许IPv6节点访问不支持IPv6的IPv4节点,另一类允许IPv6路由器用隧道方式,在IPv4网络上传送IPv6包。这两类地址高阶8 0位均为0,低阶3 2位包含IPv4地址。当中间的1 6位被置为F F F F时,则指示该地址为IPv4映象的IPv6地址。IPv4兼容地址被节点用于通过IPv4路由器以隧道方式传送IPv6包。这些节点既理解IPv4又理解IPv6。IPv4映象地址则被IPv6节点用于访问只支持IPv4的节点。具体格式如下图:

        链路本地和站点本地地址
链路本地地址用于单网络链路上给主机编号。前缀的前10位标识的地址即链路本地地址。路由器在它们的源端和目的端对具有链路本地地址的包不予处理,因为永远也不会转发这些包。该地址的中间54位置成0。而64位接口标识符同样用如前所述的IEEE结构。
如果说链路本地地址只用于单个网络链路的话,那么站点本地地址则可用于站点。这意味着站点本地地址能用在内联网中传送数据,但不允许从站点直接选路到全球Internet。站点内的路由器只能在站点内转发包,而不能把包转发到站点外去。站点本地地址的1 0位前缀与链路本地地址的1 0位前缀略有区别,然后后面紧跟一连串“ 0”。站点本地地址的子网标识符为1 6位,而接口标识符同样是6 4位基于IEEE地址。他们的结构如下图所示:

组播地址
        组播地址格式:
I P v 6组播地址的格式不同于I P v 6单播地址,地址格式如下图所示:

组播地址只能用作目的地址,没有数据报把组播地址用作源地址。地址格式中的第1个字节为全“ 1”,标识其为组播地址。组播地址占了I P v 6地址空间的整整1 / 2 5 6。组播地址格式中除第1字节外的其余部分,包括如下三个字段:
• 标志字段:由4个单个位标志组成。目前只指定了第4位,该位用来表示该地址是由Internet编号机构指定的熟知的组播地址,还是特定场合使用的临时组播地址。如果该标志位为“ 0”,表示该地址为熟知地址;如果该位为“ 1”,表示该地址为临时地址。其他3个标志位保留将来用。
• 范围字段:长4位,用来表示组播的范围。即,组播组是只包括同一本地网、同一站点、同一机构中的节点,还是包括I P v 6全球地址空间中任何位置的节点。该4位的可能值为0~15。
• 组标识符字段:长112位,用于标识组播组。根据组播地址是临时的还是熟知的以及地址的范围,同一个组播标识符可以表示不同的组。永久组播地址用指定的赋予特殊含义的组标识符,组中的成员既依赖于组标识符,又依赖于范围。
        组播组
忽略。
泛播(任意播)地址
组播地址在某种意义上可以由多个节点共享。组播地址成员的所有节点均期待着接收发给该地址的所有包。一个连接5个不同的本地以太网网络的路由器,要向每个网络转发一个组播包的副本(假设每个网络上至少有一个预订了该组播地址)。泛播地址与组播地址类似,同样是多个节点共享一个泛播地址,不同的是,只有一个节点期待接收给泛播地址的数据报。泛播对提供某些类型的服务特别有用,尤其是对于客户机和服务器之间不需要有特定关系的一些服务,例如域名服务器和时间服务器。名字服务器就是个名字服务器,不论远近都应该工作得一样好。同样,一个近的时间服务器,从准确性来说,更为可取。因此当一个主机为了获取信息,发出请求到泛播地址,响应的应该是与该泛播地址相关联的最近的服务器。
        泛播地址的分配及其格式
泛播地址被分配在正常的IPv6单播地址空间以外。因为泛播地址在形式上与单播地址无法区分开,一个泛播地址的每个成员,必须显式地加以配置,以便识别泛播地址。
        泛播选路
了解如何为一个单播包确定路由,必须从指定单个单播地址的一组主机中提取最低的公共选路命名符。即,它们必定有某些公共的网络地址号,并且其前缀定义了所有泛播节点存在的地区。比如一个I S P可能要求它的每一个用户机构提供一个时间服务器,这些时间服务器共享单个泛播地址。在这种情况下,定义泛播地区的前缀,被分配给ISP作再分发用。发生在该地区中的选路是由共享泛播地址的主机的分发来定义的。在该地区中,一个泛播地址必定带有一个选路项:该选路项包括一些指针,指向共享该泛播地址的所有节点的网络接口。上述情况下,地区限定在有限范围内。泛播主机也可能分散在全球Internet 上,如果是这种情况的话,那么泛播地址必须添加到遍及世界的所有路由表上。 

 

抱歉!评论已关闭.