设计与实现由IPv4过渡到IPv6隧道的配置方案
Tushar M. Raste , D.B. Kulkarni
Department of Computer Science and Engineering, Walchand College of Engineering,Sangli, India
Received 14 January 2005; received in revised form 28 June 2006; accepted 28 June 2006
摘要:
在现有的IPv4互联网中配置IPv6网络时,IPv4到IPv6的过渡就成为一个必然的过程,在过渡期间两种协议将会在较长的时间内共存。以满足多方面的不同协议的需求,有许多种解决过渡问题的技术,隧道技术就是其中之一。隧道技术提供了一种以现有IPv4路由体系来传递IPv6数据的方法:将IPv6包作为无结构意义的数据,封装在IPv4包中,被IPv4网络传输。在本文里,我们将提出一种将IPv6包封装在IPv4包中的方案。当大部分网络转换成只涉及最小IPv4路由的IPv6网络时,此方案将会很有用处。
此种技术结合上双协议栈,便可实现IPv4与IPv6网络环境的互通以及与其他IPv4应用程序的相互作用,而无需修改和再编译,以及NAT,也不要任何代理与网关设置。
关键字:网络,Ipv4,Ipv6
1
1. 引言
在纯IPv6网络(Dunn,2002)中,最初的IPv6配置(Davies,2002)需要紧密成对使用IPv4地址来支持IPv4与IPV6之间的网络互连。其节点仍然需要与IPv4节点通信,但IPv4节点没有双IP层来支持IPv4与IPv6。这种机制基于IPv4到IPv6隧道的使用(Wang et al.,2001),以便在纯IPv6网络中支撑IPv4的通信。由于IPv4全局可用的路由地址空间正成为稀缺资源,人们认为用户应在其一部分网络中配置IPv6协议,以减少对IPv4协议的需求和依赖性。在这种前提下,辅助支持本地IPv4的同时,在很大程度上也增加了IPv6复杂的网络管理(IP地址计划,路由基础设施)。因此在这种情况下建议用户只配置IPv6网络。
当在一个网络中配置隧道技术时,节点同时具有分配的IPv4和IPv6地址。当一个IPv4应用程序需要在一个IPv6节点或另一个纯IPv4节点上与另一个IPv4应用程序建立通信时,隧道技术会被配置。这允许IPv6节点与纯IPv4节点通讯,或者纯IPv4应用程序在IPv6节点上不用修改而运行。这样在一个IPv6域中,IPv4包被隐藏于IPv6包中(Bound et al., 2000)。这样在网络中就只需要管理IPv6路由计划,即简化了网络管理。
2. IPv4栈的配置
只要能在本地的IPv6通讯,就不需要隧道技术机制的支持。主机能通过不同的方法检测到是否需要隧道技术:当在IPv4的目标地址查询到DNS分解器时;当一个应用程序打开一个IPv4套接字时;或者当一个IPv4包被发送到内核并且没有界面准备转发那个包(Bound et al., 2000)时。在需要发送第一个IPv4包时,客户端会获得一个TEP的IPv6地址(Affifi and Tountain,1999),此信息将用来配置4到6的界面。
隧道设定中重要的一步是为隧道创建一个虚拟的界面以及在IPv4节点的路由选择表中创建一个路由输入。这使得IPv4应用程序能够将IPv4包转入到隧道代码中。网滤器钩可用来探测是否需要在节点上安装这样一个隧道。
3. 网滤器钩
创建虚拟界面的需要可由网滤器钩来探测(Netfilter homopage; Chakeres)。可通过识别许多激发路由活动的事件的操作来使用网滤器。网滤器由在Linux协议栈中的不同点上的许多钩子构成。它允许用户定义的内
2