完整版锐捷IPv6过渡技术白皮书Word文件下载.docx
《完整版锐捷IPv6过渡技术白皮书Word文件下载.docx》由会员分享,可在线阅读,更多相关《完整版锐捷IPv6过渡技术白皮书Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
Intra-SiteAutomaticTunnelAddressingProtocol
站点内自动隧道寻址协议
NAT-PT
NetworkAddressTranslation–ProtocolTranslation
网络地址转换-协议转换
6PE
IPv6ProviderEdgeRouter
IPv6运营商边缘路由器
OSPF
OpenShortestPathFirst
开放最短路径优先
EoMPLS
Ethernet-over-MPLS
MPLS之上的以太网
VPLS
VirtualPrivateLANService
虚拟专用LAN服务
NBMA
NonBroadcastMultiaccess
非广播多路访问网络
DSTM
DualStackTransitionMechanismt
双协议栈过渡机制
2前言
作为IP通信发展过程中的一个演进步骤。
IPv6根植于IPv4的基本概念,它是从IPv4运营经验中产生的。
在多年处理IPv4网络之后,地址短缺的危机给了人们一个重新审视IPv4的机会,于是人们开始思考情况如何能够得到改善,新的用来替代IPv4的协议有哪些我们可以期待的东西,同时也思考着如何在现实的环境中去实现和部署这些激动人心的特性。
然而IPv4以往的成功和现实的经济利益最终成为了人们推动IPv6发展的巨大惰性和障碍,除非Internet出现颠覆性的应用,否则未来Internet的实现都将是如下的图景:
少量运行IPv6协议设备的小网络“孤岛”,以及大量运行IPv4协议的设备组成的“海洋”。
基于这样的现实的考虑,作为过渡时期的必然选择,诸如隧道机制(自动和手动),MPLS之上的IPv6(6PE),4over6以及地址转换机制(NAT-PT)等过渡方案便被设计了出来,用来解决IPv6和IPv4之间的共存和过渡问题。
3技术简介
3.1IPv4/IPv6双协议栈
3.1.1双协议栈
双协议栈是指在终端设备和网络节点上同时安装IPv4和IPv6的协议栈,用于实现IPv4和IPv6的节点间的通信。
一个典型的IPv4/IPv6双协议栈结构如图2.1所示。
在以太网中,数据报头的协议字段使用0x86dd和0x0800来区分所采用的上层协议是IPv6还是IPv4。
图2.1IPv4/IPv6双协议栈结构
双协议栈的工作机制大致过程如下:
1.链路层解析出接收到的数据包的数据段,拆开并检查报头。
2.如果IP包的版本号是4,该包就由IPv4的协议栈来处理;
如果版本是6,则由IPv6的协议栈处理。
IPv4/IPv6双协议栈的工作过程如图2.2所示。
图2.2支持IPv4和IPv6的双协议栈应用
对于IPv6节点与IPv4节点之间的互通,双协议栈机制是最直接和最简单的方式。
但是双协议栈的使用增加了设备的内存消耗,提高了CPU使用率,会导致设备性能的下降。
由于需要同时部署IPv4和IPv6的路由基础设施,使用双协议栈的过渡方式也会为网络增加复杂度。
3.1.2DSTM
DSTM(DualStackTransitionMechanism)用于解决IPv6主机与IPv4主机之间的互通问题,为IPv6节点提供一个获取IPv4地址的方法,从而使其能够实现与IPv4节点互通。
通过使用IPv4overIPv6隧道(如GRE或者4over6等隧道机制),DSTM技术能够实现IPv4网络之间的流量经由纯IPv6网络的传输。
图2.3DSTM意示图
DSTM机制包括以下几个功能组件:
1.DSTM服务器:
为IPv6网络中的DSTM节点分配一个临时的IPv4地址,维护分配的IPv4地址与IPv6地址之间的映射,同时提供IPv6隧道末端(TEP网关)的信息;
2.DSTM节点:
双地址族主机,执行IPv4overIPv6隧道的封装/解封装操作;
3.DSTMTEP(网关):
IPv4/IPv4双地址族边界路由器
DSTM主机要与IPv4主机通信的大致过程如下:
1.DSTM主机向DSTM服务器请求一个临时的IPv4地址,DSTM服务器将IPv4地址及DSTM隧道末端信息发送给DSTM主机。
2.DSTM主机使用IPv6封装IPv4报文并通过IPv4overIPv6隧道转发给DSTMTEP。
3.TEP网关将接收到的IPv6报文解封装,建立相关的IPv4地址与IPv6地址的映射表项,然后查询IPv4路由表,并将IPv4报文转发给IPv4主机。
4.IPv4主机接收到DSTM的报文后,根据接收到的报文的源IPv4地址发回响应的IPv4报文。
5.DSTMTEP根据已有的IPv4和IPv6映射表项,对IPv4主机响应的IPv4报文执行IPv6封装,查询路由表,并报文转发给DSTM主机。
由于对网络和应用层透明,DSTM机制使得IPv4的应用不需要进行修改就能直接运行在IPv6主机上、也不需要对IPv4进行任何管理。
但是DSTM技术还没有成熟,其在安全方面还存在诸多的许多问题。
3.2隧道技术
在IPv4/IPv6海洋中,为了实现IPv6/IPv4网络之间的互通,隧道机制是最常采用的一种手段。
如图2.4所示,隧道技术通常部署在IPv6网络与IPv4网络边界的隧道入口处,经由边界双栈路由器将IPv6/IPv4的数据分组封装入隧道分组,并基于封装协议即IPv4/IPv6目的地址转发报文到隧道终点。
在隧道的出口处拆封隧道分组并剥离出IPv6数据包。
具体的隧道分组形式依据隧道的实际实现方式,如IPV4隧道或MPLS隧道的不同,而采用不同的封装格式。
图2.4IPv6overIPv4隧道
3.2.1IPv4隧道之上的IPv6
如图2.3所示,IPv4隧道之上的IPv6是通过对IPv6报文执行IPv4封装,使得IPv6报文能够穿越IPv4网络的一种机制,用于实现隔离的IPv6网络的互通。
IPv4隧道之上的IPv6对报文的处理流程大致如下:
1.IPv6网络中的设备发送IPv6报文,到达隧道的源端设备。
2.隧道的源端设备根据路由表判定该报文需要通过隧道进行转发,在IPv6报文前封装上IPv4报文头,并通过隧道的实际物理接口将报文转发出去。
3.封装报文通过隧道到达隧道目的端设备,目的端设备判断该封装报文的目的地是本设备后,将对报文进行解封装。
4.目的端设备根据解封装后的IPv6报文的目的地址将报文进行转发;
如果目的地就是本设备,则将IPv6报文转给上层协议处理。
通常IPv4隧道之上的IPv6过渡方案可分为人工隧道和自动隧道两种实现方式,人工隧道包括MCT和GRE两种类型,而自动隧道机制则主要包括6to4,ISATAP两种类型。
3.2.2人工隧道
人工配置的隧道是最早为IPv6开发的过渡机制之一,目前包括MCT和GRE两种人工建立隧道的方式。
手动隧道
MCT(手动隧道)是一条静态的,点到点的人工隧道,起始和终结IPv4/IPv6双栈端点。
隧道的源和目的地址是手工指定的,为两个IPv4/IPv6边界路由器之间为IPv6孤岛网络提供连接。
图2.5显示了在IPv4地址为200.15.15.1的CPE与IPv4地址为200.13.13.1的IPv4/IPv6边界路由器之间建立的一条MCT隧道的情景。
其中隧道端点的IPv4地址,由IPv4域的路由协议进行分发,而隧道端点的IPv6地址则通过隧道接口的配置来指定。
图2.5MCT隧道
一个MCT隧道在边界路由器上以一个隧道接口的形式存在,当边界路由器从IPv6一侧收到IPv6报文后,将查找IPv6路由表,如果报文需要从隧道接口转发出去,则根据隧道接口配置的隧道源和目的IPv4地址进行封装。
封装后的报文通过IPv4网络转发到隧道终点,并进行解封装。
解封装后的报文则交由IPv6协议栈来处理。
由于MCT隧道是显式配置的,如果一个边界设备要与多个设备建立手工隧道,就需要在设备上配置多个隧道。
因此在需要规模扩展和管理的场景中,MCT并不适用。
MCT隧道比较适合于在长期不变的稳定拓扑中,只建立少数隧道的场合使用。
GRE封装的隧道
通用路由选择封装(GRE)隧道之上的IPv6(IPv6overIPv4GRE隧道)代表了人工配置隧道的另一种类型。
通过手工指定隧道的端点地址,并使用标准的GRE协议对IPv6报文进行封装,可实现IPv6/IPv4网络之间的流量在IPv4/IPv6基础设施之上传输。
GRE隧道的两端和MCT一样都是IPv4/IPv6双栈设备,通常为IPv4/IPv6边缘路由器。
在通过人工方式建立GRE隧道后,边缘路由器将IPv6流量进行IPv4封装,并通过IPv4网络进行转发。
在RFC2473和RFC1701规范中,GRE隧道封装具有一个额外的封装头部(GRE头部),带有被封装协议的协议类型,IPv6的类型为0x86DD。
图2.6为GRE隧道的一个配置实例。
图2.6GRE隧道
使用GRE协议,既可实现对IPv6报文封装,也实现对IPv4报文的封装。
图2.6中的IPv4Backbone如果换成是IPv6Backbone,而IPv6Network换成是IPv4Network,通过使用GRE隧道(GREIPv6)
,一样在IPv6基础设施上实现对IPv4网络报文的透传,既可实现IPv4OverIPv6.
GRE隧道是点到点隧道,需要手工指定目的端点IPv4地址,随着端点数量的增加,服务所需要的隧道也将增加,这使得GRE隧道方式存在和MCT同样的扩展性问题。
因此GRE隧道也主要用于边缘路由器-边缘路由器、主机-边缘路由器之间少量而稳定的连接。
3.2.3自动隧道
人工隧道的端点是手工指定的,而自动隧道的目的地址是根据穿越隧道的IPv6报文的目的地址计算得到的,不用预先配置。
ISATAP
随着IPv6技术的推广,现有的IPv4网络中将会出现越来越多的IPv6主机,相应的便出现了孤立IPv6主机之间如何通信的问题。
ISATAP隧道技术就是为了在这样的环境中,实现IPv6主机之间的通信而开发的。
由RFC4212规范的站点内自动隧道寻址机制(ISATAP)设计用来在IPv4站点内,提供一个简单易扩展的点到点自动隧道机制,用于解决孤立的IPv6节点的通信问题。
类似其他的隧道建立机制,ISATAP通过使用IP协议号41将IPv6报文封装在IPv4报文中。
ISATAP机制直接将IPv4基础设施看成一个NBMA(非广播多路访问)的链路层,将IPv4地址作为IPv6地址的接口ID,其操作的关键就在对ISATAP格式接口ID的使用上。
ISATAP隧道的自动建立,是靠在IPv6报文的目的地址的接口ID段中嵌入IPv4地址,并在IPv4/IPv6边界设备即ISATAP设备上读取该接口ID,自动计算出隧道终点的目的地址而实现的。
ISATAP地址格式为:
Prefix(64bit):
0:
5EFE:
IP-address如图2.7所示:
图2.7ISATAP地址格式
其中当IPv4地址是全局唯一时,u位置为1,否则u位为0。
g位是IEEE群体/个体标志。
64位的Prefix为任何合法的IPv6单播地址前缀,可通过ISATAP路由器发送请求而得来。
接口ID的高32是0000:
5EFE,由IANA分配;
其余的32位就是接口ID形式的IPv4地址,形式为a.b.c.d或者abcd:
efgh。
使用ISATAP隧道时,IPv6报文的目的地址和隧道接口的IPv6地址都要采用特殊的ISATAP地址。
通过这个嵌入的IPv4地址,就可以自动建立隧道,完成IPv6报文的传送。
典型的ISATAP隧道是应用在站点内部的,但ISATAP也可用于不同站点间的自动IPv6隧道。
ISATAP隧道能够用于一个站点内的路由器之间,路由器和主机之间,也可用于不同的主机之间。
图2.8给出了一个路由器和主机之间的ISATAP隧道实例。
图2.8
ISATAP隧道原理图
由于ISATAP不能穿越NAT设备,因而ISATAP方式的隧道多用于在一个企业网络或者运营商网络内部通常不需要处理NAT应用的场合。
在运营商处理宽带用户接入的情况下,由于NAT的存在,ISATAP隧道机制就不适用了。
当然也有例外,比如隧道是从CPE发起建立的,同时这些CPE有个能够在运营商内部路由的IPv4地址,这种情况下ISATAP仍然是一种很好的选择。
6to4隧道
6to4隧道由RFC3056定义,是一种点到多点的自动隧道机制。
和ISATAP机制一样,6to4隧道也使用特殊的6to4地址(如图2.9所示),不过该地址使用IPv4地址做为网络标识。
IPv4/IPv6边缘设备(6to4设备)能够通过读取分组的目的IPv6地址所内嵌的IPv4地址,来自动获得隧道端点的IPv4地址信息,从而实现在IPv4基础设施之上的自动隧道机制。
2.96to4地址格式
6to4地址格式为:
2002:
abcd:
efgh:
子网号:
:
接口ID/64,其中2002表示固定的IPv6地址前缀,abcd:
efgh表示该6to4隧道对应的32位全球唯一的IPv4源地址,用16进制表示(如1.1.1.1可以表示为0101:
0101)。
efgh之后的部分唯一标识了一个主机在6to4网络内的位置。
对于目的地址是6to4地址的报文(如图2.10所示),6to4路由器从报文的目的地址中提取出该内嵌的IPv4地址做为隧道的目的地址;
而对于IPv6报文的目的地址不是6to4地址,但下一跳是6to4地址的情况(如图2.11所示,对应6to4中继的情况),6to4路由器从下一跳地址中取出IPv4地址做为隧道的目的地址。
6to4自动隧道是通过Tunnel接口实现的,6to4隧道入口的IPv4地址通过手工配置来指定。
2.106to4隧道
6to4隧道只用于前缀为2002:
/16的6to4网络之间的通信。
为了实现6to4网络和其它前缀不在2002:
/16内IPv6网络的通信,必须有一台6to4路由器作为网关转发到IPv6网络的报文,这台路由器就叫做6to4中继(6to4relay)路由器。
如图2.11所示,6to4网络的边缘路由器通过配置静态路由或BGP协议,使得前往非2002:
:
/16前缀的下一跳地址指为6to4中继路由器的6to4地址,6to4路由器从下一跳地址中取出IPv4地址做为隧道的目的地址,将报文转发到6to4中继路由器,之后在再由6to4中继路由器将报文转发到其他IPv6前缀的网络上,从而实现6to4网络(地址前缀以2002开始)与前缀不在2002:
/16之内的IPv6网络的互通。
图2.11
6to4中继
在RFC3068中,6to4路由器可以使用缺省的6to4路由器任播地址2002:
c058:
6301:
到达最近的6to4中继路由器,这样就省掉了6to4路由器自己去定位最近的6to4中继路由器地址。
6to4隧道机制相比人工隧道有很多优势,如:
IPv4隧道端点不需要通告,隧道是无状态的,在6to4中继建立后,不需要为6to4站点提供额外配置等等。
但是6to4也有一些不利的地方,比如:
1.底层IPv4地址决定了6to4Ipv6地址前缀,因此在过渡到纯IPv6网络时,需要对网络进行重新编址。
2.当6to4站点内的主机有多个地址(6to4和纯IPv6地址)可选择的时候,它们必须选择6to4地址。
3.6to4隧道的部署可能会受限于静态或BGP4+路由选择。
3.2.4MPLS隧道之上的IPv6
MPLS是通常由ISP和大型企业部署的基础设施技术,主要用来实现VPN,流量工程,服务质量和快速汇聚等服务。
对于已经选择这项技术的ISP和企业而言,在其上部署基于MPLS隧道之上的IPv6服务,无疑是实现IPv6/IPv4过渡的最佳途径。
这是因为MPLS基础设施内置天然的隧道机制,能够无缝的传输IPv4和IPv6流量,而不需要对现有MPLS核心做修改。
6PE之上的IPv6
通过将IPv6网络视为一个独特的VPN网络,采用了与BGP/MPLSVPN类似的技术手段,6PE方案实现了MPLS基础设施之上的IPv6/IPv4服务之间的无缝过渡。
6PE主要包括如下机制:
1)LSP的设置,涉及IGP和标签分发协议
2)在IPv6/IPv4边缘路由器之间通过MP-BGP交换IPv6路由
3)MPLS转发机制,基于标签交换且独立与净荷
IPv6流量被隧道封装到LSP中,LSP是基于IPv4基础架构建立的,因而不会影响到核心路由器。
边缘路由器之间的LSP能够传输包括IPv6在内的任何类型分组,对于IPv6而言,前提是实现穿越MPLS骨干的IPv6路径和LSP的关联。
在6PE中,这种关联是由基于TCP传输IPv6地址的MP-BGP来实现的。
采用类似RFC2547bit的技术实现,MP-BGP将与给定前缀一起公布的下一跳和LSP关联起来,下一跳地址使用的是IPv4映射的IPv6地址(形如0:
FFFF:
IPv4,如图2.12所示)。
图2.12IPv4映射的IPv6地址
该IPv6地址由LSP隧道对端端点的IPv4地址构建而来。
如图2.13,一个简单的6PE拓扑,其中200.10.10.1和200.11.11.1之间建立了一条LSP,在PE1上下一跳:
200.10.10.1是IPv4映射的IPv6地址,该地址是从LSP隧道端点的IPv4地址200.10.10.1构建而来的。
基于IGP和LDP在MPLS基础设施上的路由和标签分发机制,IPv4地址200.10.10.1确定了用来到达前缀(2001:
200:
/64)的LSP。
图2.13
6PE组网图
对于已经部署MPLS基础设施的运营商和企业而言,由于6PE方案的配置都只涉及到PE设备,易于部署,且通过路由反射器等机制可实现很高的扩展性,使的6PE技术作为IPv6过渡机制是高效和低风险的,也是目前推荐部署的一种解决方案。
3.2.5IPv4overIPv6(4over6)
IPv6GRE隧道、DSTM等机制能够实现IPv4网络通过IPv6主干网的互联,但在实际应用中存在可扩展性差、协议机制复杂等问题。
清华大学在CNGI部署的实践过程中,有感于BGP/MPLSVPN在实现部署上的体现出的可扩展性和易维护性上的突出特点,采用类似的概念开发出了4over6隧道技术方案。
4over6隧道是通过MP-iBGP协议自动建立,不需要像其他自动隧道机制一样使用特殊规定的IPv6地址,对于大规模的隧道部署,同其他依赖与BGP的网络方案一样,可以通过使用路由器反射器和联盟等工具提高扩展性,易于部署。
4over6机制对MP-BGP协议进行扩展,在MP_REACH_NLRI/MP_UNREACH_NLRI属性中引入了一个新地址族—4over6地址族,其格式如图2.14所示:
图2.14PathattributeMP_REACH_NLRIinBGPUPDATEMessage
其中AFI=1,表示MP_REACH_NLRI携带的是IPv4路由信息,而SAFI=67表示MP_REACH_NLRI携带的是4over6IPv4地址族.NextHop字段为PE边界路由器的IPv6地址,也就是所谓的隧道端点信息。
NLRI字段携带则所要通告的IPv4前缀信息。
4over6隧道在机制上与上面介绍过6PE非常类似,在控制平面上都使用MP-BGP协议通告隧道信息,不过在6PE机制中,MP-iBGP通告IPv4+标签地址族可达信息,而在4over6环境中的MP-iBGP通告4over6地址族可达信息。
在转发平面上,6PE方案中的骨干网为MPLS核心网,于是使用MPLS标签来封装IPv4报文,而在4over6机制中,由于骨干网为纯IPv6网络,因而使用IPv6报头来封装IPv4报文。
6PE通过使用MP-iBGP协议通告隧道端点信息和IPv4前缀标签信息,结合骨干网上运行的LDP/RSVP等标签分发协议,在PE路由器之间建立无状态的LSP隧道,而4over6机制则通过MP-iBGP协议通告隧道端点信息和IPv4前缀信息,结合骨干网上运行的IPv6路由协议,建立无状态的IPv4overIPv6隧道。
采用4over6隧道机制,与MPLSVPN技术方案一样,CE和PE之间只需要运行普通IPv4路由协议或者IPv4静态路由,IPv6网络对CE设备及其后的网络来说是透明,CE设备并不知道IPv6骨干网的存在。
图2.15给出了一个4over6隧道的部署实例:
图2.154over6隧道部署实例
在实际的部署中,CNGI-CERNET2对4over6隧道进行了大量的测试,从测试的结果来看,各高校的IPv4网络之间不但能够通过CNGI-CERNET2实现互访,还能访问CERNET并经过CERNET进一步访问IPv4公网。
同时4over6路由器的部署并没有为CNGI-CERNET2带来额外的控制和管理开销。
3.2.6IPv6与IPv4互通技术
隧道技术用于了实现IPv4/IPv6基础设施之上的IPv6/IPv4节点之间的互通,而IPv6/IPv4互通技术则主要用于解决IPv4节点与IPv6节点之间的互连互通问题。
3.2.7地址转换(NAT-PT)
NAT-PT由SIIT(StatelessIP/ICMPTranslationAlgorithm)协议转换技术和动态地址翻译(NAT)技术结合和演进而来,分为静态和动态两种形式。
运行NAT-PT的设备一定是双协议栈的,同时在协议栈中还包括了3个特殊的扩展模块:
域名解析服务器、IPv4/IPv6地址映射器和IPv4/IPv6翻译器。
一个典型的NAT-PT系统如图2.16所示:
图2.16NAT-PT系统
NAT-PT设备作为IPv6/IPv4边界设备,通过协议转换来实现IPv6主机与IPv4主机之间的互通。
协议转换的目的是实现IPv4和IPv6协议头之间的转换;
地址转换则是为了让IPv6和IPv4网络中的主机能够互相识别到对方。
IPv4网络中的主机用一个IPv4地址标识IPv6网络中的一个主机,而IPv6网络中的主机用一个IPv6地址标识IPv4网络中的一个主机。
如图2.17所示,当一台IPv4主机要与IPv6主机通信时,NAT-PT从IPv4地址池中分配一个IPv4池地址标识IPv6对端。
在IPv4与IPv6主机通信的过程中,NAT-PT设备生成和维护IPv4池地址与IPv6主机之间的映射关系。
在NAT-PT中,使用ALG(应用层网关)对分组载荷中的IP地址进行格式转换。
图2.17NAT-