首页 > 范文大全 > 正文

IPv6穿越隧道

隧道技术为互联网提供了方便高效的从IPv4地址转换到ipv6地址的过渡手段。

目前全球仅剩10亿个可用的IPv4地址。根据现行的地址分配政策和地址消耗进度,预估到2012年3月,全球IPv4地址将会消耗完毕。而当前互联网上几乎所有的应用都是构建在IPv4上,要全面转换成IPv6,不是一朝一夕之功,而是一个长期渐进的过程。IPv4和IPv6在报文结构、报文字段意义以及地址配置诸多方面都有显著的不同,这给从IPv4到IPv6过渡时期Internet的运作,带来了极大的困难。怎样最方便、最有效地实现IPv4向IPv6的过渡,是一个非常值得探讨的话题。

隧道技术

在IPv6网络彻底代替IPv4网络之前,总是有一些网络首先具有IPv6的协议栈。一般来说,在过渡前期,我们往往把这些网络比做IPv4海洋中的IPv6小岛。过渡的问题可以因此分成两大类:第一类是解决这些IPv6小岛之间互相通信的问题;第二类是解决IPv6小岛与IPv4的海洋之间通信的问题。对应这两大解决过渡问题的基本技术主要有三种(表1):双协议栈、隧道技术和IPv4/IPv6协议翻译转换。

IPv6/IPv4 隧道技术的目的是利用现有的IPv4设施来为IPv6主机服务,使得各个分散的IPv6“孤岛”可以跨越IPv4网络相互通信。在IPv6封包通过IPv4网络时,无论哪种隧道机制都是使用了一个“封包――拆包”过程,即处于发送端的隧道端点将该IPv6封包封装在IPv4包中,将此IPv6包视为IPv4的负载数据,并将该IPv4包头的协议字段设置为41,以说明该IPv4封包的负载是一个IPv6封装包,然后在IPv4网络上传送该封装包。当协议字段标为41的IPv4封装包到达处于接收端的Tunnel端点时,该端点拆掉封装包的IPv4包头,取出IPv6封装包继续处理。

在对IPv6包进行IPv4封装时如何确定该IPv4包的源和目的地址是封装的关键问题,现存的IPv6/IPv4 隧道机制的主要区别就在于如何确定IPv4封包的地址。

手工配置隧道

手工配置隧道(Configured Tunnel)是一种端到端的机制,需要隧道两端的管理员协同工作来完成隧道的建立。管理员对隧道两端进行配置时,首先应为隧道接口指定两端的IPv4地址,对在此隧道上传递的所有IPv6包进行IPv4封装时,都要从这一配置信息中提取源和目的IPv4地址。其次管理员要设置必要的路由信息,用以决定哪些IPv6包要经过隧道传递。

由于手工配置隧道是IPv6支持的第一个过渡机制,所以在目前被广泛地支持。这种机制不强制要求使用隧道的主机IPv6地址中包含某种固定信息,地址的使用比较灵活。

但这种方式的缺点是,人工配置的隧道两端IPv6地址和IPv4地址都需要事先经过协商和设定,才能完成两端的隧道配置,这给网络管理人员带来了极大的负担。手工配置的人工工作量大(每天要处理上万条隧道),导致效率低下,并且容易出现差错。

为了简化建立隧道的工作量,尤其是隧道服务器端的工作量,隧道模型被提出。隧道系统提供一种简化配置隧道的机制,可以减少繁重的隧道配置工作。隧道的思想就是提供专用的服务器作为隧道,自动地管理用户发出的隧道请求。用户通过隧道能够方便地和IPv6网络建立隧道连接,从而访问外部可用的IPv6资源。

隧道过渡机制在IPv6早期吸引了更多的IPv6使用者,使他们能方便快捷地实现IPv6连接,同时也为早期的IPv6提供商提供了一种简便快捷的接入方式。

自动配置隧道

自动配置隧道(Automatic Tunnel)需要静态建立双向的隧道,配置隧道的一方不需要与其他方协同。系统建立隧道的接口或者在IPv6地址中包含IPv4地址信息,这样在隧道对IPv6包进行封装时可以从IPv6地址中提取IPv4地址,并填写IPv4包头; 或者提供一种IPv4寻址方式,利用寻址技术得到对端的IPv4地址。目前常用的自动隧道技术有以下5种。

利用IPv4兼容地址的自动隧道技术: 自动隧道能够完成点到多点的连接,这是它的特点。而手动隧道仅仅是点到点的连接。IPv4兼容IPv6自动隧道这种技术能够使隧道自动生成。我们知道,一个隧道需要有一个起点和一个终点,起点和终点确定了以后,那么隧道也就可以确定了。在IPv4兼容IPv6自动隧道中,我们仅仅需要告诉设备隧道的起点,隧道的终点由设备自动生成。为了实现设备自动产生终点的目的,IPv4兼容IPv6自动隧道需要使用一种特殊的地址:IPv4兼容IPv6地址。

6over4技术: 利用IPv4组播机制实现虚拟链路,自动建立隧道的机制。使用这种机制的接口利用RFC2461中提出的ND(Neighbor Discovery)协议进行寻址,当需要对一个IPv6包进行封装时,IPv6层发送ND请求报文对目的IPv6地址进行寻址,6over4接口将ND请求报文封装一个IGMP头后发送到IPv4组播域; 在该组播域中如果有另一个6over4接口拥有被请求的IPv6地址,则该接口以同样的方式发出包含其IPv4地址的ND应答报文,查询接口收到该ND应答后就可以从中得到目的接口的IPv4地址。

6to4技术: 使用这种机制的接口需要使用6to4地址,其前缀格式为: 2002:IPv4 Addr::/48。这种机制需要对两类路由器进行配置,这两类路由器分别是: (1) 6to4路由器(6to4 Router),作为一个IPv6域的出口路由器,其外出接口为6to4接口; (2) 6to4中继路由器(6to4 Relay Router),作为多个6to4 Router的中继的6to4 Router,通常可以将6to4 Router的缺省路由设置为一个6to4中继路由,通过在这个中继路由器中设置相应的路由信息来连接多个IPv6域。

ISATAP(Intra-Site Automatic Tunnel Addressing Protocol)技术: 它是一种站内自动隧道协议。利用ISATAP服务器分配ISATAP前缀。域内主机利用ISATAP接口获得该前缀,组成ISATAP地址前缀: 5EFE:IPv4 addr/64。

Teredo技术: Teredo 是一项地址分配和自动隧道技术,能够跨越IPv4 Internet 实现 IPv6 单播连接。它将IPv6数据包封装在UDP/IPv4数据包中传送。使用特殊的地址格式,除了固定的Teredo前缀外,还将Teredo服务器IPv4地址、客户端的公共IPv4地址以及UDP端口插入IPv6地址中。

表2 详细比较了几种主要隧道方式的特点。其中,IPv4兼容地址的自动隧道并不实用,已逐渐淘汰; 6over4机制由于要求在IPv4网络中支持组播功能,而目前大多数网络均没有布置组播功能,因此在实际应用中很少被利用; 6to4隧道是IETF较为重视、并得到深入研究、有广阔应用前景的一种; 而ISATAP和Teredo由于针对小型边缘网络特定问题提出的解决方案,当前也受到重视,研究和运用。