1.4 下一代网际协议IPv6

1.4.1 IPv6简介

IPv6(Internet Protocol Version 6,Internet协议第六版)是IETF(Internet Engineering Task Force)负责设计的下一代网际协议,于1995年1月正式公布,研究修订后于1999年确定开始部署。

IPv6是为了解决IPv4的地址不足等一些问题而提出的。与IPv4相比,除了保留IPv4获得成功的一些性质外,IPv6还具有如下主要特性:

① 近乎无限的地址空间。IPv6采用128位地址长度,地址总数约有2128个,几乎可以不受限制地提供IP地址,从而确保了端到端连接的可能性。

② 提高了网络的整体吞吐量。由于IPv6的数据包可以远远超过64 KB,应用程序可以利用最大传输单元(MTU),获得更快、更可靠的数据传输。同时,IPv6对数据报头进行了简化,由40字节定长的基本报头和多个扩展报头构成。使路由器加快数据包处理速率,提高了转发效率,从而提高网络的整体吞吐量。

③ 整个服务质量得到很大改善。报头中的业务级别和流标记通过路由器的配置可以实现优先级控制和QoS保障,从而极大改善了IPv6的服务质量。

④ 安全性有了更好的保证。采用IPSec可以为上层协议和应用提供有效的端到端安全保证,能提高在路由器水平上的安全性。

⑤ 支持即插即用和移动性。设备接入网络时通过自动配置可自动获取IP地址和必要的参数,实现即插即用,简化了网络管理,易于支持移动节点。而且,IPv6不仅从IPv4中借鉴了许多概念和术语,还定义了许多移动IPv6所需的新功能。

⑥ 更好地实现了组播功能。在IPv6的组播功能中增加了“范围”和“标志”,限定了路由范围和可以区分永久性与临时性地址,更有利于组播功能的实现。

1.4.2 IPv6报文格式

IPv6数据报文的格式如图1-11所示,每个IPv6数据报文都从基本首部(Base Header)开始,其后可允许有零个或多个扩展首部(Extension Header),再后面是数据。但要注意,所有的扩展首部都不属于IPv6数据报的首部。所有的扩展首部和数据合起来叫做数据报的有效载荷(Payload)或净载荷。

图1-11 IPv6报文格式

基本首部的长度为40字节,其格式如图1-12所示。

图1-12 IPv6基本报头格式

版本号:长度为4位,标识此数据报属哪个版本,IPv6的版本号为6。

优先级:长度为8位,为数据包赋予不同的类型或优先级,其值越大,数据越重要。

流标识:长度为20位,用来标识对传输质量有特殊要求的数据报。

有效载荷长度:长度为16位,指明除基本首部以外的字节数,其最大值是64KB。

下一个首部:长度为8位,指出紧跟当前首部的信息类型。

跳数限制:长度为8位,指明数据报传输过程中经过的跳数数目,最大为255跳。

源地址:长度为128位,指数据报的发送端的IP地址。

目的地址:长度为128位,指数据报的接收端的IP地址。

1.4.3 IPv6地址

(1)IPv6地址的表示方法

IPv6采用冒分十六进制数表示法(Colon Hexadecimal Notation),每16位为1小节,用十六进制数表示,各小节之间用冒号分隔,如68E6:8C64:FFFF:FFFF:0000:1180:960A:FFFF。

冒分十六进制数表示法包含两种技术:一是允许零压缩,即连续的零可以用一对冒号取代,如FF05:0:0:0:0:0:0:B3可以写成FF05::B3;二是与IPv4地址的CIDR表示法类似的地址前缀,如12AB:0:0:CD30::/60,表示一个前缀为60位的网络地址空间,地址的其他部分为68位。这种技术在IPv4向IPv6过渡阶段用得较多。

(2)IPv6地址层次结构

与IPv4相比,IPv6的地址格式一个重要的变化是地址结构层次的变化。IPv4是二层地址结构——网络号和主机号;而IPv6的单播地址采用三层地址结构——全局已知公共拓扑、某个网点和某个网络接口。网点和网络接口指定了可以确认的实体,其中网点对应了一组计算机和网络,隐含着邻近的物理连接以及拥有设备的单个组织;网络接口为最低层,对应附属于计算机和网络的单个附件;公共拓扑(Public Topology)是最高层,在IPv6中没有具体定义,现在仅预想了两种类型——ISP(提供远程服务)和交换(Exchange)。

(3)IPv6的地址类型

在IPv6中,地址不是赋给某个节点,而是赋给节点上的具体接口。一般来讲,一个IPv6报文可以归纳为以下3种类型的地址。

① IPv6单播地址。IPv6单播(Unicast)地址用于标识单个接口,IP分组将选择一条最短路径到达目的接口,有多种地址格式,图1-13是其中的4种。

图1-13 IPv6单播地址格式

注册ID:n=5指出注册地址的机构。

提供者ID:m=变长,标识用户的ISP。

用户ID:o=变长,标识一个ISP的某个用户。

子网ID:p=变长,当用户有几个不同的子网时,表示其中的某一子网。

节点ID:定义连接到子网的单个节点接口。

基于提供者的单播地址为连网的主机提供全球唯一地址。本地链路单播地址限制在单个链路上,并且在自动地址配置、邻居发现或其他链路没有路由器时使用。本地场点单播地址限制在单个站点上,以便进行站点内部编址时不需要考虑全部前缀。IPv4兼容地址可以使IPv6分组封装在IPv4分组内,在IPv4路由器上传输,成为一个IPv4向IPv6过渡的策略。

单播地址0:0:0:0:0:0:0:1称为本地回路地址,节点可以使用这个地址给自己发送IPv6分组,以进行测试。

② IPv6任播地址。IPv6任播(Clusler)地址用于标识一组接口,该组接口可以属于不同的节点。IP分组只发送给其中的一个接口。其地址格式如图1-14所示。

图1-14 IPv6任播地址格式

③ IPv6组播地址。IPv6组播(Multicast)地址用于标识一组接口,该组接口可以属于不同的节点。IP分组将发送给使用该组播点地址的所有接口。其地址格式如图1-15所示。

图1-15 IPv6组播地址格式

标志:由3个0和1个T位组成。T=0表示一个永久分配的地址;T=1表示1个非永久地址。

范围:限制组播组的范围,即1为本地节点,2为本地链路,5为本地场点

组ID:标识给定范围内的一个组播组,可以是永久的,也可以是暂时的。

IPv6使用地址空间的扩充技术,使路由表减小地址构造和自动设定地址等技术。与IPv4相比路由数据可以减小一个数量级,并能提高安全保密性。在主机数目大量增加,决定数据传输路由的路由表不断加大,路由器的处理性能跟不上这种迅速增长的形势下,这些技术的使用,使Internet连接变得简单,而且使用容易。

(4)IPv6地址分配

RFC1881规定,IPv6地址空间的管理必须符合Internet团体的利益,必须是通过一个中心权威机构来分配。目前,这个权威机构就是IANA(Internet Assigned Numbers Authority,Internet分配号码权威机构)。IANA会根据IAB(Internet Architecture Board)和IEGS的建议来进行IPv6地址的分配。

目前,IANA已经委派以下三个地方组织来执行IPv6地址分配的任务:欧洲的RIPE-NCC(www.ripe.net),北美的INTERNIC(www.internic.net),亚太平洋地区的APNIC(www.apnic.net)。

1.4.4 从IPv4向IPv6的过渡技术

在IPv4向IPv6平滑过渡过程中有三个问题需要注意,一是如何充分利用现有的IPv4资源,节约成本并保护原使用者的利益;二是在实现网络设备互连互通的同时实现信息高效无缝传递;三是IPv4向IPv6的实现应该是逐步的和渐进的,而且尽可能简便。目前主要有三种解决过渡问题的基本技术:双协议栈、隧道技术、NAT-PT(网络地址/协议转换)。

双协议栈(dualstack,以下简称为“双栈”)技术是在指在终端设备和网络节点上既安装IPv4又安装IPv6的协议栈,从而实现使用IPv4或IPv6的节点间的信息互通。支持IPv4/IPv6双栈的路由器,作为核心层边缘设备支持向IPv6的平滑过渡。一个典型的IPv4/IPv6双协议栈结构如图1-16所示。在以太网中,数据报头的协议字段分别用值0x0800和0x86dd来区分所采用的是IPv6还是IPv4。

图1-16 IPv4/IPv6双协议栈结构

双栈方式的工作机制可以简单描述为:链路层解析出接收到的数据包的数据段,拆开并检查包头。如果IPv4/IPv6包头中的第一个字段,即IP包的版本号是4,该包就由IPv4的协议栈来处理;如果版本号是6,则由IPv6的协议栈处理。双栈方式的工作过程如图1-17所示。

图1-17 双栈方式的工作过程

双栈机制是使IPv6节点与IPv4节点兼容的最直接的方式,其互通性好,易于理解。但是双协议栈的使用将增加内存开销和CPU占用率,降低设备的性能,也不能解决地址紧缺问题。同时,由于需要双路由基础设施,这种方式反而增加了网络的复杂度。

隧道(tunneling)技术是在IPv6网络与IPv4网络之间的隧道入口处,由路由器将IPv6的数据分组封装到IPv4分组中。IPv4分组的源地址和目的地址分别是隧道入口和出口的IPv4地址。在隧道的出口处拆封IPv4分组并剥离出IPv6数据包。

根据隧道节点的组成情况,隧道可分为以下4种类型:路由器—路由器隧道、路由器—主机隧道、主机—主机隧道、主机—路由器隧道。在实践中,根据隧道建立的方式不同,隧道技术可分为:构造隧道、自动配置隧道、组播隧道和IPv6toIPv4隧道。

为简化隧道的配置,提供自动的配置手段,以提高配置隧道的扩展性,采用隧道代理(TB)。隧道代理的主要功能是:根据用户(双栈节点)的要求建立、更改和拆除隧道;在多个隧道服务器中选择一个作为TEP(Tunnel End Point)IPv6地址,以实现负载均衡;负责将用户的IPv6地址和名字信息存放到DNS(域名服务器)里,实现节点IPv6的域名解析。

从这个意义上说,TB可以看做一个虚拟的IPv6 ISP,为已经连接到IPv4网络上的用户即TB的客户提供了连接到IPv6网络的一种便捷方式。

NAT-PT(Network Address Translation-Protocol Translation,网络地址/协议转换)技术是SIIT(Stateless IP/ICMP Translation Algorithm)协议转换技术与IPv4网络中动态地址转换(NAT)技术的结合和改进。该技术适用于过渡的初始阶段,使得基于双协议栈的主机,能够运行IPv4与IPv6应用程序互相通信。该机制要求主机必须是双栈的,同时要在协议栈中插入3个特殊的扩展模块:域名解析服务器、IPv4/IPv6地址映射器和IPv4/IPv6翻译器。该技术又分为静态NAT-PT和动态NAT-PT两种。