在 Linux 平台及 IPv4 环境中构建 IPv6 测试环境

随着互联网技术的不断发展,传统的 IPv4 地址已不能满足用户的需要。新一代的 IPv6 协议也日益被广泛的接受和使用,越来越多的软件系统都要求支持 IPv6 网络协议。然而现有网络环境对 IPv6 的支持仍然非常有限,这给软件的开发和测试都带来了一定的困难。本文将介绍如何使用 Apache 在现有的 IPv4 网络中构建模拟的 IPv6 环境。

在 Linux 平台及 IPv4 环境中构建 IPv6 测试环境

1 IPv6简介

IPv6(Internet Protocol Version 6)作为 IPv4 的升级版本,它是作为一共软件升级安装在设备和

操作系统中。为什么需要使用 IPv6,一个最直接的答案就是目前广泛应用的 IPv4 已经无法提供足够的 IP 地址来满足迅速增长的网络。IPv4 采用32位地址长度,只有大约43亿个地址,很快就将被分配完毕。而 IPv6 采用128位的地址长度,几乎可以不受限制的提供地址。当然扩大地址空间只是 IPv6 的众多优势中的重要一项,除此之外,IPv6 还能够提高网络的整体吞吐量、改善服务质量(QoS)、安全性有更好的保证、支持即插即用和移动性、更好实现多播功能等等。

从1992年 IPNG 工作组成立,经历了十几年的发展,虽然 IPv6 离达到与 IPv4 相同的水平仍有距离,但已经有越来越多的支持 IPv6 的设备投入使用,越来越多的软件系统开始支持 IPv6。现在 IPv6 已经可以提供 DNS,Web,Email,Ftp,Telnet 等基本服务。Windows,Sun,Apple 等操作系统也都已经或即将支持 IPv6 协议。IBM 也一直致力于 IPv6 的发展,早在1997年 IBM 就发布了支持 IPv6 的 AIX。如今 DB2,Lotus,Rational,Tivoli 和 WebSphere 也都在逐步支持 IPv6 的应用。

2 在 IPv4 环境中模拟 IPv6 网络

正如上节中所述,目前许多与网络应用相关的软件已经加入了对 IPv6 的支持,更有大量的软件正在处于对 IPv6 支持的开发阶段。但是就开发而言,目前许多开发环境并没有对 IPv6 提供很好的支持,尤其当所开发的应用需要经过较老的路由甚至公共网络时。如果希望通过升级网络设备来支持开发环境,将是一笔不小的花费,有时甚至是不现实的(比如短期内升级公共网络支持 IPv6)。

研究如何在现有的 IPv4 网络环境中模拟出 IPv6 环境,使得开发和测试工作能够顺利进行,显得尤为重要。下面介绍一种在 Linux 平台上通过 Apache 服务器来模拟 IPv6 的 HTTP/HTTPS 网络开发测试环境。

2.1 IPv6 网络要求及现有的网络环境

图1显示了典型的 HTTP 网络应用,如果需要对这样的网络应用提供 IPv6 的支持,开发和测试人员可能会碰到如下三种情形:

客户端和服务器运行于同一个局域网中,如图1-a

客户端和服务器运行于同一个 Intranet 中,它们之间的网络通路需要经过路由,如图1-b

客户端和服务器分别处于不同的地域,它们之间由 Internet 提供连接,如图1-c。

在 Linux 平台及 IPv4 环境中构建 IPv6 测试环境

图 1. 三种典型的 HTTP 网络应用

在这三种不同的情形下,IPv6 的网络环境要求是不同的。对于情形1,只需客户端和服务器所运行的操作系统支持 IPv6 即可通过 IPv6 协议进行通信,若需要提供 Global 地址的通信,则可以通过在局域网内的某台机器上运行一个软件 IPv6 路由来支持,因此其针对 IPv6 的开发和测试相对简单。 对于情形2,由于客户端和服务器之间经过运行于 IP 层的路由,因此要求网络通路上经过的所有路由器均支持 IPv6。 这可能是一个不小的挑战,因为很多 Intranet 环境并没有提供支持 IPv6 的路由。对于情形3,这就要求 Internet 提供 IPv6的支持,就短期看来,Internet 提供全面的 IPv6 支持还不太可能。

因此,在情形2和情形3的环境中,网络硬件支持将成为开发和测试支持 IPv6 的网络应用程序的最大障碍,在2.2节中将给出如何运用现有的 IPv4 网络来进行 IPv6 应用程序的开发和测试,同时又保证其在真实的 IPv6 环境中正常运行。

相关推荐