[基于隧道技术的IPv6网络平台实现]网络隧道技术
1 引言 随着Internet应用的迅猛发展,现在运行的因特网协议IPv4存在局限性逐渐被暴露出来,其中比较主要的是IPv4地址资源的耗尽和IPv4提供服务的局限性。另外因特网不断提出对移动性、安全性以及多媒体业务的支持等问题,IPv4都无法解决,这样就迫使我们必须引入下一代因特网协议――IPv6。随着CERNET2的开通,高校有必要建立IPv6的网络平台,用比较快捷的方式接入IPv6实验网,为以后IPv4到IPv6的平滑过渡做准备。
2 IPv6网络平台的关键过渡技术
在不改变现有IPv4网络结构的情况下,IPv6网络间的通讯方式主要有以下三种方式:
(1)双协议栈技术
IPv6的网络中的主机同时运行IPv4和IPv6两套协议栈,并且要求整个网络支持这两套协议。该技术是其他过渡技术的基础。
(2)网络地址转换/协议转换技术(Network Address Translation -Protocol Translation)
利用转换网关来在IPv4和IPv6网络之间转换IP报头的地址,同时根据协议不同对分组做相应的语义翻译,从而使纯IPv4和纯IPv6站点之间能够透明通信。
(3) 隧道技术
这种机制用来在IPv4网络之上连接IPv6的站点,站点可以是一台主机,也可以是多个主机。隧道技术思想比较简单,在隧道的入口处,路由器将IPv6的数据分组封装入IPv4中,IPv4分组的源地址和目的地址分别是隧道入口和出口的IPv4地址。在隧道的出口处再将IPv6分组取出转发给目的站点。隧道技术只要求在隧道的入口和出口处进行修改,对其他部分没有要求。IPv4隧道技术示意图如图1所示:
根据封装/解封装操作发生位置的不同,隧道可以分为四种:
①路由器到路由器 ( Router-to-Router )
②主机到路由器 ( Host-to-Router )
③主机到主机 ( Host-to-Host )
④路由器到主机 ( Router-to-Host )
根据建立方式的不同,隧道又可以分成两类:手工配置的隧道 ( Configured Tunnel )和自动配置的隧道 ( Auto-configured Tunnel ) 。
由于IPv6是逐步发展的,因此网络过渡方案的采用也呈现出一定的阶段性。在发展初期,业务量较小,此时主要偏重于IPv6实验,因此主要采用隧道技术。在IPv6示范网中,我们直接利用操作系统对隧道技术的支持,以手工配置隧道的方式将校园网中IPv6的主机接入了IPv6示范网的主干。
3 IPv6网络平台的实现
3.1 操作系统的选择
Linux是一个开放的操作系统,其内核版本从2.2开始支持IPv6协议。我们在实验中采用的是Linux Kernel 2.4.20-8版本,它对IPv6有了比较全面的支持。同时对网络应用也提供了比较稳健的支持。拥有丰富的支持IPv6协议的软件,像Web服务器Apache,DNS服务器Bind等。所以,在IPv6网络平台的实现过程中,选择Linux操作系统是一个比较理想的选择。下面的实验平台是以RedHat9.0为例。
3.2 平台的设计
针对目前的网络状况,采用“IPv6 Over IPv4”的隧道链接。IPv6子网的主机通过边缘路由器接入CERNET2实验网,其它的IPv6主机通过隧道链路进行通讯。图2是山东农大构建的IPv6网络平台拓扑图。
该平台目前有4台PC机和一台交换机构成,其中主机A是Linux主机安装了两块网卡,并且作为服务器,相当于一个边界路由器。主机B是DNS服务器和应用服务器,同时为方便测试设置了两台纯IPv6终端主机C和D,并且安装了不同的操作系统。
3.3 配置实现
3.3.1地址规划
如图2,首先要为主机设定IP地址。作为例子,主机A:IPv4地址为192.168.168.2,IPv6地址为2001:250:5800:ff01::2;主机B:IPv4地址为192.168.168.1,IPv6地址为2001:250:5800:ff01::1;为方便测试,主机C:IPv6地址为2001:250:5800:ff01::3;主机D:IPv6地址为2001:250:5800:ff01::4。假设两端的IPv4地址已经配置完成,两端的IPv4是连通的,否则隧道将无法启动。
3.3.2配置方法(以服务器主机A为例)
(1)启用IPv6modprobe ipv6
(2)网络配置文件 包括一组同时可用于IPv4地址格式和IPv6地址格式初始化文件和脚本文件,还包括域名的设置。例如在/etc/sysconfig/Network脚本中加入条目:
NETWORKING_IPV6=yes
IPV6INIT=yes
IPV6FORWARDING=yes
IPV6AUTOCONF=no
(3)硬件配置文件
修改网卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0,添加如下条目:
IPV6INIT=yes
IPV6ADDR=2001:250:5800:ff01::2
创建隧道链路Linux系统下6to4隧道统一采用关键字sit来标识,例如:sit1,sit2,它们分别标识一个隧道虚拟设备。手工隧道的配置使用ifconfig来实现。这里直接创建配置文件。
创建并配置文件 /etc/sysconfig/network-scripts/ifcfg-sit1,加入如下配置:
BOOTPROTO=none
ONBOOT=yes
IPV6INIT=yes
IPV6TUNNELIPV4=219.243.209.193(这里是山大提供的隧道地址)
IPV6ADDR=2001:250:5800:ff01::2/64
隧道另一侧的配置完全对称。然后利用命令/sbin/ifup-sit sit1启动该隧道。
(4)默认路由的设置
由于目前的需求不大,连入的主机数量不多,我们采用了静态路由策略,可以随时转换到动态路由上去。配置如下:
全局路由/sbin/route-inet6 add 2001::/3
其他链接到主机A的用户就可以访问到山大从而出国。
/sbin/ip-6 route ::/0 dev sit1
(5)结果测试
建立隧道链接后,分别连接主机A和山大,并且通过ping6来测试他们之间是否通讯,同时测试是否可以访问其他前缀地址的主机。从主机A ping6山大端IPv6地址或其他前缀的IPv6主机。ping6-c 6-s 255 2001:da8:1:ff::1 得到结果如图3 所示:
4 结束语
IPv6是构建可靠、安全和高效的新IP网络的长期解决方案。了解IPv4向IPv6网络演进过渡策略,对于制定网络长期发展规划和开展应用的方向都是非常重要的。该实验网已经成功地连接到CERNET2实验网,目前运行比较稳定,运行的业务主要有WWW服务、DNS服务等。该网络平台的建立,也可以为校园网向下一代网络过渡提供了一个可行的参考方案。
参考文献
[1]华为3Com技术有限公司.IPv6技术. 北京:清华大学出版社,2004.
[2]章韵. 网络隧道技术的原理和应用. 江苏通讯技术,2001.
[3]邓旭,孙亚民. IPV4向IPV6迁移技术研究. 南京理工大学学报,2002.
[4] Pete Ldshin. IPv6详解.机械工业出版社,2000.