Ipv4向Ipv6过渡的隧道技术

更新时间:2024-03-18 作者:用户投稿原创标记本站原创 点赞:25500 浏览:118620

摘 要 :如何完成从Ipv4向Ipv6的转换,是Ipv6发展需要解决的首要问题.Ipv6不可能立刻代替Ipv4,它们会共存相当一段时间,这就需要研究和设计有效的过渡机制,提供平稳的转换方式.该文详细研究了四种隧道技术:6to4隧道、6over4隧道、站内自动隧道寻址协议(ISATAP)、6PE隧道.

关 键 词 :隧道技术;6to4;6over4;ISATAP;6PE

中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)03-0539-02

目前Ipv6技术还没有普及,但越来越多的站点和网络已经开始使用Ipv6,要想实现Ipv4与Ipv6之间的通信,隧道技术便是解决这一问题的有效方案之一.隧道技术的基础内容是:如果Ipv6主机A希望与主机B进行Ipv6的通信,但是两者之间的网络却只支持Ipv4,这时,需要在A与B之间建立一条隧道.由隧道入口的双栈节点把Ipv6报文封装在Ipv4报文中,该Ipv4报文的源地址和目的地址分别是隧道的出口节点的Ipv4地址,当报文到达隧道的出口时再把Ipv4报文首部去掉,还原成Ipv6报文转发目的地.以下是四种具体的情况.

1 6to4隧道

6to4隧道是一种自动隧道机制,用于两个孤立的Ipv6站点之间跨越Ipv4网络实现通信,它的站点采用特殊的Ipv6地址,地址格式为:2002:公有Ipv4地址::/48,这种地址可以自动从站点的Ipv4地址派生得到,但使用6to4机制的节点必须具备至少一个公有Ipv4地址.除此之外,6to4要求隧道中至少有两台路由器支持双栈和6to4,主机要求支持Ipv6协议栈,6to4不会在Ipv4的路由表中引入新的条目,在Ipv6的路由表中只增加一条表项.

Ipv6报文必须被封装在Ipv4报文中,才能在6to4隧道中传输,报文的封装和解封装由隧道的虚拟接口完成,在创建隧道时,便会创建一个虚拟接口,逻辑上相当于一个独立的Ipv6接口.图一是两个站点的主机利用两个支持6to4技术的路由器穿越Ipv4网络进行通信的实例.


图1

检测设站点1的6to4路由器配有公有Ipv4地址120.53.69.123,站点2的6to4路由器配有公共Ipv4地址87.45.21.77.主机A构建Ipv6报文,源地址为本机的6to4地址(2002:7835:457B:1:ID_A),目的地址为主机B的6to4地址(2002:572D:154D:2:ID_B),通过查找路由表,匹配默认路由,下一跳为6to4路由器,于是报文从6to4虚接口转发.站点1的6to4路由器收到该报文后,查找路由表,须从6to4隧道虚接口转发,于是为其加上Ipv4首部,首部的Ipv4源地址从6to4隧道配置中得到,目的地址可以从Ipv6首部的目的地址提取得到,实际上源地址也就是隧道起点的Ipv4公有地址120.53.69.123,目的地址是隧道终点的Ipv4公有地址,封装后的Ipv4报文再转发至Ipv4网络.站点2的6to4路由器收到该报文后,通过Ipv4首部中的协议字段值41得知Ipv4数据部分封装了一个Ipv6报文,于是解封装成Ipv6报文,交由Ipv6协议栈处理,协议栈发现目的地址是一个6to4地址,通过查找相应Ipv6路由表,从相应端口转发至主机B.主机B成功收到该Ipv6报文,并进行相应处理.如果主机B对报文进行回复,反向的过程也是类似.

2 6over4隧道

6over4隧道也是一种自动隧道机制,相比于6to4隧道,6over4隧道要求Ipv4基础网络必须支持多播.6over4的专用地址格式,有一个合法的64位Ipv6单播地址前缀加上一个特殊的接口标识符::WWXX:YYZZ组成,此标识符是接口Ipv4地址的十六进制格式.例如一个Ipv4地址119.56.130.200,那么它的接口标识符为::7738:82C8.默认情况下,6over4双栈主机会为每个6over4主机生成一个,类似以下地址的,本地链路范围的6over4地址:FE80:: 7738:82C8.

基于6over4的隧道可以是主机到主机、主机到路由器、路由器到路由器和路由器到主机,这些主机和路由器都必须支持6over4 隧道机制.Ipv6分组在隧道中传输时将被封装上Ipv4多播地址,所有组播成员接受到隧道分组后移除Ipv4报头,然后再处理Ipv6分组.

3 ISATAP

ISATAP全称为“Intra-Site Automatic Tunnel Addressing Protocol”也是一种自动隧道协议.ISATAP机制需要使用特殊的地址格式,RFC定义的地址由一个合法的64位单播地址Ipv6前缀加上一个特定的ISATAP接口标识符组成.为了与其他站点的ISATAP主机通信,必须使用全局ISATAP地址(使用全局Ipv6单播前缀生成的ISATAP地址),格式为prefix::5EFE:w.x.y.z.

这里的ISATAP是双栈路由器,具有以下功能:

1)为不同的子网内的ISATAP主机转发报文,这里的子网即可以是Ipv4,也可以是Ipv6;

2)作为子网内所有ISATAP主机的默认路由;

3)为不同的逻辑子网通告不同的Ipv6地址前缀,子网内的ISPTAP主机使用前缀生成全球唯一的ISATAP地址;

当双栈主机或路由器收到一个Ipv4报文,并且目的地址是自己的单播地址或是加入的多播地址时,进一步检查报文首部的协议字段,如果是41,那么报文就是一个隧道封装报文,通过源和目的地址判断属于哪类隧道,如果有分段,还需处理分段重组,最后将Ipv4报文首部去掉,交付Ipv6协议层进行解析.

4 6PE

MPLS(MultIprotocol Label Switching,多协议标签交换)是一个被怎么写作提供商和大型企业广泛部署的网络互连技术,6PE对已经运行MPLS网络的运营商非常有吸引力,主要原因:

1)它不需要对骨干网的P路由器(不直接接用户,只在MPLS核心网中运行Ipv4和MPLS协议)进行升级,这样就能够减少运行成本和提高网络稳定性.

2)它只需要升级连接用户的边缘路由器(PE路由器),因而需要较少的维护以及实现网络的渐进式部署,并具有良好的可扩展性.

3)可以利用MPLS的转发能力,为Ipv6提供高级功能.

图2

图2所示Ipv6站点通过MPLS核心网进行通信.6PE路由器是一个双栈路由器,属于提供商边缘路由器,通过Ipv6接口与孤立的Ipv6站点链接,同时又通过Ipv4接口与MPLS核心网相连.6PE连接孤立的Ipv6站点,是通过Ipv4MPLS核心网的LSP来实现,因为,在MPLS网络中,数据的转发是基于LSP标签,而非传统Ip网络中基于Ip地址的查询.当6PE路由器从CE收到Ipv6路由信息时,使用BGP扩展协议与其他6PE路由器交换信息,同时为每一个Ipv6地址前缀分配绑定一个MPLS标签.

在整个通信过程中,用户Ipv6主机通过默认路由指向Ipv6站点的CE路由器,Ipv6站点内运行Ipv6内部网关协议,此时,在CE与6PE之间通过Ipv6外部网关协议或内部网关协议交换Ipv6路由信息,或者直接使用静态路由.当6PE与6PE之间建立MP-BGP邻居关系,跨越MPLS网络交换Ipv6路由信息并转发Ipv6数据报时,在MPLS网络内部通过Ipv4的内部网关协议建立Ipv4的路由可达性,并且运行Ipv4的标签分发协议来分发Ipv4标签.整个通信过程中,Ipv6报文经过的R路由器和CE路由器并不感知MPLS的存在,它们按照普通的Ipv6报文转发规则转发报文,应此6PE方案对这些设备是没有任何影响.

5结束语

在过渡阶段,隧道技术是使用最多的过渡技术,它具有透明性,使得通过隧道进行通行的两个主机感觉不到隧道的存在,它仅起到物理通道的作用,不需要专用链路和Ipv6专用路由器.但是,在Ipv4网络上配置Ipv6隧道的过程是比较麻烦的,它还存在跳数及MTU的限制,在隧道出入口处要考虑分段等问题,所以Ipv4向Ipv6过渡的隧道技术还有待于完善,最终将会使网络过渡到Ipv6的时代.