網路應用程式與伺服器 導入 ipv6 作業流程技術手冊iis web server ver. 6.0 以上...

40
附件 3-23 673 附件 3-23、網路應用程式與伺服器導入 IPv6 作業流程技術手冊 九十九年度「新一代網際網路協定互通認證計畫」 期末研究報告附件 網路應用程式與伺服器 導入 IPv6 作業流程技術手冊 移轉技術分項計畫子計畫五 網路應用程式與伺服器移轉程序規劃 主持人:陳偉銘 教授 執行單位:國立宜蘭大學 中華民國九十九年十月

Upload: others

Post on 09-Jun-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

  • 附件 3-23 

      673

    附件 3-23、網路應用程式與伺服器導入 IPv6 作業流程技術手冊

    九十九年度「新一代網際網路協定互通認證計畫」 期末研究報告附件

    網路應用程式與伺服器 導入 IPv6 作業流程技術手冊

    移轉技術分項計畫子計畫五 網路應用程式與伺服器移轉程序規劃

    主持人:陳偉銘 教授 執行單位:國立宜蘭大學 中華民國九十九年十月

  • 附件 3-23 

      674

    目錄大綱 目錄大綱 .............................................................................................................................. 674

    圖表目次 .............................................................................................................................. 675

    壹、 簡介 ..................................................................................................................... 677

    貳、 事前的準備工作 ................................................................................................. 678

    一、 作業系統及常用應用軟體對IPv6 支援一覽表 ................................................. 678 二、 網域名稱伺服的IPv6 設定 ................................................................................. 679

    1. 各版本DNS伺服器對IPv6 支援簡介 ....................................................... 679 2. DNS伺服器安裝步驟 ................................................................................ 680

    三、 網站系統架構的確認 ......................................................................................... 686 參、 IPv6 的設定及取得 ............................................................................................ 687

    一、 Windows XP, Vista, 7: ........................................................................................ 687 二、 Windows 2003、2008 Server:.......................................................................... 689 三、 Linux :.................................................................................................................. 689

    1. Ubuntu/Debian ........................................................................................... 690 2. RHEL 5.x / Fedora / CentOS Linux設定 ................................................... 691 3. 測試 IPv6 是否正確運作的方式如下。 ................................................ 692

    肆、 伺服器的設定 ..................................................................................................... 692

    一、 資料庫連線設定 ................................................................................................. 692 1. MSSQL....................................................................................................... 692

    二、 Web Server .......................................................................................................... 694 1. IIS ............................................................................................................... 694 2. Apache........................................................................................................ 697

    伍、 網頁程式修改: ................................................................................................. 698

    一、 Html ..................................................................................................................... 698 二、 PHP ...................................................................................................................... 699 三、 ASP ...................................................................................................................... 701 四、 ASP.NET ............................................................................................................. 702 五、 JSP ....................................................................................................................... 703 六、 IPv4 轉換IPv6 網頁程式之IP位址取代程式..................................................... 705

    陸、 建置測試環境 ..................................................................................................... 709

    柒、 系統正式轉換 ..................................................................................................... 710

    捌、 轉換後工作 ......................................................................................................... 711

    玖、 參考資料 ............................................................................................................. 711

  • 附件 3-23 

      675

    圖表目次

    圖 1 將「註冊的DNS網域」,設為DNS伺服器 的「主要DNS尾碼」 ........ 680 圖 2 將「慣用DNS伺服器」 的IP指向本機.................................................. 680 圖 3 透過「伺服器管理員」 ........................................................................... 681 圖 4 查詢安裝狀態 ........................................................................................... 681 圖 5 開始安裝 ................................................................................................... 681 圖 6. 對DNS伺服器進行名稱解析測試 ........................................................... 682 圖 7 增加 AAAA 記錄 (等同於IPv4 中的A記錄)........................................ 682 圖 8 新增反向查詢區域設定精靈 ................................................................... 683 圖 9 正向查詢測試 ........................................................................................... 683 圖 10 反向查詢測試 ........................................................................................... 683 圖 11 網路架構圖 ............................................................................................... 684 圖 12 在命令列利用yum安裝bind與其設定檔案 ............................................. 684 圖 13 安裝完成之畫面 ....................................................................................... 684 圖 14 複製設定檔之畫面 ................................................................................... 685 圖 15 複製正反解檔案之畫面 ........................................................................... 685 圖 16 啟動bind .................................................................................................... 685 圖 17 已啟動bind的port監聽.............................................................................. 686 圖 18 網站架構圖 ............................................................................................... 687 圖 19 命令提示字元中輸入 “ipv6 install”........................................................ 688 圖 20 安裝成功的訊息 ....................................................................................... 688 圖 21 輸入 “ping6 ::1“ ....................................................................................... 688 圖 22 支援IPv6 畫面........................................................................................... 688 圖 23 Windows 2008 Server 己內建支援IPv6 .................................................. 689 圖 24 系統已經是預設啟動IPv6........................................................................ 690 圖 25 ifconfig 指令............................................................................................. 690 圖 26 測試畫面一 ............................................................................................... 693 圖 27 測試畫面二 ............................................................................................... 694 圖 28 Http(80Port)連線畫面 ............................................................................... 695 圖 29 Https(443Port)連線畫面 ........................................................................... 695 圖 30 Windows防火牆無法以IPv6 的IP設定例外 ............................................ 696 圖 31 Http(8080Port)連線畫面 ........................................................................... 697

  • 附件 3-23 

      676

    圖 32 Https(8443Port)連線畫面 ......................................................................... 697 圖 33 Command: vi /usr/local/etc/apache22/httpd.conf .................................. 697 圖 34 Command: /usr/local/sbin/apachectl –t.................................................. 698 圖 35 修改前程式畫面 ....................................................................................... 699 圖 36 修改後程式畫面 ....................................................................................... 699 圖 37 程式語法:將使用者IP存在$ip的變數,並且顯示於畫面。 .............. 700 圖 38 使用者為IPv4 環境之執行結果(顯示使用者IPv4 IP位址).................... 700 圖 39 使用者為IPv6 環境之執行結果(顯示使用者IPv6 IP位址).................... 701 圖 40 IPv4 客戶端測試畫面............................................................................... 701 圖 41 IPv6 客戶端測試畫面............................................................................... 702 圖 42 IPv4 客戶端測試畫面............................................................................... 702 圖 43 IPv6 客戶端測試畫面............................................................................... 702 圖 44 IPv4 客戶端測試畫面............................................................................... 704 圖 45 IPv6 客戶端測試畫面............................................................................... 704 圖 46 開啟程式:此為程式主要畫面。 ........................................................... 705 圖 47 點選開啟檔案按鈕 ................................................................................... 706 圖 48 選取要修改之程式檔案。 ....................................................................... 706 圖 49 選取後程式畫面即會顯示出此檔案之程式內容。 ............................... 707 圖 50 輸入欲尋找取代的IP位址與欲取代成的Domain Name。 .................... 707 圖 51 按下Processing按鈕程式開始進行 .......................................................... 708 圖 52 程式右方畫面顯示哪些字串被取代。 ................................................... 708 圖 53 按下Save Result按鈕即可儲存取代完成後的檔案。 ............................ 709 圖 54 系統環境建置示意圖 ............................................................................... 710

  • 附件 3-23 

      677

    壹、 簡介

    近年來由於網路 IPv4 位址不足的問題,新一代網路 IP 位址協定 IPv6 的導入與推

    動,已經成為網際網路上最優先而且是最重要的工作。因此不論是在實體的網路架構、

    硬體設備以及相關網路應用服務系統、軟體設計、系統開發…等,都必須支援新一代

    的 IPv6 位址協定。

    目前在世界各國大力的推展之下,網際網路的骨幹基礎建設皆支援 IPv6 協定,因

    此一般的網路使用者皆可輕易的取得 IPv6 的位址。然而對於網路的使用者來說,網路

    的應用服務系統才是使用者網路的真正目的。因此網際網路應用服務系統對於 IPv6 的

    支援便是接下來的研發發展重點項目,讓網路應用服務系統能充份的發揮 IPv6 的優

    點。例如 IPv6 幾乎用不完的位址,使所有的 IP 元件可以直接連線溝通;內建 IPSec 機

    制,提供資料內容加密,同時具備身份驗證功能;提供更強大的行動性(Mobile IP),提

    供無線網路更好的支援能力;直接支援 QoS 品質保證機制,有利於視訊、語音等串流

    的應用…等。

    IPv6 的來臨己經是不可避免的,然而 IPv4 也存在於現今的網路之中,如果要立即

    將 IPv4 立即轉換成 IPv6 的位址,實際上所帶來的衝擊是相當巨大的。因此在實務上,

    必須使 IPv4 與 IPv6 同時存在於一段的過度時期,待整體 IPv6 普及化之後才能全面的

    使用 IPv6 協定。而在這段過渡時間,網路應用服務系統必須做到全面的轉換測試,使

    系統能在 IPv4 及 IPv6 雙協定的網路正常運作,同時確認在未來 IPv6 全面使用後能保

    證系統的正常與穩定。

    本手冊的目的就是在於提供一個參考的作業流程,給即將轉換的網路應用服務系

    統做為指引方向,以使轉換的過程能正確、安全、正常的轉換,最終使系統在轉換之

    後正常穩定的提供服務。期望能提供一個方便快速的指導程序給相關的工程人員,以

    減輕系統轉換時的工作負擔。

  • 附件 3-23 

      678

    貳、 事前的準備工作

    IPv4 的位址雖然比 IPv6 的較短,但仍然不容易記住,因而有 Domain Name System

    的發展,使人們更方便的存取網路,而不用記憶一長串的位址數字。

    因此,在網路應用服務系統轉換到 IPv6 協定時,建議以 Domain Name 取代 IPv6

    的位址,以便利系統工程師在進行系統的開發設計或是維護管理。

    一、 作業系統及常用應用軟體對 IPv6 支援一覽表

    資訊系統

    平台 軟體 種類 IPv6 版本需求

    Windows 2008 O.S. 支援

    Windows 2003 O.S. 支援

    Windows XP O.S. SP1 及 SP2 均支援

    Windows Vista O.S. 支援

    Windows CE O.S. Ver. 4.1 以上

    Windows 7 O.S. 支援

    IIS Web Server Ver. 6.0 以上

    Apache Web server Ver. 2.0 以上

    sendmail SMTP server Ver. 8.10 以上

    SQL server Database SQL Server 2005 以後

    微軟視窗

    作業系統

    及應用程

    MySQL Database Ver. 4.1 以上

    FreeBSD O.S. Ver. 4.0 以上

    Linux O.S. Ver 2.6.15 以上

    NetBSD O.S. Ver. 1.5 以上

    OpenBSD O.S. Ver. 3.9 以上

    Novell O.S. Ver. 6.1 以上,Ver 8.0 佳

    Sun Solaris O.S. 同時支援 SPARC 及 x64 平台版本

    Ver. 8 以上

    Unix 作業系統及應

    用程式

    IBM AIX O.S., RS6000 的 AIX AIX 5.2 以上, (WAS 6.0 以

  • 附件 3-23 

      679

    5.2 以後版本 上)

    HP O.S., HP-UX Ver. 11i 以上

    BIND DNS server Ver. 9.0 以上

    IBM Database DB2 9 以上

    PostgreSQL Database Ver. 8.3.1 以上

    Oracle Database Ver. 10.1.3 以上

    MAC 作業系統 MAC OS X O.S. Ver. 10.2 以上

    二、 網域名稱伺服的 IPv6 設定

    Windows:

    1. 各版本 DNS 伺服器對 IPv6 支援簡介

    Windows 2000

    - 須至 Microsoft 網站下載 IPv6Kit 軟體

    - 透過指令設定,無 DNS 管理圖形操作介面

    Windows 2003

    - 內建 IPv4/IPv6 Dual Stack,可輕易啟用

    - 透過指令設定,無 DNS 管理圖形操作介面

    Windows 2008

    - 支援 Native IPv6 功能,預設啟用 IPv6 通訊協定

    - 提供完整 DNS 管理圖形操作介面

  • 附件 3-23 

      680

    2. DNS 伺服器安裝步驟

    1. 將「註冊的 DNS 網域」,設為 DNS 伺服器 的「主要 DNS 尾碼」

    圖 1 將「註冊的 DNS 網域」,設為 DNS 伺服器 的「主要 DNS 尾碼」

    2. 將「慣用 DNS 伺服器」 的 IP 指向本機

    圖 2 將「慣用 DNS 伺服器」 的 IP 指向本機

  • 附件 3-23 

      681

    3. 安裝「DNS 伺服器」角色

    - 透過「伺服器管理員」

    圖 3 透過「伺服器管理員」

    透過「ServerManagerCmd」

    - 查詢安裝狀態:

    圖 4 查詢安裝狀態

    - 開始安裝:

    圖 5 開始安裝

  • 附件 3-23 

      682

    - 對 DNS 伺服器進行名稱解析測試

    圖 6. 對 DNS 伺服器進行名稱解析測試

    4. DNS 伺服器設定

    增加 AAAA 記錄 (等同於 IPv4 中的 A 記錄)

    圖 7 增加 AAAA 記錄 (等同於 IPv4 中的 A 記錄)

  • 附件 3-23 

      683

    新增反向查詢區域設定精靈

    圖 8 新增反向查詢區域設定精靈

    IPv6 DNS 伺服器功能驗證

    - 正向查詢測試:

    圖 9 正向查詢測試

    - 反向查詢測試:

    圖 10 反向查詢測試 Linux(CentOS):

    1. Bind 是我們常用的 DNS Server,現在已經支援了 IPv6 的位址解析,本

    篇將介紹如何在 CentOS 安裝 DNS Server 並且能夠對 IPv6 位址做

    解析。

  • 附件 3-23 

      684

    2. 網路架構圖:

    圖 11 網路架構圖

    3. 透過 yum 安裝 Bind 與其設定檔範本

    #yum install bind system-config-bind

    圖 12 在命令列利用 yum 安裝 bind 與其設定檔案

    安裝完成之畫面

    圖 13 安裝完成之畫面

  • 附件 3-23 

      685

    其中 system-config-bind 是 bind 相關的設定檔範例,存放在

    /usr/share/system-config-bind/profiles/default 裡面由於安全性的考量,

    安裝 bind 時通常會把 bind-chroot 這個套件裝起來之後 bind 的主要

    設定檔就會在 /var/named/chroot 裡面了。

    所以下面的設定檔主要都是在 /var/named/chroot 下面在安裝完

    成後,我們先到 /usr/share/system-config-bind/profiles/default 下去複製

    bind 所 需 要 的 檔 案 複 製 主 設 定 檔 named.conf 到

    /var/named/chroot/etc/

    #cd /usr/share/system-conf-bind/profiles/default

    #cp named.conf /var/named/chroot/etc/

    圖 14 複製設定檔之畫面

    4. 接著到 /usr/share/system-config-bind/profiles/default/named 去複製系統預

    設的正反解檔案(zone)

    #cd /usr/share/system-config-bind/profiles/default/named

    #cp *.* /var/named/chroot/var/named/

    圖 15 複製正反解檔案之畫面

    5. 最後到 /usr/share/doc/bind-9.3.4/sample/var/named 複製 named.root 到

    /var/named/chroot/var/named/

    這樣 Bind 就可以順利啟動了

    圖 16 啟動 bind

  • 附件 3-23 

      686

    6. 接著看一下開啟的 Port,IPv4 和 IPv6 的 953 port 都有開啟

    圖 17 已啟動 bind 的 port 監聽

    這樣 IPv6 / IPv4 的 DNS 服務都順利啟動了!

    三、 網站系統架構的確認

    在開始進行轉換的工作之前,必須先對於網站系統的架構進行確認。不論是

    現行正在服務中的系統或是準備開發中的系統,由於系統架構的不斷進步更新,

    同時也可能因為後續的系統改進維護等等原因,整體系統會連線使用的伺服器可

    能會有改變,有時甚至會連線到不只一個的資料庫,因此必須對於系統的整體架

    構進行確認。

    以目前常見的網站架構為例,如下圖:

    網站(Web Server)系統中可能會連線的伺服器有資料庫伺服器(Database

    Server)、電子郵件伺服器(Mail Server)、檔案伺服器(FTP Server),此時必

    須設定好各個伺服器的 IPv6 位址,同時設立對應的 Domain Name,以備系統

    進行轉換時,以 Domain Name 與各個伺服器進行連線。

  • 附件 3-23 

      687

    圖 18 網站架構圖

    參、 IPv6 的設定及取得

    一、 Windows XP, Vista, 7:

    1. 在一般的情況下 Windows XP 並不支援 IPv6(Vista 及 Win7 已有支援

    IPv6),所以需要下載相關的程式

    2. 而下載的方法非常簡單,只要命令提示字元中輸入 “ipv6 install” 就可以

  • 附件 3-23 

      688

    圖 19 命令提示字元中輸入 “ipv6 install”

    3. 接著你就會看到安裝成功的訊息

    圖 20 安裝成功的訊息

    4. 之後再自我測試一下,輸入 “ping6 ::1“

    圖 21 輸入 “ping6 ::1“

    5. 假如有出現下面的畫面,則代表您的電腦已經支援 IPv6 了

    圖 22 支援 IPv6 畫面

  • 附件 3-23 

      689

    二、 Windows 2003、2008 Server:

    1.Windows Server 2003 IPv6 安裝

    從『開始』->『控制台』->『網路連線』

    選定要啟用 IPv6 服務的 網路卡,並且按下滑鼠右鍵,再選擇『內容』

    按下『安裝』

    選擇協定,並且加入

    選擇 Microsoft TCP/IP Version 6 ,並且按下『OK』

    圖 23 Windows 2008 Server 己內建支援 IPv6

    三、 Linux :

    Linux Kernel 在 2.1.8 即加入 IPv6 的部份功能,現今的 Linux Kernel

    2.6.x 中, IPv6 已經是被完整地支援。在 2008 年 12 月 1 日,Linux

    Foundation(Linux 基金會)宣佈 IPv6 在 Linux 主要的 Distribution(發行版)中已

    經相容美國國防部的標準(連結)。

    現在只要下載任何一個常見的 Distribution,都可以支援 IPv6。本文件教

    學以 CentOS 5.3 作為示範的作業系統。

    在安裝的時候,系統已經是預設啟動 IPv6,如下圖:

  • 附件 3-23 

      690

    圖 24 系統已經是預設啟動 IPv6

    安裝完 CentOS 之後,我們可以下 ifconfig 指令,會發現 eth0 這個

    interface 已經有了 fe80 開頭的 Link-local IPv6 位址

    圖 25 ifconfig 指令

    1. Ubuntu/Debian

    Ubuntu 10.04 預設將 IPv6 安裝並開啟,以及完成所有設定,可以正

    常運作。

    以下提供檢查是否正常運作以及修改設定的方法。

  • 附件 3-23 

      691

    使用終端機,輸入以下指令:

    cat /proc/sys/net/ipv6/conf/all/disable_ipv6

    顯示結果為 0 代表 IPv6 已經開啟,而 1 代表關閉。

    可以藉由編輯 /etc/sysctl.conf 檔案,來設定 IPv6 的開啟或關閉。

    以下是關閉的範例:

    #disable ipv6

    net.ipv6.conf.all.disable_ipv6 = 1

    net.ipv6.conf.default.disable_ipv6 = 1

    net.ipv6.conf.lo.disable_ipv6 = 1

    2. RHEL 5.x / Fedora / CentOS Linux 設定

    編輯 /etc/sysconfig/network

    加入 NETWORKING_IPV6=yes (no 為關閉)

    編輯 /etc/sysconfig/network-scripts/ifcfg-eth0

    加入

    IPV6INIT=yes

    IPV6ADDR=

    PV6_DEFAULTGW=

    重新啟動網路

    service network restart

  • 附件 3-23 

      692

    3. 測試 IPv6 是否正確運作的方式如下。

    使用終端機,輸入以下指令:

    ping6 -c 5 ipv6.google.com

    嘗試連結 Google 的 IPv6 專用搜尋網站。

    (能否使用 IPv4 連上呢? 輸入: ping -c 5 ipv6.google.com )

    利用 firefox 在網址列輸入 http://ipv6.google.com/

    或是 http://www.kame.net/ ,能夠正確顯示網頁或游動的海龜,就代表成

    功了。

    肆、 伺服器的設定

    一、 資料庫連線設定

    1. MSSQL

    使用 IPv6 位址進行 Microsoft SQL Server 2008 資料庫連線測試。

    測試環境:

    伺服端

    作業系統 Microsoft Windows Server 2003

    資料庫管理系統 Microsoft SQL Server 2008

    客戶端

    作業系統 Microsoft Windows XP

    資料庫連線工具 Microsoft SQL Server Management Studio Express

    http://ipv6.google.com/http://www.kame.net/

  • 附件 3-23 

      693

    測試說明:

    Microsoft SQL Server 2008 支援 IPv6 環境,所以伺服端升級為 IPv6 後,不須設定

    即可進行連線。

    測試畫面:

    圖 26 測試畫面一

  • 附件 3-23 

      694

    圖 27 測試畫面二

    二、 Web Server

    1. IIS

    IIS6 服務設定 IPV6

    支援 IPv4/IPv6 Dual Stack

    支援 IPv6,但圖形介面不支援 IPv6 設定

    IPv4 及 IPv6 80 Port 皆可正常連線

    IPv4 及 IPv6 443 Port 皆可正常連線

    IIS7 服務設定 IPV6

    預設已啟用支援 IPv6 通訊協定

    圖形介面支援 IPv6 設定 IIS7 服務設定 IPV6

    預設已啟用支援 IPv6 通訊協定

    圖形介面支援 IPv6 設定

    IPv4 及 IPv6 80 Port 皆可正常連線

    IPv4 及 IPv6 443 Port 皆可正常連線

  • 附件 3-23 

      695

    Http(80Port)連線畫面

    圖 28 Http(80Port)連線畫面

    Https(443Port)連線畫面

    圖 29 Https(443Port)連線畫面

    其他相關限制

    Windows 防火牆無法以 IPv6 的 IP 設定例外

  • 附件 3-23 

      696

    圖 30 Windows 防火牆無法以 IPv6 的 IP 設定例外

    Tomcat 6.0 for Windows 2003 Server IPv6 設定

    在 Tomcat 6.0 安裝目錄下尋找 tcnative-1.dll 並移出

    關閉並重啟 Tomcat 服務

    在\Tomcat 6.0\conf\下開啟 server.xml

    將 8080 及 8443 port 的 protocol 改為"HTTP/1.1",如下:

  • 附件 3-23 

      697

    圖 31 Http(8080Port)連線畫面

    Https(8443Port)連線畫面

    圖 32 Https(8443Port)連線畫面

    2. Apache

    設定apache,主要是設定一些基本Web Server的選項,與該bind那個

    address與port,只要設定下列幾項基本的設定,即可啟用IPv6 enable

    的Web Server。

    Command: vi /usr/local/etc/apache22/httpd.conf

    Context:

    Listen 80 /*IPv4 用*/

    Listen fe80::240:95ff:fe07:9e9e%rl0:80 /*IPv6 綁網卡的port*/

    ServerAdmin [email protected] /*admin's E-mail address*/

    ServerName eecs.dormv6.niu.edu.tw:80

    DirectoryIndex index.html index.htm index.php /*首頁檔支援*/

    圖 33 Command: vi /usr/local/etc/apache22/httpd.conf

    若為了往後要增加對 php 的支援,也請在 httpd.conf 這個設定檔加入

    以下內容。

    http://4.bp.blogspot.com/_XNPfJADuv50/Rn0diaffheI/AAAAAAAAAIw/Rem_pqlKjT0/s1600-h/httpd_conf.jpghttp://4.bp.blogspot.com/_XNPfJADuv50/Rn0diaffheI/AAAAAAAAAIw/Rem_pqlKjT0/s1600-h/httpd_conf.jpg

  • 附件 3-23 

      698

    Context:

    AddType application/x-httpd-php .php

    AddType application/x-httpd-php-source .phps

    首先是測試httpd.conf的設定是否錯誤。

    Command: /usr/local/sbin/apachectl –t

    圖 34 Command: /usr/local/sbin/apachectl –t

    啟動 apache:

    Command: /usr/local/sbin/httpd –k start

    若有[warn] (2)No such file or directory: Failed to enable the ‘httpready’

    Accept Filter 這個訊息,解決的方法如下,在/boot/loader.conf 設定檔

    中加入 accf_http_load=”YES”,再重新開機即可:

    Command: vi /boot/loader.conf

    Context:

    accf_http_load=”YES”

    伍、 網頁程式修改:

    一、 Html

    在本子計畫五之中,對於撰寫IPv6 之網頁程式設計,HTML超文件標示

    語言(英文:HyperText Markup Language,簡稱為HTML是為「網頁建

    立和其它可在 網頁瀏覽器中看到的資訊」設計的一種標示語言)為本子

    計畫撰寫程式之主要程式語言。在IPv4 的網頁程式設計中,HTML語言

    被廣泛使用為網頁程式設計之標準語言,而在IPv6 網路協定中,此語言

    也為網頁程式設計之標準語言。

    在IPv4 轉換為IPv6 的過程中,其中IPv4 的HTML語言裡的超連結位址,

    如果是以傳統IPv4 的IP位址(ex: http://203.145.202.152/index.html)為連

    結 , 則 必 須 將 此 改 為 Domain Name 的 連 結 位 址 ( ex:

    http://3.bp.blogspot.com/_XNPfJADuv50/Rn0aCKffhdI/AAAAAAAAAIo/lWB8SLGiyZY/s1600-h/syntax.JPGhttp://zh.wikipedia.org/zh-tw/%E8%8B%B1%E6%96%87http://zh.wikipedia.org/zh-tw/%E7%BD%91%E9%A1%B5http://zh.wikipedia.org/zh-tw/%E7%BD%91%E9%A1%B5%E6%B5%8F%E8%A7%88%E5%99%A8http://zh.wikipedia.org/zh-tw/%E7%BD%AE%E6%A0%87%E8%AF%AD%E8%A8%80http://3.bp.blogspot.com/_XNPfJADuv50/Rn0aCKffhdI/AAAAAAAAAIo/lWB8SLGiyZY/s1600-h/syntax.JPG

  • 附件 3-23 

      699

    http://www.niu.edu.tw/index.html),因為在IPv6 的連結中,IPv4 的IP位址

    無法被辨識,所以須改為Domain Name的形式才能被成功連結到正確的

    位址。

    以下二圖為 IPv4 之 IP 超連結位址轉換為可被 IPv6 接受之 Domain Name

    形式的範例。

    修改前:超連結位址為 http://203.145.202.152/document/mytest1.html,此

    為IPv4 之IP位址,當IPv6 使用者點選此連結時將會發生錯誤而無法連結。

    圖 35 修改前程式畫面

    修改後:超連結位址為 http://www.niu.edu.tw/document/mytest1.html,修

    改為Domain Name的形式後,不論是IPv4 或IPv6 的使用者皆可成功點選

    此連結至正確的位址。

    圖 36 修改後程式畫面

    二、 PHP

    PHP(PHP:Hypertext Preprocessor)是一種在電腦上執行的 腳本語言,

    主要用途是在於處理動態網頁,也包含了命令列執行介面(command line

    interface),或者產生圖形使用者介面(GUI)程式。PHP為本子計畫IPv4

    http://www.niu.edu.tw/index.htmlhttp://203.145.202.152/document/mytest1.html�A����Ihttp://203.145.202.152/document/mytest1.html�A����Ihttp://203.145.202.152/document/mytest1.html�A����Ihttp://203.145.202.152/document/mytest1.html�A����Ihttp://www.niu.edu.tw/document/mytest1.htmlhttp://zh.wikipedia.org/zh-tw/%E8%85%B3%E6%9C%AC%E8%AA%9E%E8%A8%80http://zh.wikipedia.org/w/index.php?title=%E5%8B%95%E6%85%8B%E7%B6%B2%E9%A0%81&action=edit&redlink=1http://zh.wikipedia.org/zh-tw/%E5%91%BD%E4%BB%A4%E5%88%97http://zh.wikipedia.org/zh-tw/%E5%9C%96%E5%BD%A2%E4%BD%BF%E7%94%A8%E8%80%85%E4%BB%8B%E9%9D%A2

  • 附件 3-23 

      700

    技術移轉為IPv6 所使用的程式語言之一。在PHP程式設計中,其設計方

    法、技巧與語法使用方式大致上跟IPv4 之PHP程式設計相同,在連結位

    址方面也需將傳統IPv4 之IP位址改成Domain Name的形式才能成功運作

    於IPv6 之使用者。

    在 PHP 程式設計中,IPv4 的網路存取獲得使用者(Client)之 IP 位址之函

    式語法為$_SERVER[‘REMOTE_ADDR’],此函式即會抓取使用者之 IP

    位址並存放於字串變數中,在 IPv6 網路存取中獲取使用者 IP 位址的語

    法函式也如同 IPv4,使用同樣的語法函式即可獲得使用者的 IP 位址。

    以下三圖為實作 IPv6 網路存取獲取使用者 IP 位址之範例。

    程式語法:將使用者 IP 存在$ip 的變數,並且顯示於畫面。

    圖 37 程式語法:將使用者 IP 存在$ip 的變數,並且顯示於畫面。

    使用者為 IPv4 環境之執行結果:正確顯示出使用者 IPv4 之 IP 位址。

    圖 38 使用者為 IPv4 環境之執行結果(顯示使用者 IPv4 IP 位址)

    使用者為 IPv6 環境之執行結果:正確顯示出使用者 IPv6 之 IP 位址。

  • 附件 3-23 

      701

    圖 39 使用者為 IPv6 環境之執行結果(顯示使用者 IPv6 IP 位址)

    三、 ASP

    如何使用 ASP 取得客戶端的 IP 位址?

    答:

    可以使用下列語法取得客戶端的 IP 位址:

    IPv4 客戶端測試畫面

    圖 40 IPv4 客戶端測試畫面

    IPv6 客戶端測試畫面

  • 附件 3-23 

      702

    圖 41 IPv6 客戶端測試畫面

    四、 ASP.NET

    ASP.NET 取得客戶端的 IP 位址

    可使用類似下面程式片段來取得:

    Your IP Address :

    IPv4 客戶端測試畫面

    圖 42 IPv4 客戶端測試畫面

    IPv6 客戶端測試畫面

    圖 43 IPv6 客戶端測試畫面

  • 附件 3-23 

      703

    五、 JSP

    如何使用 JSP 取得客戶端的 IP 位址?

    答:

    可以使用下列語法取得客戶端的 IP 位址

    RemoteAddr:


    RemoteHost:

  • 附件 3-23 

      704

    IPv4 客戶端測試畫面

    圖 44 IPv4 客戶端測試畫面

    IPv6 客戶端測試畫面

    圖 45 IPv6 客戶端測試畫面

  • 附件 3-23 

      705

    六、 IPv4 轉換 IPv6 網頁程式之 IP 位址取代程式

    為方便開發 IPv6 網頁程式者,本子計畫開發出超連結 IP 取代為 Domain Name 之

    解決方案程式(IPv6 Web Program IP Replacement Solution)。提供 IPv6 網頁程式開發者

    一個方便的取代連結程式,開發者只要使用此程式載入任何網頁程式檔案,如:PHP、

    ASP、JSP 等等檔案,即可利用此程式將超連結位址為 IPv4 形式之 IP 位址取代為 IPv4

    與 IPv6 皆可成功連結之 Domain Name。

    以下為此程式之詳細操作說明步驟。

    A、開啟程式:此為程式主要畫面。

    圖 46 開啟程式:此為程式主要畫面。

  • 附件 3-23 

      706

    B、點選開啟檔案按鈕。

    圖 47 點選開啟檔案按鈕

    C、選取要修改之程式檔案。

    圖 48 選取要修改之程式檔案。

  • 附件 3-23 

      707

    D、選取後程式畫面即會顯示出此檔案之程式內容。

    圖 49 選取後程式畫面即會顯示出此檔案之程式內容。

    E、輸入欲尋找取代的 IP 位址與欲取代成的 Domain Name。

    圖 50 輸入欲尋找取代的 IP 位址與欲取代成的 Domain Name。

  • 附件 3-23 

      708

    F、按下 Processing 按鈕程式即開始進行 IP 取代 Domain Name 處理。

    圖 51 按下 Processing 按鈕程式開始進行

    G、取代完成後,程式右方畫面顯示出此程式檔案之處理過程,明確標示出第幾行有哪

    些字串被取代。

    圖 52 程式右方畫面顯示哪些字串被取代。

    F、按下 Save Result 按鈕即可儲存取代完成後的檔案。

  • 附件 3-23 

      709

    圖 53 按下 Save Result 按鈕即可儲存取代完成後的檔案。

    陸、 建置測試環境

    系統轉換的過程中,不論是即將以開發的系統或是現行正在運作中的系統,

    必須經過相當完善的測試後,才能進行系統的上線。如下圖所示,應建置一個測

    試的環境(Testing Server)。

    目前正在上線服務中的系統,進行轉換時測試的伺服器必須與目前正在上線

    的系統儘量相符,如硬體規格、系統軟體版本、網路環境等,以使測試後的系統

    能正確的在正式的系統中上線。

    此外,即將開發的新系統,則必須在最早開發之初必須將雙協定的支援納入

    設計開發的規劃;同時在進行測試時,必須注意即將上線的正式系統是否與測試

    系統的軟體、硬體、網路等相關環境一致。

  • 附件 3-23 

      710

    IPv6

    IPv4 & IPv6

    IPv4DNS Server

    (IPv4 & IPv6)

    Testing Server

    DatabaseWeb Server(IPv4 & IPv6)

    Online Server

    DatabaseWeb Server(IPv4 & IPv6)

    Firewall

    Testing stage

    Implementation stagePresent stage

    圖 54 系統環境建置示意圖

    同時,必須建置使用者端測試環境;包括使用單一 IPv4協定或是單一 IPv6

    協定的使用者電腦,以及使用雙協定(IPv4 & IPv6)的電腦;儘可能包括各

    類作業系統,如 Windows XP, Vista, 7 或是 Linux…等。如此能全面的進行測

    試,以使應用服務系統能完全支援 IPv4 / IPv6 雙協定。

    柒、 系統正式轉換

    在經過測試環境的測試後,系統正式上線時,須特別注意以下幾點:

    1. 測試環境的相關參數修正:大部份系統在測試環境時,連線的伺

    服器資訊都是測試用伺服器,必須在正式上線時再次進行修正相

    關的連線參數,修正到正確的伺服器主機。

    2. DNS 伺服器的負載:由於是採用 Domain Name 的方式支援

    IPv4/IPv6 雙協定,DNS 的負載可能會較重,須特別注意。

    3. 系統故障檢修:在採用 IPv4 / IPv6 雙協定之後,當發生系統問題

    或是使用者反應系統問題時,應特別檢查是否為 IPv4 / IPv6 雙協

    定所影響,以及特別詢問使用者環境為 IPv4 或 IPv6。

  • 附件 3-23 

      711

    捌、 轉換後工作

    系統正式轉換上線後,主要有二項重要的工作必須定期且長期的進行:

    1. 記錄:記錄使用 IPv4 以及 IPv6 使用的狀況,如使用者使用 IPv4 連線或是

    使用 DNS 連線;另外必須記錄系統故障時是因 IPv6 或是 IPv4 的原因;同

    時也要包括 DNS 伺服器的負載狀況;由於後續將會有許多新系統使用雙協

    定,DNS 的查詢負載將會增加,必須加以記錄以利後續的系統調整。

    2. 調整:以上述記錄的結果,進行系統的調整;例如 DNS 負載較重,則可能

    調整 DNS 伺服器的設定或是更新硬體。或是系統發生故障時是因 IPv4 或

    是 IPv6 產生,此時就要對系統進行調整。

    玖、 參考資料

    1. Microsoft TechNet Library - http://technet.microsoft.com/zh-tw/library/default.aspx

    2. IPv6 Forum Taiwan - http://www.ipv6.org.tw/

    3. 台灣 NGN IPv6 移轉技術入口網 - www.rd.ipv6.org.tw

    4. IPv6 Forum - http://www.ipv6forum.com/

  • 附件 3-23 

      712