IPv6过渡技术之隧道随着IPv4地址的极度紧缺和Ipv6技术的日益成熟,Ipv6网络距离我们越来越近了.虽然在一些发在国家,IPv6网络已经有相当规模的部署,但是目前骨干网络仍是以IPv4网络为主.怕以若使不同地理区域的IPv6网络互通,特别是网络结构跨度很大的情况下,不可能在短期内把区域之间的网络设备全部升级到IPv6.因此,必须有一套机制来保证IPv6网络的孤岛间能够利用现有IPv4网络来实现通信.IETF专门成立了下一代网络过渡工作组.负责研究IPv4与IPv6的共存和互通问题,这个工作组推出了10多个RFC和20多个草案,其中主要有两种主流过渡技术:隧道技术和转换技术所有过渡技术都是基于IPv4/IPv6双栈实现的.本文的内容主要讨论隧道方面的过渡技术.双栈骨干网在双栈骨干网部署中,网络中的所有路由器均同时保持IPv4与IPv6协议堆栈。应用程序在使用IPv4或IPv6之间进行选择,并由应用程序按照IP业务负载的类型与通信的特定需要选择正确的地址。如今,双栈路由选择是具有需要两种协议的IPv4与IPv6组合应用程序网络基础架构的首选部署策略。然而,该策略却有若干限制:网络中的所有路由器必须升级到IPv6;路由器还需要双寻址方案、IPv4与IPv6选路协议的双重管理以及IPv4与IPv6两个选路表所需的足够存储空间。通过IPv4实现IPv6的隧道传输方法是在IPv4数据包内封装IPv6业务负载,通过IPv4骨干网进行发送(如图所示)。这使“孤岛状”IPv6终端系统和路由器能够通过现有IPv4基础架构进行通信。如同RFC2893所定义的那样,隧道的两个端点需要使用适当的IPv6和IPv4地址进行配置。坐落于端点的边缘路由器,通常为双栈路由器,将按照配置转发通过隧道的业务负载。过渡技术概述隧道技术介绍:1.本文档中介绍的隧道技术以IPv6inIpv4隧道技术为主2.大多的隧道技术基本思想都是一个加封装与解封装的过程,区别在于封装部分的不同,例如MPLS隧道封装的是标签,IPSEC隧道封装的IPSEC头部,而我们今天介绍的IPv6inIPv4隧道是通过在IPv6报文头上直接封装IPv4头部完成的.3.IPv6inIPv4隧道技术是将IPv的隧道当作为IPv6的虚链路,任何支持IPv4/IPv6双栈的节点都可以通过支持隧道技术来实现两两互通,它可应用在路由器--路由器,主机--主机,主机--路由器之间4.与其他的隧道封装技术相比,IPv6inIPv4隧道技术的优点有:实现简单,实用性强标准成熟技术门槛低,网络设备和主机不要支持其他的协议只需支持IPv4/v6双栈即可完成部署IPv6inIPv4隧道技术原理将IPv6数据报文封装上IPv4的报文头,通过隧道使IPv6报文穿越IPv4网络,实现隔离的IPv6网络间的互通.IPv4报头中的各字段:Headerlength:IPv4报头长度+IPv6报头长度+IPv6Data长度Protocol:0x41SourceAddress:做隧道封装的源IP地址DestimationAddress:做隧道封装的目的IPv4地址IPv6inIPv4隧道报文处理流程:1.IPv6报文到达隧道的源端设备2.隧道的源端设备查路由表判定该报文要通过入隧道转发.3.隧道的源端设备检查隧道配置(隧道类型,源地址和目的地址),在IPv6报文前封装IPv4报头,通过隧道的实现物理接口将报文转发出去.4.封装了IPv6报文的IPv4报文到达隧道目的端设备,目的端设备判断该封装报文的目的地是本设备后,对报文进行解封装后送IPv6协议栈处理.5.目的端设备根据解封装后IPv6报文的地址,查IPv6路由将报文进一步处理.目的端设备如何知道收到的IPv4报文是一个封装了IPv6的报文要送IPv6协议栈处理?查协议号0x41IPv6inIPv4隧道分类配置隧道IPv6手动隧道(RFC2893)GRE隧道自动隧道6to4隧道(RFC3056)ISATAP隧道(RFC4212)IPv4兼容IPv6自动隧道(RFC2893)6over4隧道(RFC2529)隧道代理(RFC3053)其他......手动隧道VS自动隧道手动隧道:顾名思义,它有于隧道封装的IP地址必须全部手动配置,它是一条点到点的链路自动隧道:用于隧道封装的目的地址不需要手动配置,隧道就可以正常工作,自动隧道是从IPv6报文的目的地址中直接或间接地自动获取IPv4地址来进行隧道封装的,有点到点(如ISATAP)和点到多点的链路(6to4).手动隧道上的链路本地地址,根据隧道上配置的源IPv4地址自动生成,格式为FE80::v4Addr隧道下没有MAC的概念,仅处理三层业务,隧道的源地址理念上可以指定为接口IP地址,接口从IP地址,环回口IP地址等.从安全性方面考虑,隧道应该在解封装前对报文的源,目的的IPv4地址进行合法性检查.手动隧道手动隧道是最简单的实现V6和V6网络互通的隧道技术,同时也是其他IP隧道技术的其他,手动隧道适用于比较成型的IPv6网络,目前应用最广的隧道技术优点实现比较简单支持组摠报文转发,可以在隧道上运行动态路由协议缺点网络变化则需要隧道配置也实时变化.配置IPv6手动隧道首先保证IPv4路由全网可达可以通过动态IPv6路由协议学习路由的方法代替手工配置静态路由,但不能运行ISISv6R1:ipv6unicast-routing开启IPv6单播,必须要打这条命令,否则IPv6不会启用interfaceloopback0ipv6address2000::1/64interfacef0/0ipaddress192.168.1.1noshutinterfcetunnel0定义一个隧道接口0ipv6address2002::1/64(手动配置时可以设置不同的网段,下面的OSPF需要同一网段)tunnelsource192.168.1.1隧道源IPv4地址,可以不在同一个网段tunneldestination10.1.1.1隧道目的IPv4地址tunnelmodeipv6ip隧道封装类型为IPv4IP(协议号为41)iproute10.1.1.0255.255.255.0192.168.1.2让tunnel接口状态为up的条件有3个:1.配置了tunnel接口的IP地址;2.配置了源地址和目的地址;3.源和目的地址之间要有可达的路由.R2:interfacef0/0ipaddress192.168.1.2255.255.255.0noshutinterfacef1/0ipaddres172.16.1.1255.255.255.0noshutiproute10.1.1.0255.255.255.0172.16.1.2R3:interfacef0/0ipaddress172.16.1.2255.255.255.0noshutinterfacef1/0ipaddress10.1.1.2255.255.255.0noshutiproute192.168.1.0255.255.255.0172.16.1.1R4:interfaceloopback0ipv62001::1/64interfacef0/0ipaddress10.1.1.1255.255.255.0noshutinterfacetunnel0ipv62002::2/64tunnelsource10.1.1.1tunneldestination192.168.1.1tunnelmodeipv6ipiproute192.168.1.0255.255.255.010.1.1.2在IPv6手动隧道运行路由协议---RIPng只要在隧道接口接口上启用RIPngR1:interfacetunnel0ipv6ripRIPoTUenableR2:interfacetunnel0ipv6ripRIPoTUenable在IPv6手动隧道运行路由协议---OSPFv3配置:r1:ipv6unicast-routingine1/0ipv6add2000::1/64noshipv6ospf1a0在接口上定义ospfv3属于哪个区域ipv6routerospf1启用ospfv3,必须手工定义路由器id,否则ospfv3不会启用router-id1.1.1.1r2:ipv6unicast-routingine1/0ipv6add2000::2/64noshipv6ospf1a0ine1/1ipadd192.168.1.1255.255.255.0noshipv6routerospf1router-id2.2.2.2intunnel0定义一个隧道接口0ipv6add2001::1/64隧道ipv6地址,必须和对端隧道ipv6地址属于同一网段(试验后,可以不同网段上)tunnelsource192.168.1.1隧道源ipv4地址,可以不在同一个网段tunneldestnation192.168.1.2隧道目的ipv4地址tunnelmodeipv6ip隧道类型为ipv6ipipv6ospf1a0r3:ipv6unicast-routingine1/0ipadd192.168.1.2255.255.255.0noshine1/1ipv6add2002::1/64noshipv6ospf1a0ipv6routerospf1router-id3.3.3.3intunnel0参考上面的说明ipv6add2001::2/64tunnelsource192.168.1.2tunneldestnation192.168.1.1tunnelmodeipv6ipipv6ospf1a0r4:ipv6unicast-routingipv6routerospf1router-id4.4.4.4ine1/0ipv6add2002::2/64noshipv6ospf1a0验证命令:showipv6route查看ipv6路由表查看r1路由表R1#showipv6roIPv6RoutingTable-8entriesCodes:C-Connected,L-Local,S-Static,R-RIP,B-BGPU-Per-userStaticrouteI1-ISISL1,I2-ISISL2,IA-ISISinterarea,IS-ISISsummaryO-OSPFintra,OI-OSPFinter,OE1-OSPFext1,OE2-OSPFext2ON1-OSPFNSSAext1,ON2-OSPFNSSAext2C2000::/64[0/0]via::,Ethernet1/0L2000::1/128[0/0]via::,Ethernet1/0O2001::/64[110/11121]viaFE80::C801:14FF:FE3C:1C,Ethernet1/0O2002::/64[110/11131]viaFE80::C801:14FF:FE3C:1C,Ethernet1/0C2012:5:19::/64[0/0]via::,Ethernet1/0L2012:5:19::1/128[0/0]via::,Ethernet1/0LFE80::/10[0/0]via::,Null0LFF00::/8[0/0]via::,Null0已经学到r4的路由和隧道接口的ipv6地址再ping,能够ping通就正常了R1#ping2002::2Typeescapesequencetoabort.Sending5,100-byteICMPEchosto2002::2,timeoutis2seconds:!!!!!Successrateis100percent(5/5),round-tripmin/avg/max=44/108/136ms在WindowsXP下配置IPv6手动隧道C:\ipv6ifcrv6v4100.1.1.2100.1.1.1xp提示Createdinterface7.C:\i