青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Prayer

在一般中尋求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
級(jí)別: 中級(jí)

 

蔣 瑩瀅 (jiangyy@cn.ibm.com), 軟件工程師, IBM
殷 一鳴 (yinym@cn.ibm.com), 軟件工程師, IBM

2009 年 1 月 31 日

隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,傳統(tǒng)的 IPv4 地址已不能滿足用戶的需要。新一代的 IPv6 協(xié)議也日益被廣泛的接受和使用,越來越多的軟件系統(tǒng)都要求支持 IPv6 網(wǎng)絡(luò)協(xié)議。然而現(xiàn)有網(wǎng)絡(luò)環(huán)境對(duì) IPv6 的支持仍然非常有限,這給軟件的開發(fā)和測(cè)試都帶來了一定的困難。本文將介紹如何使用 Apache 在現(xiàn)有的 IPv4 網(wǎng)絡(luò)中構(gòu)建模擬的 IPv6 環(huán)境。

在 Linux 平臺(tái)及 IPv4 環(huán)境中構(gòu)建 IPv6 測(cè)試環(huán)境







1 IPv6簡(jiǎn)介

IPv6(Internet Protocol Version 6)作為 IPv4 的升級(jí)版本,它是作為一共軟件升級(jí)安裝在設(shè)備和
操作系統(tǒng)中。為什么需要使用 IPv6,一個(gè)最直接的答案就是目前廣泛應(yīng)用的 IPv4 已經(jīng)無法提供足夠的 IP 地址來滿足迅速增長(zhǎng)的網(wǎng)絡(luò)。IPv4 采用32位地址長(zhǎng)度,只有大約43億個(gè)地址,很快就將被分配完畢。而 IPv6 采用128位的地址長(zhǎng)度,幾乎可以不受限制的提供地址。當(dāng)然擴(kuò)大地址空間只是 IPv6 的眾多優(yōu)勢(shì)中的重要一項(xiàng),除此之外,IPv6 還能夠提高網(wǎng)絡(luò)的整體吞吐量、改善服務(wù)質(zhì)量(QoS)、安全性有更好的保證、支持即插即用和移動(dòng)性、更好實(shí)現(xiàn)多播功能等等。

從1992年 IPNG 工作組成立,經(jīng)歷了十幾年的發(fā)展,雖然 IPv6 離達(dá)到與 IPv4 相同的水平仍有距離,但已經(jīng)有越來越多的支持 IPv6 的設(shè)備投入使用,越來越多的軟件系統(tǒng)開始支持 IPv6。現(xiàn)在 IPv6 已經(jīng)可以提供 DNS,Web,Email,F(xiàn)tp,Telnet 等基本服務(wù)。Windows,Sun,Apple 等操作系統(tǒng)也都已經(jīng)或即將支持 IPv6 協(xié)議。IBM 也一直致力于 IPv6 的發(fā)展,早在1997年 IBM 就發(fā)布了支持 IPv6 的 AIX。如今 DB2,Lotus,Rational,Tivoli 和 WebSphere 也都在逐步支持 IPv6 的應(yīng)用。







2 在 IPv4 環(huán)境中模擬 IPv6 網(wǎng)絡(luò)

正如上節(jié)中所述,目前許多與網(wǎng)絡(luò)應(yīng)用相關(guān)的軟件已經(jīng)加入了對(duì) IPv6 的支持,更有大量的軟件正在處于對(duì) IPv6 支持的開發(fā)階段。但是就開發(fā)而言,目前許多開發(fā)環(huán)境并沒有對(duì) IPv6 提供很好的支持,尤其當(dāng)所開發(fā)的應(yīng)用需要經(jīng)過較老的路由甚至公共網(wǎng)絡(luò)時(shí)。如果希望通過升級(jí)網(wǎng)絡(luò)設(shè)備來支持開發(fā)環(huán)境,將是一筆不小的花費(fèi),有時(shí)甚至是不現(xiàn)實(shí)的(比如短期內(nèi)升級(jí)公共網(wǎng)絡(luò)支持 IPv6)。

研究如何在現(xiàn)有的 IPv4 網(wǎng)絡(luò)環(huán)境中模擬出 IPv6 環(huán)境,使得開發(fā)和測(cè)試工作能夠順利進(jìn)行,顯得尤為重要。下面介紹一種在 Linux 平臺(tái)上通過 Apache 服務(wù)器來模擬 IPv6 的 HTTP/HTTPS 網(wǎng)絡(luò)開發(fā)測(cè)試環(huán)境。

2.1 IPv6 網(wǎng)絡(luò)要求及現(xiàn)有的網(wǎng)絡(luò)環(huán)境

圖1顯示了典型的 HTTP 網(wǎng)絡(luò)應(yīng)用,如果需要對(duì)這樣的網(wǎng)絡(luò)應(yīng)用提供 IPv6 的支持,開發(fā)和測(cè)試人員可能會(huì)碰到如下三種情形:

客戶端和服務(wù)器運(yùn)行于同一個(gè)局域網(wǎng)中,如圖1-a

客戶端和服務(wù)器運(yùn)行于同一個(gè) Intranet 中,它們之間的網(wǎng)絡(luò)通路需要經(jīng)過路由,如圖1-b

客戶端和服務(wù)器分別處于不同的地域,它們之間由 Internet 提供連接,如圖1-c。


圖 1. 三種典型的 HTTP 網(wǎng)絡(luò)應(yīng)用
三種典型的 HTTP 網(wǎng)絡(luò)應(yīng)用

在這三種不同的情形下,IPv6 的網(wǎng)絡(luò)環(huán)境要求是不同的。對(duì)于情形1,只需客戶端和服務(wù)器所運(yùn)行的操作系統(tǒng)支持 IPv6 即可通過 IPv6 協(xié)議進(jìn)行通信,若需要提供 Global 地址的通信,則可以通過在局域網(wǎng)內(nèi)的某臺(tái)機(jī)器上運(yùn)行一個(gè)軟件 IPv6 路由來支持,因此其針對(duì) IPv6 的開發(fā)和測(cè)試相對(duì)簡(jiǎn)單。 對(duì)于情形2,由于客戶端和服務(wù)器之間經(jīng)過運(yùn)行于 IP 層的路由,因此要求網(wǎng)絡(luò)通路上經(jīng)過的所有路由器均支持 IPv6。 這可能是一個(gè)不小的挑戰(zhàn),因?yàn)楹芏?Intranet 環(huán)境并沒有提供支持 IPv6 的路由。對(duì)于情形3,這就要求 Internet 提供 IPv6的支持,就短期看來,Internet 提供全面的 IPv6 支持還不太可能。

因此,在情形2和情形3的環(huán)境中,網(wǎng)絡(luò)硬件支持將成為開發(fā)和測(cè)試支持 IPv6 的網(wǎng)絡(luò)應(yīng)用程序的最大障礙,在2.2節(jié)中將給出如何運(yùn)用現(xiàn)有的 IPv4 網(wǎng)絡(luò)來進(jìn)行 IPv6 應(yīng)用程序的開發(fā)和測(cè)試,同時(shí)又保證其在真實(shí)的 IPv6 環(huán)境中正常運(yùn)行。

2.2 利用現(xiàn)有 IPv4 網(wǎng)絡(luò)模擬 IPv6 環(huán)境

2.2.1 模擬環(huán)境構(gòu)建的基本原理

圖2 - 圖3顯示了 IPv6 模擬環(huán)境的框圖,這里存在兩種情形,但具體的配置是類似的。
對(duì)于開發(fā)客戶端 IPv6 應(yīng)用程序,其框圖如圖2;而對(duì)于開發(fā)服務(wù)器端 IPv6 應(yīng)用程序,其框圖如圖3。其基本原理就是利用代理技術(shù)將原來被 IPv4 網(wǎng)絡(luò)阻斷的客戶端或服務(wù)器端映射到位于同一局域網(wǎng)內(nèi)的代理服務(wù)器上,這樣“客戶端”與“服務(wù)器端”就可以進(jìn)行基于 IPv6 的網(wǎng)絡(luò)通信了。 在圖2中,我們需要代理服務(wù)器與客戶端運(yùn)行于同一局域網(wǎng)中,在客戶端看來,此代理服務(wù)器是一個(gè)具備了 IPv6 支持能力的“服務(wù)器”,即使真正的服務(wù)器端并沒有支持 IPv6 ,也可以進(jìn)行客戶端的開發(fā)和測(cè)試。在圖3中,我們需要一臺(tái)機(jī)器與服務(wù)器端運(yùn)行于同一局域網(wǎng)中,在服務(wù)器端看來,此代理服務(wù)器是一個(gè)具備了 IPv6 支持能力的“客戶端”。


圖 2. 利用代理將服務(wù)器端映射到與客戶端同一局域網(wǎng)內(nèi)
利用代理將服務(wù)器端映射到與客戶端同一局域網(wǎng)內(nèi)

圖 3. 利用代理將客戶端映射到與服務(wù)器端同一局域網(wǎng)內(nèi)
利用代理將客戶端映射到與服務(wù)器端同一局域網(wǎng)內(nèi)

下面僅以客戶端的IPv6環(huán)境為例來講述整個(gè)模擬環(huán)境的構(gòu)建過程。

2.2.2 環(huán)境的建立

操作系統(tǒng)平臺(tái): Linux,內(nèi)核需支持 IPv6,2.6以上版本最佳,

推薦使用 RedHat Enterprise Linux 5或SuSE Linux Enterprise Server 10

軟件: radvd(Router ADVertisement Daemon),
這是一個(gè)運(yùn)行于 Linux 平臺(tái)之上的提供 IPv6 路由配置信息的軟件,可以替代 IPv6 路由來進(jìn)行無狀態(tài)的地址自動(dòng)配置。

Apache,這是目前應(yīng)用最為廣泛的 Web 服務(wù)器,要求版本2.0以上

openssl,運(yùn)行于 Linux 平臺(tái)上的提供實(shí)現(xiàn) SSL v2/v3 協(xié)議的加解密工具包

2.2.3 啟動(dòng) radvd

IPv6 的地址獲取方式與 IPv4 有所不同。在 IPv4 中,主機(jī) IP 地址的自動(dòng)配置必須由 DHCP 服務(wù)器來支持,這被稱為有狀態(tài)的自動(dòng)配置(StatefulAutoconfiguration);而在 IPv6 中,除了 DHCP 的 v6版本,還引入了無狀態(tài)的自動(dòng)配置( StatelessAutoconfiguration )。這項(xiàng)新技術(shù)無需 DHCP 服務(wù)器支持,所有支持 IPv6 的路由器都監(jiān)聽各主機(jī)發(fā)送的自動(dòng)配置請(qǐng)求包, IPv6 路由器對(duì)這類請(qǐng)求包的回復(fù)里面包含了一些 IPv6 地址的前綴( prefix )信息,主機(jī)在收到這樣的包以后,可以根據(jù)自己的一些已有信息(比如 MAC 地址),生成自己的 IPv6 地址。

本文是在現(xiàn)有的 IPv4 網(wǎng)絡(luò)環(huán)境中模擬 IPv6 環(huán)境,自然不存在物理的 IPv6 路由器,但是通過 Linux 平臺(tái)上的 radvd 工具也可以模擬無狀態(tài)自動(dòng)配置,它同樣可以監(jiān)聽局域網(wǎng)內(nèi)各 IPv6 主機(jī)發(fā)送的自動(dòng)配置請(qǐng)求并作出響應(yīng),這樣,這些主機(jī)就可以獲得各自的 IPv6 地址,并利用這些地址進(jìn)行相互間的通信。而圖X中的客戶端正是使用這種方式與代理服務(wù)器通信的。

這里以 SLES10 平臺(tái)上的 radvd-0.9-13.2 為例來說明 radvd 的配置和啟動(dòng)過程。

  1. 從 SLES10 的安裝光盤中找到 radvd-0.9-13.2.i586.rpm 進(jìn)行安裝
           # rpm -ivh radvd-0.9-13.2.i586.rpm
            

  1. 配置運(yùn)行 radvd 的主機(jī)的 IPv6 地址信息

    # ip a a 2002:9ba:b4e:6::1/64 dev ethX

    # ip r a 2002:9ba:b4e:6::/64 dev ethX

這里的 ethX 表示的是此主機(jī)監(jiān)聽局域網(wǎng)數(shù)據(jù)包的網(wǎng)卡設(shè)備

  1. radvd 安裝后其配置文件位于 /etc/radvd.conf ,在這個(gè)文件中加入配置信息
interface ethX
            {
            AdvSendAdvert on;
            MinRtrAdvInterval 5;
            MaxRtrAdvInterval 10;
            AdvDefaultPreference low;
            prefix 2002:9ba:b4e:6::/64
            {
            AdvOnLink on;
            AdvAutonomous on;
            AdvRouterAddr off;
            };
            };
            

同上,這里的 ethX 表示的是此主機(jī)監(jiān)聽局域網(wǎng)數(shù)據(jù)包的網(wǎng)卡設(shè)備。prefix 段表明了該局

域網(wǎng)配置 IPv6 地址的前綴。

  1. 確保系統(tǒng)啟動(dòng)了對(duì) IPv6 數(shù)據(jù)包的轉(zhuǎn)發(fā)功能

    # sysctl -w net.ipv6.conf.all.forwarding=1

  1. 啟動(dòng) radvd

    # /etc/init.d/radvd start

在 radvd 啟動(dòng)成功后,通過 ps 命令可以看到系統(tǒng)中有一個(gè) radvd 的 daemon 進(jìn)程處于運(yùn)行狀態(tài)。若對(duì)局域網(wǎng)中的其他主機(jī)運(yùn)行 ifconfig 命令可以看到這些主機(jī)已經(jīng)自動(dòng)配置了 IPv6 地址,其前綴( prefix )與 radvd 配置文件中的值一致。

2.2.4 配置 Apache 服務(wù)器

Apache 服務(wù)器是整個(gè)模擬 IPv6 環(huán)境的核心部分,它將監(jiān)聽來自 IPv6 網(wǎng)絡(luò)連接的數(shù)據(jù)包,并將其通過 IPv4 網(wǎng)絡(luò)轉(zhuǎn)發(fā)到服務(wù)器端。這里使用了 Apache 服務(wù)器的 mod_proxy 模塊,相信這一模塊提供的 Forward Proxy 功能已為大家所熟知,并被廣泛采用。這一模塊同時(shí)還提供了 Reverse Proxy 功能,本文就采用了此技術(shù)來實(shí)現(xiàn)轉(zhuǎn)發(fā)功能。運(yùn)行 Reverse Proxy 的 Apache 服務(wù)器對(duì)于客戶端而言就是一臺(tái)實(shí)際的 Web 服務(wù)器,客戶端將從該服務(wù)器獲取和上傳所有的數(shù)據(jù),具體的配置方法如下文所述。

大多數(shù)的 Linux 平臺(tái)已經(jīng)安裝了 Apache 服務(wù)器,對(duì)于已經(jīng)安裝了 Apache 服務(wù)器的平臺(tái),必須保證其支持 IPv6,并且加載了 mod_proxy和mod_ssl 模塊。當(dāng)然也可以從 Apache 的源代碼開始編譯一個(gè)新的 Apache 服務(wù)器。

首先需要確定 Apache 服務(wù)器監(jiān)聽 IPv6 地址,一般而言,在 httpd.conf 中有如下一條:

    Listen 80
            

這表明該 Apache 服務(wù)器監(jiān)聽所有的主機(jī)地址,自然也包括 IPv6 的地址。若原 Apache 服務(wù)器配置了監(jiān)聽一些特定的地址,確保這些地址中包含代理服務(wù)器與客戶端通信使用的 IPv6 地址。

對(duì)于代理服務(wù)器的配置,這里需要使用 Apache 服務(wù)器的 mod_proxy 模塊中的 ProxyPass 指示字,在 Apache 配置文件中加入如下的配置語句。

NameVirtualHost *:80
            <VirtualHost *:80>
            ServerAdmin webmaster@dummy-host.example.com
            ServerName ipv6-server-proxy
            ProxyRequests off
            <Proxy *>
            Order deny,allow
            Allow from all
            </Proxy>
            ProxyPass /request http://www.server.com/request
            ErrorLog "logs/proxypass-error_log"
            CustomLog "logs/proxypass-access_log" common
            </VirtualHost>
            

這里的 ProxyPass 指示語的含義是所有對(duì)此 Apache 服務(wù)器的 /request 目錄的訪問都將轉(zhuǎn)發(fā)到 http://www.server.com/request。若此 Apache 服務(wù)器的 IPv6 地址為2002:9ba:b4e:6::3,則客戶端若訪問

http://[2002:9ba:b4e:6::3]/request
            

實(shí)際獲得的數(shù)據(jù)將來自于

http://www.server.com/request
            

這樣,在客戶端看來,與其通信的服務(wù)器是一個(gè)支持 IPv6 的服務(wù)器端,而實(shí)際上是 Apache 代理將遠(yuǎn)程的服務(wù)器端映射到了本地的 IPv6 網(wǎng)絡(luò)。在這種環(huán)境下,客戶端就可以來開發(fā)和測(cè)試自身對(duì) IPv6 的支持了,而無需考慮服務(wù)器端對(duì)此協(xié)議的支持。

上述語句添加的位置由 Apache 的配置文件結(jié)構(gòu)決定,目前許多版本的 Apache 采用多個(gè)配置文件,即由一個(gè)主的配置文件 httpd.conf 來包含其他子項(xiàng)配置文件,如 httpd-vhosts.conf,httpd-ssl.conf 文件等,而不是所有的配置信息全部寫在 httpd.conf 文件中。這里推薦將上述配置語句寫入 httpd-vhosts.conf 文件中,然后在主配置文件 httpd.conf 文件加入下面這條包含此文件。

Include httpd-vhosts.conf
            

這里默認(rèn) httpd-vhosts.conf 與 httpd.conf 在同一目錄下,多數(shù)情況下要加入 httpd-vhosts.conf 的相對(duì)路徑。

對(duì)于需要使用 HTTPS 連接的應(yīng)用程序,其 Apache 服務(wù)器的配置有所不同,參見下一節(jié)2.2.5中的具體介紹。

在配置好以后,即可啟動(dòng)/重啟 Apache 服務(wù)器來使得剛才的配置生效。

# /etc/init.d/httpd restart
            

2.2.5 利用 openssl 生成 HTTPS 連接所需的認(rèn)證信息

由于運(yùn)行 Reverse Proxy 的 Apache 服務(wù)器在客戶端看來是一臺(tái)實(shí)際的 Web 服務(wù)器,因此在進(jìn)行 HTTPS 連接時(shí),客戶端需要驗(yàn)證其 SSL 簽名的有效性。這樣,我們需要在上述配置好的 Apache 服務(wù)器中加入 SSL 認(rèn)證信息,才能保證客戶端的 HTTPS 應(yīng)用程序能夠正常運(yùn)行。

自簽名(self-signed)的 SSL 認(rèn)證文件的生成

首先是生成根證書文件 ca.crt

# openssl genrsa -des3 -out ca.key 4096
            # openssl req -new -x509 -days 365 -key ca.key -out ca.crt
            

第一步是生成一個(gè)根證書的 key 文件,系統(tǒng)會(huì)要求輸入 pass phase, 記下輸入的密碼,這一密碼會(huì)在后面多次用到。而第二步則將使用這個(gè) key 文件來生成根證書,這一步執(zhí)行時(shí)系統(tǒng)會(huì)要求輸入許多根證書的信息,值得注意的是 Common Name(CN),這一步中輸入的 CN 值應(yīng)與下一步生成服務(wù)器證書時(shí)輸入的不同。

接著需要生成服務(wù)器證書簽名請(qǐng)求(Certificate Signing Request)文件 server.csr,步驟與生成根證書文件類似。

# openssl genrsa -des3 -out server.key 4096
            # openssl req -new -key server.key -out server.csr
            

同樣,在第二步中會(huì)要求輸入一系列的服務(wù)器信息,這里的 Common Name(CN) 應(yīng)與客戶端訪問該服務(wù)器時(shí)使用的地址相同,例如:

客戶端使用 http://proxyhost.com/ 訪問該服務(wù)器時(shí),這里的 CN 應(yīng)為 proxyhost.com

客戶端使用 http://[2002:9ba:b4e:6::3]/ 訪問該服務(wù)器時(shí),這里的 CN 應(yīng)為 [2002:9ba:b4e:6::3]

為何需要相同,是因?yàn)榭蛻舳说?HTTPS 連接程序會(huì)驗(yàn)證該服務(wù)器提供的證書有效性,若證書中的 CN 與實(shí)際客戶端訪問的主機(jī)名不同,客戶端會(huì)拋出 INVALID_CN 錯(cuò)誤。

最后,利用前面生成的根證書文件 ca.crt 來簽署(Sign)服務(wù)器證書簽名請(qǐng)求 server.csr。

# openssl x509 -req -days 365 -in server.csr -CA ca.crt \
            -CAkey ca.key -set_serial 01 -out server.crt
            

將上述生成的四個(gè)證書相關(guān)文件(ca.crt,ca.key,server.crt,server.key)拷入 Apache 的配置文件夾中,接下來將會(huì)把這些文件的路徑和一些配置信息加入到 Apache 配置文件中。

Listen 443
            AddType application/x-x509-ca-cert .crt
            AddType application/x-pkcs7-crl    .crl
            SSLPassPhraseDialog  builtin
            SSLSessionCache "shmcb:/usr/local/apache2/logs/ssl_scache(512000)"
            SSLSessionCacheTimeout  300
            SSLMutex  "file:logs/ssl_mutex"
            NameVirtualHost *:443
            <VirtualHost *:443>
            DocumentRoot "apache2/htdocs"
            ServerName ipv6-server-proxy
            ServerAdmin you@example.com
            ErrorLog "ssl-error_log"
            TransferLog "ssl-access_log"
            SSLEngine on
            SSLProtocol -all +TLSv1 +SSLv3
            SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
            SSLCertificateFile "server.crt"
            SSLCertificateKeyFile "server.key"
            <Directory "/usr/local/apache2/cgi-bin">
            SSLOptions +StdEnvVars
            </Directory>
            BrowserMatch ".*MSIE.*" \
            nokeepalive ssl-unclean-shutdown \
            downgrade-1.0 force-response-1.0
            CustomLog "logs/ssl_request_log" \
            "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
            SSLProxyEngine on
            ProxyRequests off
            <Proxy *>
            Order deny,allow
            Allow from all
            </Proxy>
            ProxyPass /request http://www.server.com/request
            </VirtualHost>
            

這里再次使用了 ProxyPass 來建立代理服務(wù)。

正如上一節(jié)2.2.4中所述,這里建議將這些配置信息寫入 httpd-ssl.conf 中,然后在 httpd.conf 中加入如下一行將其包含。

Include httpd-ssl.conf
            

配置完成后,即可啟動(dòng)/重啟 Apache 服務(wù)器來使得剛才的配置生效。

# /etc/init.d/httpd restart
            

客戶端 HTTPS 連接的考慮

由于這里采用的是自簽名(Self-signed)的方式來生成服務(wù)器的認(rèn)證文件,客戶端使用 HTTPS 連接到該代理服務(wù)器時(shí),會(huì)出現(xiàn)認(rèn)證錯(cuò)誤的提示。這就需要將這里生成的證書加入到客戶端的可信站點(diǎn)列表中。具體的添加方式因采用的系統(tǒng)不同而各異。就 Windows 平臺(tái)的 IE 而言,可以將上述生成的 ca.crt 及 server.crt 文件加入到 IE 的可信站點(diǎn)中,這會(huì)影響到所有利用 IE 提供的 wininet 庫進(jìn)行 HTTP 應(yīng)用開發(fā)的程序。

2.2.6 DNS 考慮

在網(wǎng)絡(luò)應(yīng)用中,客戶端一般使用域名來訪問服務(wù)器端。在測(cè)試 IPv6 的環(huán)境中,必須使用 IPv6 的地址來訪問,這就需要一個(gè)支持 IPv6 的 DNS 域名服務(wù)器,對(duì)于一定的域名返回其 IPv6 的地址。目前可以使用在 Linux 平臺(tái)的 BIND 9 來搭建這樣的 DNS 服務(wù)器。但是其配置相對(duì)比較復(fù)雜,還可以使用一種相對(duì)簡(jiǎn)便的方法。即利用 Linux 和 Windows 平臺(tái)均支持的 hosts 文件來配對(duì)域名與其相應(yīng)的 IPv6 地址。這需要在客戶端的相應(yīng) hosts 文件中加入一些 IPv6 地址的配置信息。

在 Linux 平臺(tái)上,hosts 文件一般位于 /etc/hosts,在此文件中加入如下一行:

           2002:9ba:b4e:6::3    www.someipv6site.com
            

這樣就指定了 www.someipv6site.com 的 IPv6 地址為 2002:9ba:b4e:6::3。而在 Windows 平臺(tái)上 hosts 文件位于 %WINDIR%\System32\drivers\etc\hosts,其格式與 Linux 平臺(tái)上相同。

2.3 IPv6 和 IPv4 混合環(huán)境兼容性測(cè)試

從 IPv4 到 IPv6 的過渡是一個(gè)漫長(zhǎng)而復(fù)雜的過程,不可能在短期內(nèi)實(shí)現(xiàn)完全轉(zhuǎn)換,所以在產(chǎn)品的開發(fā)及測(cè)試過程中除了考慮 IPv6 網(wǎng)絡(luò)內(nèi)的通訊還需要充分考慮現(xiàn)實(shí)網(wǎng)絡(luò)環(huán)境中很可能出現(xiàn)的 IPv6 網(wǎng)絡(luò)和 IPv4 網(wǎng)絡(luò)的混合環(huán)境,這就需要測(cè)試應(yīng)用程序在此環(huán)境下的兼容性。 本節(jié)將介紹一些需要模擬的情況。

模擬以下3種網(wǎng)絡(luò)情況首先都需要在現(xiàn)有的 IPv4 局域網(wǎng)環(huán)境中選擇一臺(tái)機(jī)器作為路由服務(wù)器,并按照2.2.3節(jié)的描述進(jìn)行相關(guān)配置。這樣與該路由連接于同一個(gè) Switch 上的計(jì)算機(jī)都將會(huì)被自動(dòng)分配一個(gè) IPv6 的地址。如果仍然沒有獲得 IPv6 的地址,請(qǐng)關(guān)閉計(jì)算機(jī)和路由服務(wù)器上的防火墻。然后按照 2.2.4 節(jié)中的描述選擇一臺(tái)計(jì)算機(jī)設(shè)置為 ProxyPass。

2.3.1客戶端和服務(wù)器端均運(yùn)行于 IPv6 的網(wǎng)絡(luò)環(huán)境

這種情況的驗(yàn)證相對(duì)比較簡(jiǎn)單,只需要在客戶端將服務(wù)器的地址設(shè)為前面配置的 ProxyPass 的 IPv6 的地址便能實(shí)現(xiàn)客戶端和服務(wù)器端 IPv6 到 IPv6 的交互。這就是2.2節(jié)介紹的情況。

圖 4. 客戶端和服務(wù)器端均運(yùn)行于 IPv6 的網(wǎng)絡(luò)環(huán)境


圖 4. 客戶端和服務(wù)器端均運(yùn)行于 IPv6 的網(wǎng)絡(luò)環(huán)境
客戶端和服務(wù)器端均運(yùn)行于 IPv6 的網(wǎng)絡(luò)環(huán)境

2.3.2 客戶端運(yùn)行于 IPv6 網(wǎng)絡(luò),服務(wù)端運(yùn)行于 IPv4 網(wǎng)絡(luò)

對(duì)于客戶端和服務(wù)器端分別處于 IPv6 和 IPv4 環(huán)境的情況,需要在局域網(wǎng)環(huán)境中增加代理 (proxy) 作為兩者之間的橋梁,該代理與上述路由服務(wù)器位于同一個(gè)網(wǎng)絡(luò)之中,因而也擁有 IPv6 的地址和 IPv4 的地址。客戶端所設(shè)置的目的服務(wù)器端地址為 IPv4 的地址,設(shè)置的代理地址為該代理的 IPv6 的地址,這樣客戶通過 IPv6 協(xié)議與代理直接進(jìn)行通訊,而代理接受到客戶端所設(shè)置的 IPv4 格式的服務(wù)器地址后則通過 IPv4 協(xié)議與服務(wù)端交互,這樣便模擬實(shí)現(xiàn)了客戶端位于 IPv6 網(wǎng)絡(luò)而服務(wù)器端位于 IPv4 網(wǎng)絡(luò)的情況。

圖5客戶端運(yùn)行于 IPv6 網(wǎng)絡(luò),服務(wù)端運(yùn)行于 IPv4 網(wǎng)絡(luò)


圖 5. 客戶端運(yùn)行于 IPv6 網(wǎng)絡(luò),服務(wù)端運(yùn)行于 IPv4 網(wǎng)絡(luò)
客戶端運(yùn)行于 IPv6 網(wǎng)絡(luò),服務(wù)端運(yùn)行于 IPv4 網(wǎng)絡(luò)

2.3.3 客戶端運(yùn)行于 IPv4 網(wǎng)絡(luò),服務(wù)端運(yùn)行于 IPv6 網(wǎng)絡(luò)

模擬位于 IPv4 網(wǎng)絡(luò)中的客戶端與位于 IPv6 網(wǎng)絡(luò)中的服務(wù)器端進(jìn)行交互需要使用 Proxy 和 ProxyPass 來進(jìn)行環(huán)境搭建。客戶端將 ProxyPass 所在的 IPv6 的地址設(shè)置為服務(wù)器端的地址,將 Proxy 所在的 IPv4 的地址設(shè)置為代理的地址,這樣客戶端與代理之間通過 IPv4 協(xié)議進(jìn)行通訊。代理在獲取到客戶端所配置的 IPv6 協(xié)議的 ProxyPass 地址后將通過 IPv6 協(xié)議與 ProxyPass 進(jìn)行交互。ProxyPass 收到客戶端發(fā)送的請(qǐng)求后將通過 IPv4 的協(xié)議發(fā)送給真正的位于 IPv4 網(wǎng)絡(luò)中的服務(wù)器進(jìn)行處理。這樣在客戶端就模擬實(shí)現(xiàn)了 IPv4 網(wǎng)絡(luò)到 IPv6 網(wǎng)絡(luò)的通訊。

圖6客戶端運(yùn)行于 IPv4 網(wǎng)絡(luò),服務(wù)端運(yùn)行于 IPv6 網(wǎng)絡(luò)

Server


圖 6. 利用代理將客戶端映射到與服務(wù)器端同一局域網(wǎng)內(nèi)
利用代理將客戶端映射到與服務(wù)器端同一局域網(wǎng)內(nèi)






3 總結(jié)

在本文中,我們通過使用現(xiàn)有的 IPv4 網(wǎng)絡(luò)配合 Linux 平臺(tái)上的 Apache 服務(wù)器,達(dá)到了模擬 IPv6 的 HTTP/HTTPS 網(wǎng)絡(luò)環(huán)境的目的,從而可以在有限的硬件資源之下開發(fā)和測(cè)試網(wǎng)絡(luò)應(yīng)用軟件對(duì) IPv6 的支持。這項(xiàng)技術(shù)還可以應(yīng)用到其他的網(wǎng)絡(luò)協(xié)議之上,只需使用具備類似于 Apache 服務(wù)器轉(zhuǎn)發(fā)技術(shù)的代理服務(wù)器。因此這項(xiàng)技術(shù)具有一定的通用性

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品视频在线观看| 亚洲欧美日本精品| 欧美激情国产日韩精品一区18| 欧美伊人久久久久久午夜久久久久| 亚洲一二区在线| 日韩视频专区| 日韩亚洲欧美高清| 日韩系列欧美系列| 一本久久a久久精品亚洲| 一本色道久久综合亚洲精品不卡| 日韩视频中文字幕| 亚洲深夜福利在线| 亚洲欧美视频一区二区三区| 亚洲欧美日韩成人| 欧美激情第8页| 亚洲精品日韩一| 亚洲免费电影在线观看| 亚洲视频一区二区| 亚洲精品一区二区三| 久久男人资源视频| 欧美大成色www永久网站婷| 欧美激情第一页xxx| 亚洲精品美女在线观看| 亚洲国产欧美国产综合一区| av成人免费| 性欧美在线看片a免费观看| 久久精品国产精品| 亚洲欧美日韩精品在线| 亚洲一区在线播放| 136国产福利精品导航网址应用 | 亚洲国产成人精品久久| 在线观看一区欧美| 亚洲九九爱视频| 亚洲午夜精品久久久久久浪潮| 亚洲综合日韩中文字幕v在线| 欧美在线精品免播放器视频| 欧美a级片网| 玖玖精品视频| 亚洲精品中文字幕女同| 欧美风情在线| 一区二区欧美精品| 性欧美在线看片a免费观看| 国产欧美一区二区色老头| 小黄鸭视频精品导航| 毛片一区二区三区| 亚洲精品一区中文| 欧美日韩综合久久| 亚洲在线播放| 欧美国产精品v| 亚洲美女在线视频| 欧美精彩视频一区二区三区| 欧美精品日韩| 在线性视频日韩欧美| 国产精品制服诱惑| 国产精品久久999| 欧美日韩三级视频| 国产精品久久久久久久久久ktv | 亚洲欧美日韩国产一区二区| 午夜精品视频网站| 免费在线成人av| 亚洲一区二区三区四区中文 | 欧美电影免费观看大全| 亚洲福利视频一区二区| 亚洲精品偷拍| 亚洲欧美在线一区| 蜜臀99久久精品久久久久久软件 | 国产欧美日韩精品在线| 欧美成人中文字幕| 午夜精品理论片| 亚洲青色在线| 一区二区欧美日韩视频| 欧美在线高清| 国产精品一区二区三区久久| 亚洲电影有码| 久久精品视频亚洲| 在线中文字幕不卡| 欧美黑人多人双交| 亚洲国产精品激情在线观看| 久久久99精品免费观看不卡| 在线亚洲欧美专区二区| 欧美日韩国产三区| 亚洲日本中文| 免费成人av在线| 久久激情一区| 国产专区欧美专区| 欧美一区在线看| 亚洲自拍啪啪| 国产精品视频专区| 亚洲新中文字幕| 9色精品在线| 欧美日韩亚洲不卡| 亚洲欧洲另类| 日韩午夜在线电影| 久久久亚洲午夜电影| 国产欧美一区二区三区久久人妖| 亚洲综合色自拍一区| 亚洲每日更新| 欧美另类一区二区三区| 日韩视频免费观看| 亚洲激情综合| 欧美日本簧片| 亚洲一区二区毛片| 一区二区三区欧美成人| 欧美日韩国产在线| 一区二区三区欧美激情| 日韩视频久久| 欧美日韩激情小视频| 亚洲午夜激情在线| 亚洲一区二区三区777| 国产精品私房写真福利视频| 香港久久久电影| 欧美亚洲日本网站| 精久久久久久| 欧美国产高清| 欧美日韩第一页| 亚洲欧美日韩人成在线播放| 亚洲欧美在线一区二区| 国产一区二区三区久久悠悠色av | 亚洲一区久久久| 国产日韩欧美二区| 一区二区三区国产盗摄| 国产亚洲女人久久久久毛片| 中文欧美日韩| 亚洲一区精品电影| 国产亚洲制服色| 免费成人性网站| 欧美大胆a视频| 亚洲视频日本| 香蕉尹人综合在线观看| 亚洲国产精品电影在线观看| 亚洲欧洲一区二区三区久久| 欧美体内谢she精2性欧美| 欧美在线播放| 久久综合色婷婷| 中文亚洲免费| 久久久xxx| 一本色道婷婷久久欧美| 香蕉国产精品偷在线观看不卡| 激情综合中文娱乐网| 欧美成人一区二区| 欧美日韩亚洲国产精品| 欧美在线一级视频| 欧美成人资源网| 欧美日本韩国一区| 亚洲第一成人在线| 久久综合网络一区二区| 欧美一区二区播放| 狠狠色狠狠色综合人人| 久久精品国产69国产精品亚洲| 亚洲视频免费在线观看| 国产精品一级久久久| 欧美一区视频在线| 久久激情综合网| 亚洲日本成人网| 亚洲精品久久久久久一区二区| 欧美mv日韩mv亚洲| 99精品国产在热久久| 亚洲深夜影院| 国产一区香蕉久久| 亚洲高清影视| 蜜桃精品久久久久久久免费影院| 欧美视频一区在线| 久久影视三级福利片| 国产精品久久久久国产a级| 亚洲成色777777女色窝| 伊人久久久大香线蕉综合直播 | 亚洲毛片av在线| 欧美成人伊人久久综合网| 亚洲国产aⅴ天堂久久| 一区二区欧美精品| 国产精品视频大全| 欧美在线免费观看| 久久黄色网页| 麻豆精品国产91久久久久久| 日韩视频第一页| 久久国产一区二区| 久久久久久亚洲精品中文字幕| 免费成人毛片| 久久国产精品久久精品国产| 亚洲人成人77777线观看| 欧美另类高清视频在线| 9久草视频在线视频精品| 久久久久9999亚洲精品| 欧美日韩在线观看视频| 久久免费视频网站| 久久夜精品va视频免费观看| 久久婷婷国产综合精品青草| 久久久免费精品视频| 久久精品日产第一区二区| 久久免费精品日本久久中文字幕| 亚洲色图制服丝袜| 亚洲国产精品一区二区久| 一区二区三区日韩| 一区二区三区视频在线| 欧美激情国产精品| 欧美成人一区二区在线| 18成人免费观看视频| 老牛国产精品一区的观看方式| 久久综合伊人77777麻豆| 国产亚洲午夜|