技术前沿应用: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由于针对小型边缘网络特定问题提出的解决方案,当前也受到重视,研究和运用。

posted @ 2009-11-03 16:09  远方  阅读(557)  评论(0编辑  收藏  举报