隨著互聯網技術的不斷發展,傳統的 IPv4 地址已不能滿足用戶的需要。新一代的 IPv6 協議也日益被廣泛的接受和使用,越來越多的軟件系統都要求支持 IPv6 網絡協議。然而現有網絡環境對 IPv6 的支持仍然非常有限,這給軟件的開發和測試都帶來了一定的困難。本文將介紹如何使用 Apache 在現有的 IPv4 網絡中構建模擬的 IPv6 環境。
在 Linux 平台及 IPv4 環境中構建 IPv6 測試環境
一、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 的應用。
二、在 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。
圖 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 環境中正常運行。