レベル: 中級 Andras Szakal, Distinguished Engineer, IBM Bhargav Perepa , Integration Technology Specialist, IBM Jeff Tennenbaum, IT Specialist, IBM Jennifer Koehl, Architect-in-Residence , IBM
2008年 10月 08日 この記事では、IPv6 のインフラストラクチャーと、IPv4/IPv6 混合モードのインフラストラクチャーに対する IBM® WebSphere® Application Server V7 のサポートを検証する手順について、その概要を説明します。提案するアーキテクチャー、およびオペレーティング・システムと WebSphere Application Server の構成手順のほか、多様な IP スタック間のメッセージングを検証するためのサンプル・アプリケーションを紹介します。 「IBM WebSphere Developer Technical Journal」より
はじめに
IBM WebSphere Application Server V7 は、J2EE™ 1.5 仕様に準拠した IBM の Java™ Platform, Enterprise Edition (Java EE) 5 プラットフォームの実装です。IBM WebSphere Application Server V7 は、J2EE アプリケーション、ポートレット・アプリケーション、Session Initiation Protocol (SIP) アプリケーションといった、エンタープライズ・クラスのアプリケーション用の実行環境を提供します。WebSphere Application Server は先進的なトポロジーでエンタープライズ・アプリケーションをホスティングし、ワークロード管理、スケーラビリティー、高可用性、さらには集中管理といった機能を備えています。
IPv6 は、インターネットの基盤となる、データのパッケージングとルーティングのための標準であるインターネット・プロトコルの「次世代」バージョンです。IPv6 (Internet Protocol version 6) では、現行バージョンの IPv4 からいくつかの点が改良されています。最も重要な点は、IPv4 で 32 ビットであったインターネット・アドレスが、IPv6 では 128 ビットとなり、利用できるアドレスが約 40 億から 3.4 × 1038 個に増えたことです。急成長を続けるインターネットの現状を考えれば、十分なアドレス数の確保は極めて重要な課題です。有線および無線デバイスの急増によって、インターネットを使う 1 人 1 人に複数のアドレスが必要となります。IPv6 はまた、連邦政府だけでなく、この新しいプロトコルに移行途中の多くの州や地方自治体、世界中の営利団体にとって戦略的な方向であるとともに、重要な要件です。
WebSphere Application Server はネイティブのオペレーティング・システム・プラットフォーム上で稼働するミドルウェアです。WebSphere Application Server 自身ではトランスポート層に通信プロトコルの TCP/IP を実装せずに、ホストのオペレーティング・システム・プラットフォームがトランスポート層で提供するネイティブの TCP/IP を使用します。WebSphere Application Server が IPv6 環境内で動作することは保証されています。
この記事では、WebSphere Application Server のトポロジーを、純粋な IPv6 と、IPv6/IPv4 混合モードのインフラストラクチャーで構成、デプロイ、検証する方法を紹介します。具体的には、以下のユース・ケースを取り上げます。
- 純粋な IPv6 インフラストラクチャーと、Microsoft® Windows® プラットフォーム環境を利用した WebSphere Application Server デプロイメント・トポロジー
- 純粋な IPv6 インフラストラクチャーと、RedHat Enterprise Linux® リリース 4 のプラットフォーム環境を利用した WebSphere Application Serverトポロジー
- 純粋な IPv6 インフラストラクチャーと、Windows および RedHat Enterprise Linux® リリース 4 の異種混合のホスティング環境を利用した WebSphere Application Serverトポロジー
- IPv6/IPv4 混合モードのインフラストラクチャーと、Windows および RedHat Enterprise Linux® リリース 4 の異種混合のホスティング環境を利用した WebSphere Application Serverトポロジー
アーキテクチャー
WebSphere Application Server のトポロジーを検証するには、図 1 に示すサンプル・アーキテクチャーのような独立したネットワークを設定します (WebSphere Application Server 固有の IP 関連のトピックについては「参考文献」を参照のこと)。
図 1. インフラストラクチャー・トポロジーのサンプル・アーキテクチャー

この記事で取り上げるユース・ケースは、2 つの異なるオペレーティング・システムの各システム内およびシステム間の通信を検証するためのベースとして選びました (ホストの概要については、表 1 および 2 を参照のこと)。このインフラストラクチャーでは、Windows Server 2003 および Red Hat Enterprise Linux 4.6 という 2 種類の一般的なプラットフォーム上で 2 つのホストを利用でき、同種環境と異種混合環境の両方を柔軟にテストすることが可能です。
表 1. インフラストラクチャー・トポロジー内のホスト: Windows Server 2003
| ホスト名 | V4 IP アドレス | V6 IP アドレス |
|---|
| MSW2K31.mcl.us.ibm.com | 10.69.16.163 | fe80::202:55ff:feac:dbf | | MSW2K32.mcl.us.ibm.com | 10.69.16.102 | fe80::202:55ff:feac:4121 |
表 2. インフラストラクチャー・トポロジー内のホスト: Red Hat Enterprise Linux 4.6
| ホスト名 | V4 IP アドレス | V6 IP アドレス |
|---|
| rhel1.mcl.us.ibm.com | 10.69.16.121 | fe80::202:b3ff:fed2:1e31 | | rhel2.mcl.us.ibm.com | 10.69.16.173 | fe80::202:b3ff:fed3:27cc |
手法
ここでは、WebSphere Application Server に付属している、サンプルである Jave EEアプリケーションの PlantsByWebSphere を使って、IPv6 および混合モードのインフラストラクチャー上で WebSphere Application Server を稼働させてテストするという手法を取ります。developerWorks には、メッセージ駆動型 Bean を使用して簡単な point-to-point の JMS アプリケーションを作成する方法を実演している記事がありますが、そこで紹介されているサンプル・アプリケーションを使うと、さらに詳細なテストを実施できます。このサンプル・アプリケーションでは、WebSphere Application Server で提供されるSystem Integration Bus (SIBus) と JMS 機能が活用されています。
クライアント・サイドのテストでは、Web ブラウザー・クライアントを使用して PlantsByWebSphere アプリケーションを呼び出します。JMS アプリケーションについては、WebSphere Application Server の launchClient ツールを使って、リモートのクライアントからコマンド起動します。これらのアプリケーションはどちらも、インフラストラクチャーの IP スタック上でクライアント/サーバー通信を行います。WebSphere Application Server v7 は IPv6 対応であるため、通信は基盤となるスタックのバージョンに関係なく、シームレスに行われます。
オペレーティング・システムの構成
まず必要なのはホスト同士の通信をどのように行うかを決めることです。これには DNS を使用して IP アドレスを操作しても、ホスト・ファイルを使用して手動で行ってもかまいません (ホスト名の解決について概説する Microsoft の TechNet ドキュメントについては、「参考文献」を参照のこと)。
この記事で取り上げた例では、ホスト・ファイルを使用して IP アドレスと関連するバージョンのプロトコルを操作しています。ホスト・ファイルに IPv6 形式でアドレスを入力すると、そのホストのすべての解決はバージョン 6 で行われます。同様に、IPv4 形式で入力すると、バージョン 4 で行われます。通信方法の操作にホスト・ファイルを使用する場合は、IPv6 通信用のホスト間に IP ルートを手動で作成する必要があります。これには次のコマンド構文を使用します (netsh コマンドについて概説する Microsoft の TechNet ドキュメントについては、「参考文献」を参照のこと)。
リスト 1
netsh interface IPv6 add address [interface=]InterfaceNameOrIndex
[address=]IPv6Address [[type=]unicast|anycast] [[validlifetime=]Minutes|infinite]
[[preferredlifetime=]Minutes|infinite] [[store=]active|persistent] |
例えば、これらのコマンドを MSW2K31.mcl.us.ibm.com ホスト上で使用して、手動で IPv6 アドレスをネットワーク・メンバーに追加し、次にホスト MSW2K32.mcl.us.ibm.com でも同じ手順を繰り返しました。
リスト 2
netsh interface ipv6 add address address=fe80::202:55ff:feac:dbf/64 "Local Area
Connection"
netsh interface ipv6 add address address=fe80::202:55ff:feac:4121/64 "Local Area
Connection"
netsh interface ipv6 add address address=fe80::202:b3ff:fed2:1e31/64 "Local Area
Connection"
netsh interface ipv6 add address address= fe80::202:b3ff:fed3:27cc/64 "Local Area
Connection" |
Linux の場合、ルートは手動で構成する必要はありません。
同種環境のシナリオで通信を検証するには、表 3 にまとめたユース・ケースを利用できます。
表 3. テスト対象のユース・ケースの詳細: 同種環境のシナリオ
| ユース・ケース | クライアントのホスト名 | クライアントの IP スタック | サーバーのホスト名 | サーバーの IP スタック | クライアントのアドレス | サーバーのアドレス | 備考 |
|---|
| 1 | MSW2K32 | IPv6 | MSW2K31 | IPv6 | fe80::202:55ff:feac:4121 | fe80::202:55ff:feac:dbf | 図 2 および 3 | | 2 | MSW2K32 | IPv4 | MSW2K31 | IPv4 | 10.69.16.102 | 10.69.16.163 | -- | | 3 | MSW2K32 | IPv4 | MSW2K31 | IPv6 | 10.69.16.102 | fe80::202:55ff:feac:dbf | -- | | 4 | MSW2K32 | IPv6 | MSW2K31 | IPv4 | fe80::202:55ff:feac:4121 | 10.69.16.163 | -- | | 5 | rhel2 | IPv6 | rhel1 | IPv6 | fe80::202:b3ff:fed3:27cc | fe80::202:b3ff:fed2:1e31 | -- | | 6 | rhel2 | IPv4 | rhel1 | IPv4 | 10.69.16.173 | 10.69.16.121 | -- | | 7 | rhel2 | IPv4 | rhel1 | IPv6 | 10.69.16.173 | fe80::202:b3ff:fed2:1e31 | -- | | 8 | rhel2 | IPv6 | rhel1 | IPv4 | fe80::202:b3ff:fed3:27cc | 10.69.16.121 | -- |
ユース・ケース 1 では、v6 対 v6 の通信を検証します。これをするには、図 2 および 3 に示すようにホスト・ファイルの内容を設定します。ホスト・ファイルは、c:\WINDOWS\system32\drivers\etc\ ディレクトリー (Windows の場合)、または /etc/hosts (Linux の場合) にあります。
図 2. クライアントの MSW2K32 ホスト・ファイルの内容

図 3. サーバーの MSW2K31 ホスト・ファイルの内容

ユース・ケース 2 から 8 に使用するホスト・ファイルの内容は、表 3 に示しています。クライアントとサーバーの両方のホストについて、IPv4 または IPv6 形式の必要なアドレス行のコメントを外し、残りの不要な IP アドレスの行はコメント化する必要があります。ホスト・ファイルを変更してもリブートする必要はありませんが、ファイルは保存して閉じてください。ホスト・ファイルの変更後に通信を検証するには、以下のホスト名を使って、ホストに ping を行います。
Windows では、コマンド・プロンプトから次のping コマンドを発行します。
ping hostname
ホスト・ファイルで使用されている IP のバージョンが v4 である場合、応答は xx.xx.xx.xxx 形式で返されます。IP バージョンが v6 であれば、応答は xxxx::xxx:xxxx:xxxx:xxxx 形式になります。
-
Linux で IPv6 経由で ping を発行するには、次のコマンドを実行します。
> ping6 –hostname
ここで、「hostname」はホスト・ファイルで指定されているホスト名です。
異種混合のシナリオで通信を検証するには、表 4 にまとめたユース・ケースを利用できます。
表 4. ユース・ケースの詳細: 異種混合のシナリオ
| ユース・ケース | クライアントのホスト名 | クライアントの IP スタック | サーバーのホスト名 | サーバーの IP スタック | クライアントのアドレス | サーバーのアドレス | 備考 |
|---|
| 9 | rhel2 | IPv4 | MSW2K31 | IPv6 | 10.69.16.173 | fe80::202:55ff:feac:dbf | Figures 4 and 5 | | 10 | MSW2K32 | IPv6 | rhel1 | IPv4 | fe80::202:55ff:feac:4121 | 10.69.16.121 | -- |
ユース・ケース 9 では、図 4 および 5 に示すようにホスト・ファイルの内容を設定します。ユース・ケース 10 については、表 4 のようにホスト・ファイルの内容を設定します。クライアントとサーバーの両方のホストについて、IPv4 または IPv6 形式の必要なアドレス行のコメントを外し、残りの不要な IP アドレスの行はコメント化する必要があります。
図 4. クライアントの rhel2 ホスト・ファイルの内容

図 5. サーバーの MSW2K31 ホスト・ファイルの内容

IPv6 対応の WebSphere Application Serverの構成
IPv6 を使用する、または使用する予定のインフラストラクチャーに WebSphere Application Server を実装する際には、いくつかの項目を考慮する必要があります。これらの考慮事項の一部はオペレーティング・システムの構成に関するものですが、その他は WebSphere Application Server の各バージョンの実装方法に直接関係します。
IBM HTTP Server を Windows で使用する場合、httpd.conf ファイルにはその IPv6 アドレスの Listen ディレクティブを含める必要があります。デフォルトの IPv6 アドレスを使用する場合は、Listen [::]:80 と指定します。IPv4 環境では、これに対応する Listen ディレクティブは Listen 0.0.0.0:80 です。
-
デュアル・スタック環境で機能するアプリケーションでは、デュアル・モードのセルを実装しなければなりません。IPv4 と IPv6 が混在する通信は、デュアル・モード・セルでサポートされます。デフォルトではセルは作成時にデュアル・モードに設定されます。ただし、デュアル・モード・セルで有効なのは、WebSphere Application Server V6 以降を実行しているノードのみです。
-
WebSphere Application Server のプロファイルを作成する際には、プロファイルを作成しているマシンのホスト名か IP アドレスを入力するよう求められます。他のノードは、ここで指定するホスト名または IP アドレスを使って、作成中のノードと通信します。ホスト名を指定する場合は、システムが IPv4 と IPv6 のどちらのために構成されているかを気にする必要はありません。DNS サービスが正しく構成されていれば、ノードは問題なく通信できるはずです。
-
多くの場合、明示的な IPv6 IP アドレスを大括弧で囲むのがよいでしょう。IPv6 のアドレスの指定に大括弧を使用してはならない特定のインスタンスについては、WebSphere Application Server V7 Information Center を参照してください。
この記事に記載した WebSphere 環境では、以下に示すサンプル・アプリケーションを実行するのに構成を変更する必要はありません。WebSphere Application Server を構成またはインストールする際に、ホスト名またはアドレスの入力を求められた場合は、ホスト名を入力してください。
サンプル・アプリケーションの実行
この演習の一環として WebSphere Application Server をインストールしている場合は、「オプション・フィーチャーのインストール」パネルが表示されます。「サンプル・アプリケーションをインストールする」を選択して、ここで IPv6 環境をテストするのに使用するサンプル・アプリケーション PlantsByWebSphere をデプロイします。WebSphere Application Server が既にインストールされており、後からPlantsByWebSphere サンプル・アプリケーションをインストールしたい場合は、WebSphere Application Server Information Center に掲載されている手順に従ってください。
この時点でオペレーティング・システムと WebSphere Application Server の構成は完了していますので、これで 2 つのサンプル・アプリケーションをデプロイして、テストする準備が整います。PlantsByWebSphere によって、WebSphere Application Server が SIBus をどう使用するのかを実際に見ることができます。developerWorks の記事に記載されているもう 1 つのサンプル・アプリケーションでは、JMS が使用されています。IPv6 および IPv4/IPv6 混在モードでメッセージが正常に転送されたかどうかは、それぞれ以下に示す手順に従って確認します。また、使用する通信バージョンを操作する方法については既に読者は理解されているはずですので、これで保有する IPv6 の異種混合環境および同種環境を自分でテストすることができます。
テストしたいユース・ケースによって、ホスト・ファイルを上記の説明に従って構成してください。
PlantsByWebSphere アプリケーションの実行
Windows の場合
ホスト MSW2K32.mcl.us.ibm.com でブラウザーを開き、図 6 に示すように http:// MSW2K31.mcl.us.ibm.com:9080/PlantsByWebSphere に移動します。
図 6. Windows 上の PlantsByWebSphere ブラウザー・クライアント

図 7 では、クライアントのパースペクティブから PlantsByWebSphere アプリケーションが正常に実行されたことが確認できます。
図 7. PlantsByWebSphere の成功パネル

通信に成功すると、サーバーの SystemOut.log の出力はリスト 3 のようになります。以下の名前が付けられた、それぞれのホスティング・サーバーから出力される詳細なトレース結果を個別に確認できます。
- MSW2K31_SystemOut.log
- MSW2K32_SystemOut.log
- rhel1_SystemOut.log
- rhel2_SystemOut.log.
下に示した情報行や SystemOut トレース出力行から分かるように、これらのトレース・ファイルは、ユース・ケースが正常に実行されたことを示しています。
リスト 3. PlantsByWebSphere の SystemOut.log の明示的な出力
[10/01/08 12:22:17:593 EDT] 0000001e servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [/product.jsp]: Initialization successful.
[10/01/08 12:22:17:656 EDT] 0000001e servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [ImageServlet]: Initialization successful.
[10/01/08 12:22:21:281 EDT] 0000001e servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [/cart.jsp]: Initialization successful.
[10/01/08 12:22:23:046 EDT] 00000022 servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [/login.jsp]: Initialization successful.
[10/01/08 12:22:39:937 EDT] 00000022 servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [/register.jsp]: Initialization successful.
[10/01/08 12:23:05:578 EDT] 0000001e servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [AccountServlet]: Initialization successful.
[10/01/08 12:23:06:062 EDT] 0000001e servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [/orderinfo.jsp]: Initialization successful.
[10/01/08 12:23:33:015 EDT] 0000001e servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [/checkout_final.jsp]: Initialization successful.
[10/01/08 12:23:38:796 EDT] 0000001e servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [/orderdone.jsp]: Initialization successful.
[10/01/08 12:23:44:156 EDT] 0000001e servlet I
com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I:
[PlantsByWebSphere] [/PlantsByWebSphere] [/shopping.jsp]: Initialization successful. |
Linux の場合
クライアント・システムのブラウザーで、アプリケーションを実行する Linux ホストをポイントします。この例では、ホスト名の代わりに、URL の一部として IPv6 アドレスが使用されています。そのため、図 8 および 9 に示すように、URL は http://[fe80::202:b3ff:fed3:27c]:9080/PlantsByWebSphere と入力されています。URL に含まれる IPv6 アドレスは大括弧で囲む必要があります。(古いバージョンのインターネット・ブラウザーの中には、IPv6 アドレスが含まれた URL をサポートしないものがあります。そのため、テストの前に、使用するブラウザーのバージョンが IPv6 をサポートしていることを確認してください。)
図 8. Linux 上の PlantsByWebSphere ブラウザー・クライアント

図 9. PlantsByWebSphere の成功パネル

IPv6 環境での JMS クライアント・アプリケーションの実行
簡単な JMS メッセージング・アプリケーションを実行することによって、IPv6 環境での WebSphere Application Server のメッセージング能力をさらに検証できます。このテストのために利用するサンプル・アプリケーションとしては、Rachel Reinitz と Andre Tost による developerWorks の記事、「Building an Enterprise Service Bus with WebSphere Application Server V6」で紹介されているものが理想的です。このアプリケーションは J2EE クライアント・アプリケーション内で実行される送信側の部分と、メッセージ駆動型 Bean で表される受信側で構成されます。このアプリケーションを利用して、すべてのユース・ケースで JMS 通信の検証を正しく行うことができます。(このサンプル・アプリケーションは本来 WebSphere Application Server V6 用に作成されたものですが、わたしたちの研究室では WebSphere Application Server V6 および V7 の両用に設計されたものとして稼働していました。)
テストしたいユース・ケースによって、ホスト・ファイルを説明に従って構成してください。前述のすべてのユース・ケースの正常な出力は、図 10、11 およびリスト 4 に示されたコード行に沿って表示されます。
活動化仕様などの JMS の成果物にデフォルト以外のプロバイダー・エンドポイントを指定する際に、エンドポイントにホスト名でなくホスト・アドレスを指定する場合は、次のように IPv6 アドレスを大括弧で囲んでください。
Ex [fe80::202:55ff:feac:dbf] :7276
JMS アプリケーションを呼び出すには、このアプリケーションが提供された developerWorks の記事で述べられているように WebSphere Application Server の launchClient ツールを使用します。
図 10. launchClient.bat

図 11. コンソール出力

リスト 4 にはサンプル JMS アプリケーションの SystemOut.log 出力が示されています。
[10/01/08 13:28:12:562 EDT] 0000002c SystemOut O Received message : Package
Received - 24595023 |
まとめ
これで、同種環境と異種混合環境のオペレーティング・システム・プラットフォームで、IPv6 と、IPv6/IPv4 混合モードによる WebSphere Application Server v7.0 (SIBus および JMS) のクロスセルのデプロイメント・トポロジーを構成し、検証することができました。この演習を通して、ミドルウェア・プラットフォームである WebSphere Application Server が、基盤となるトランスポート・インフラストラクチャーをシームレスに利用するしくみを学ぶことができました。
謝辞
本研究では、McLean Technical Exploration Center システム管理者の Jeremy Scheer 氏にはテスト環境の管理をおいて、また WebSphere IT スペシャリストの Geetika Tandon 氏には本稿のレビューにおいて、多大なご協力をいただきました。ここに、厚く謝意を表します。
ダウンロード | 内容 | ファイル名 | サイズ | ダウンロード形式 |
|---|
| ファイルのサンプル | ipv6attachments.zip | 46 KB | HTTP |
|---|
参考文献 学ぶために
製品や技術を入手するために
著者について  | |  | Andras Szakal は IBM Distinguished Engineer であり、Federal Software Group のチーフ・ソフトウェア IT アーキテクトです。James Madison University で生物学と情報科学の学士号および情報科学の修士号を取得しています。 |
 | |  | Bhargav Perepa は WebSphere IT スペシャリストとしてワシントン D.C. の IBM Federal Software Group に勤務しています。IBM Austin WebSphere Development Lab では WebSphere 開発者として働き、IBM Chicago では Smalltalk、C++ での開発経験があります。 Perepa はシカゴの IIT で情報科学の修士号を取得し、テキサスの UT-Austin で MBA を取得しています。 |
 | |  | Jeff Tennenbaum は WebSphere IT スペシャリストであり、Federal Strategic Integrated Technology チームのメンバーです。 |
 | |  | Jennifer Koehl はバージニア州マクリーンにある McLean Technical Exploration Center で、IBM Federal Software Architect-in-Residence として働いています。 |
記事の評価
|