次の項では、Oracle WebLogic Server SIP ContainerドメインでDiameterノード、あるいはリレーとしての役割を果たす個別のサーバーの構成方法を説明します。
通常なOracle WebLogic Server SIP Containerドメインは、Diameterベースのプロトコルおよび、Diameterクライアント・ノードとして動作するエンジン属サーバーにデプロイされる1つまたは複数のIMS Diameterインタフェース・アプリケーション(Sh、Ro、Rf)をサポートしています。エンジン上にデプロイされるSIPサーブレットでは、利用可能なDiameterアプリケーションを使用して、ユーザー・プロファイル・データ、アカウンティングおよびクレジット管理に対するリクエストを発信することや、プロファイル・データの変更通知のサブスクライブと受信することができます。
1つまたは複数のサーバー・インスタンスをDiameterリレー・エージェントとして構成することもできます。Diameterリレー・エージェントは、クライアント・ノードからのDiameterメッセージをルーティングして、ネットワーク内で構成されているHome Subscriber Server (HSS)や他のノードに転送しますが、メッセージを変更する処理は行いません。ドメイン内の1つまたは複数のサーバーをリレー・エージェントとして構成することをお薦めします。リレー・エージェントを使用するとDiameterクライアント・ノードの構成が容易になり、HSSへのネットワーク接続の数を削減できます。少なくとも2つのリレー・エージェントを使用すると、1つのリレー・エージェントに障害が発生した場合でも、HSSへのルートを必ず確立することができます。
注意: 3GPPでは、複数のHSSをサポートできるように、適切なHSSをルックアップするためのDhインタフェースが定義されています。Oracle WebLogic Server SIP ContainerにはDhインタフェース・アプリケーションは含まれていないため、Oracle WebLogic Server SIP Containerで可能なのは単一のHSSを使用する構成のみです。 |
リレー・エージェント・サーバーは、エンジン層またはSIPデータ層のインスタンスとしては機能しないことに注意してください - つまり、アプリケーションのホスト、呼出し状態データの格納、SIPタイマーの管理、SIPプロトコール・ネットワーク・リソース(sipまたはsipsネットワーク・チャネル)の使用は許されません。
Oracle WebLogic Server SIP ContainerはShおよびRoプロトコルのシミュレータ・アプリケーションも提供します。ShとRoクライアントを開発するとき、シミュレータ・アプリケーションをテストのために使用できます。シミュレータ・アプリケーションは本番システムのデプロイメント用のものではありません。
Oracle WebLogic Server SIP ContainerドメインにDiameterサポートを構成するには、次の手順を実行します。
Oracle WebLogic Server SIP Container Diameterドメインのインストール。Diameterドメインをインストールします。このドメインには、各種のDiameterノード・タイプ用に構成されたサンプル構成およびテンプレート・アプリケーションが含まれています。Diameterドメインは、ユーザー独自のドメインのテンプレートとして使用したり、様々なDiameterノード・タイプの構成方法を理解するために使用できます。
Diameterコンソール拡張を有効化してください。サンプルのDiameterドメインで作業している場合、Diameterコンソール拡張はすでに有効化しています。基本的なOracle WebLogic Server SIP Containerドメインを使用して起動する場合は、拡張を有効化するため、config.xml
ファイルを編集します。
Diameterネットワーク・チャネルを作成します。エンジン層サーバーおよびリレー・エージェント上で、TCP、TLSまたはSCTPトランスポートのDiameterをサポートするために必要なネットワーク・チャネルを作成します。
Diameterノードを作成して、構成します。リレー・エイジェントやHSSのようなその他のネットワーク要素へのルート、ホスト名、ピアを使用して、エンジン層サーバーにDiameter・プロトコル・クライアント・アプリケーションを構成します。WebLogic SIP Serverインスタンスなしで、スタンドアロン・モードで動作するDiameterノードも構成することができます。
次の項では、各手順について詳しく説明します。詳細は、6.7項「ドメインの構成例」も参照してください。
構成ウィザードでは、次の4つのOracle WebLogic Server SIP Containerインタスンスを含むドメインが作成されるDiameterドメインのテンプレートが含まれています。
管理サーバー(AdminServer)
Diameter Shクライアント・ノード(hssclient)
Diameterリレー・ノード(リレー)
HSSシミュレータ(hss)
すでにインストールしたDiameterドメインは、独自のドメインを作成するための基準として使用できます。また、カスタマイズしたDiameter Webアプリケーションをテンプレートとして使用して、既存のOracle WebLogic Server SIP ContainerインスタンスをHSSクライアントまたはリレー・エージェント・ノードとして機能するように構成することもできます。次の項で示す構成の手順は、Diameterドメインの構成にアクセスできることを前提としたものです。ドメインをインストールするには、次の手順に従います。
WLS_HOME\common\bin
ディレクトリに移動します。WLS_HOME
はOracle WebLogic Server10g リリース 3のOracle WebLogic Server SIP Containerをインストールしたディレクトリです (たとえば、c:\bea\wlserver_10.3\common\bin
)。
config.cmd
またはconfig.sh
スクリプトを実行して、構成ウィザードを起動します。
「新しいWebLogicドメインの作成」を選択し、「次へ」をクリックします。
既存のテンプレート上では、「既存のテンプレートを、このドメインのベースにする」を選択して、「参照」ボタンをクリックします。
diameterdomain.jar
テンプレートを選択して、「OK」をクリックします。
「次へ」をクリックします。
新しいドメインの管理者のユーザー名とパスワードを入力し、「次へ」をクリックします。
新しいドメインで使用する起動モードとJDKを選択し、「次へ」をクリックします。
デフォルト・テンプレート・オプションを取得するため「いいえ」を選択して「次へ」をクリックします。
デフォルトのドメイン名およびドメインの場所(/user_projects/domains/diameter
)を使用して、新しいドメインを作成するには、「作成」をクリックします。
「完了」をクリックします。
表6-2 では、Diameterドメインにインストールされたサーバー構成について説明します。
表6-1 Diameterドメインの主要な構成要素
サーバー名 | ネットワーク・チャネルの構成 | Diameterアプリケーション | ノート |
---|---|---|---|
AdminServer |
なし |
なし |
Administration ServerはSIPまたはDiameterのプロトコル機能を提供しません。 |
hssclient |
diameter (ポート3868上のTCP) sip (ポート5060上のUDP/TCP) |
WlssShApplication |
|
relay |
diameter (ポート3869上のTCP) |
RelayApplication |
Diameterノードの構成は、 |
hss |
diameter (ポート3870上のTCP) |
HssSimulator |
|
Oracle WebLogic SIP Serverは、Diameterノードを作成して構成するためのコンソール拡張を提供します。拡張によって作成された実際の構成は、ドメイン・ディレクトリのconfig/custom
サブディレクトリにあるdiameter.xml
構成ファイルに保存されています。
サンプルDiameterドメインでは、Diameterコンソール拡張はすでに有効化されています。拡張を有効化しないドメインを使用している場合は、ドメインのconfig.xml
ファイルを編集して、拡張のカスタム・リソースを指定します。例6-1は、コンソール拡張を有効化するために必要なconfig.xml
エントリを強調表示しています。テキスト・エディタを使用して、config.xml
の正しい位置に強調表示されたラインを追加します。
例6-1 Diameterコンソール拡張を有効にするためのconfig.xmlエントリ
<custom-resource> <name>sipserver</name> <target>hssclient</target> <descriptor-file-name>custom/sipserver.xml</descriptor-file-name> <resource-class>com.bea.wcp.sip.management.descriptor.resource.SipServerResource</resource-class> <descriptor-bean-class>com.bea.wcp.sip.management.descriptor.beans.SipServerBean</descriptor-bean-class> </custom-resource> <custom-resource> <name>diameter</name> <target>hssclient,relay,hss</target> <deployment-order>200</deployment-order> <descriptor-file-name>custom/diameter.xml</descriptor-file-name> <resource-class>com.bea.wcp.diameter.DiameterResource</resource-class> <descriptor-bean-class>com.bea.wcp.diameter.management.descriptor.beans.DiameterBean</descriptor-bean-class> </custom-resource> <custom-resource> <name>ProfileService</name> <target>hssclient</target> <deployment-order>300</deployment-order> <descriptor-file-name>custom/profile.xml</descriptor-file-name> <resource-class>com.bea.wcp.profile.descriptor.resource.ProfileServiceResource</resource-class> <descriptor-bean-class>com.bea.wcp.profile.descriptor.beans.ProfileServiceBean</descriptor-bean-class> </custom-resource> <admin-server-name>AdminServer</admin-server-name> </domain>
Oracle WebLogic SIP Server ContainerのDiameter実装では、TCP、TLSまたはSCTPトランスポートプロトコル上のDiameterプロトコルがサポートされています。(SCTPトランスポートには、6.5.2項「DiameterメッセージングのためのSCTPの構成と使用」で説明されているような特定の制限があります。)
サーバーで着信Diameter接続が利用できるようにするには、適切なプロトコル・タイプの専用ネットワーク・チャネルを設定する必要があります。
「diameter」チャネルはTCPトランスポートを使用します。
「diameters」チャネルはTCP/TLSトランスポートを使用します。
「diameter-sctp」チャネルはTCP/SCTPトランスポートを使用します。
Diameter用のTCP/TLSチャネル(diametersチャネル)を使用するサーバーでは、双方向SSLも有効にする必要があります。Diameter仕様(RFC 3558)に記述されているように、Oracle WebLogic SIP Server Containerは、TLSを使用するためにDiameter TCP接続を自動的にアップグレードする場合があります。
Diameterプロバイダで使用するTCPチャネルまたはTCP/TLSチャネルを構成するには、次の手順に従います。
Oracle WebLogic SIP Containerドメインの管理コンソールにアクセスします。
「ロックして編集」をクリックし、構成ロックを取得します。
左ペインで、構成する対象のサーバーの名前を選択します。
右ペインで、「プロトコル」>「チャネル」を選択して、構成済のチャネルを表示します。
「新規」をクリックして、新しいチャネルを構成します。
「IDプロパティ」ページの各フィールドに、次の情報を入力します。
名前: このチャネルに付ける管理用の名前(たとえば「Diameter TCP/TLS Channel」)を入力します。
プロトコル: TCPトランスポートのサポートに「diameter」、TCPおよびTLSトランスポートのサポートに「diameters」、またはTCPトランスポートのサポートに「diameter-sctp」を選択します。
注意: TLSチャネルが1つでも構成されているサーバーはTLSモードで動作し、TLSをサポートしていないノードからのピア接続を拒否します(相手がTLSをサポートしているかどうかは、機能情報の交換時に確認されます)。 |
「次へ」をクリックして続行します。
「ネットワーク・チャネル」>「アドレス」ページの各フィールドに、次の情報を入力します。
リスニング・アドレス: このチャネルのIPアドレスまたはDNS名を入力します。マルチ・ホーム・マシンの場合は、構成対象のインタフェースの正確なIPアドレス、またはその正確なIPアドレスにマッピングされているDNS名を入力します。
リスニング・ポート: このチャネルを介した通信に使用するポート番号を入力します。Diameterノードでは、通常は着信接続ポートとしてポート3868が使用されます。
外部リスニング・ポート: リスニング・ポートの値を再入力します。
「次へ」をクリックして続行します。
以下のように「ネットワーク・チャネル・プロパティ」ページの属性を選択します。
有効化: 新しいチャネルがネットワーク・トラフィックの受信を確定するためにこの属性を選択します。
トンネリング有効化: Diameterチャネルに対してこの属性の選択を解除します。
このプロトコルでHTTPを有効化: Diameterチャネルに対してこの属性の選択を解除します。
発信の有効化: チャネルを使用してノードがDiameterメッセージを開始できるようにこの属性を選択します。
「次へ」をクリックして続行します。
「diameters」チャネルに対して、次の2つの属性を選択します。
Two Way SSL Enabled:TLSトランスポートには双方向SSLが必要です。
Client Certificate Enforced:安全な通信のために利用できるクライアント証明書を受け取るためにこの属性を選択します。
「終了」をクリックして、新しいチャネルを作成します
ネットワーク・チャネル表に新たに作成されたチャネルの名前を選択します。
「詳細設定」リンクをクリックして、新たに作成したチャネルの詳細な構成項目を表示します。
アイドル接続タイムアウトのデフォルト値(65秒)をより大きな値に変更して、Diameter接続を一貫して利用し続けられるようにします。
注意: デフォルト値を変更しないと、アイドル状態の継続時間が65秒に達するたびにDiameter接続の切断と再確立が行われます。 |
「保存」をクリックします。
「変更のアクティブ化」をクリックします。
Diameterドメイン・テンプレートを使用してインストールされたサーバーでは、TCPトランスポートを使用するDiameter用のネットワーク・チャネルが構成されています。リレー・サーバーではdiameterチャネルのみが構成され、sipチャネルやsipsチャネルは含まれていません。リレー・エージェントはSIPサーブレットやその他のアプリケーションのホストとしては使用できないので、リレー・サーバー・ノード上ではSIPトランスポートを構成しないでください。
TLS上のDiameterチャネル(diametersチャネル)を使用するには双方向SSLを有効にする必要があります。双方向SSLがデフォルトでは無効されています。サーバーで双方向SSLを有効にするには、前述の手順に従います。
SCTPは、テレフォニ・ネットワークで使用するために設計された、メッセージに基づく信頼性の高いトランスポート・プロトコルです。SCTPはTCPに比べていくつかの利点があります。
データをエンドポイントに送信する場合、SCTPはメッセージの内部構造を保存します。一方、TCPは順番に受信する必要のある生のバイトを送信します。
SCTPはマルチ・ホームをサポートし、各エンドポイントに複数のIPアドレスを割り当てることができます。SCTPプロトコルは接続に失敗すると、他のIPアドレスに透過的にフェイルオーバーできます。
SCTPはマルチ・ストリーミング機能を提供します。接続された複数のストリームは、互いに関係なくデータを送信します。
Oracle WebLogic SIP Containerは、Diameterネットワーク・トラフィック用のSCTPをサポートしますが、いくつかの制限があります。
現在サポートされているのは、接続ごとに1つのストリームだけです。
SCTPはDiameterネットワーク・トラフィックにのみ使用できます。SIPトラフィックは設定されたSCTPチャネルを使用できません。
TLSはSCTPでサポートされません。
さらに、Oracle WebLogic Server SIPは、次のソフトウェア プラットホームのSCTPチャネルのみサポートします。
32または64ビット・ハードウェア上のRed Hat Enterprise Linux 4.0 AS、ES、WS (カーネル2.6.9、GCC 3.4以上)
SPARC上のSun Solaris 10
SCTPチャネルはIPv4またはIPv6いずれかのネットワークで動作できます。6.5項では、新しいSCTPチャネルの作成方法について説明します。既存のSCTPチャネルに対してマルチホーム機能を使用するには、IPv4・アドレス0.0.0.0
をチャネルのリスニング・アドレスとして指定します(IPv6・ネットワークは::
アドレスを使用します)。
Oracle WebLogic Server SIP ContainerエンジンのDiameterノード構成は、diameter.xml
構成ファイルに保存されます。(domain_home/config/custom/diameter.xml
)エンジン層サーバーでdiameterサービス(クライアント、サーバーまたはリレー機能)を提供するには、新しいノード構成を作成して、既存のエンジン・サーバー・インスタンスに適用する必要があります。
Diameterノード構成にはいくつかのカテゴリがあります。
一般的な構成は、ノードのホストIDおよびレルム、基本的な接続情報、デフォルト・ルーティング・ビヘイビアを定義します。
アプリケーション構成は、ノードで実行されるDiameterアプリケーションと、それらのアプリケーションに渡されるオプションの構成パラメータを定義します。
ピア構成は、このノードで動作する他のDiameterノードを定義します。
ルート構成は、ノードがメッセージを解決するために使用できるレルム・ベースのルートを定義します。
次の節ではDiameterノードの各特徴を設定する方法について説明します。
次の手順に従って、新しいDiameterノード構成を作成し、既存のOracle WebLogic Server SIP Containerエンジン層インスタンスに適用します。
作成するOracle WebLogic Server SIP Containerドメインの管理コンソールにログインします。
構成ロックを取得するには「ロックして編集」をクリックします。
コンソールの左ペインの「Diameter」ノードを選択します。
新しいDiameter構成を作成するため右ペインの「新規」をクリックします。
新規構成の作成ページのフィールドに表6-2に記述されているように入力して「終了」をクリックします。
表6-2 Diameterノード一般構成プロパティ
プロパティ名 | 説明 |
---|---|
名前 |
このDiameterノード構成の管理名を入力します。 |
ホスト |
このDiameterノードのホストIDを入力します。または、ターゲットとなるエンジン層サーバーのホスト名をDiameterノードのホストIDとして自動的に割り当てるには、フィールドを空白のままにします。このホストIDはDNS名と同じであっても違っていてもかまいません。 複数のshクライアント・ノードを対象にdiameterサポートを構成する場合は、 |
レルム |
このノードに対して責任があるレルム名を入力します。または、ターゲットとなるエンジン層サーバーの完全修飾ホスト名(例: host@oracle.com)のドメイン名を使用するには、フィールドを空白のままにします。 異なるレルムとリスニング・ポート番号を使用すると、同一ホスト上で複数のDiameterノードを実行できます。 注意: HSS、アプリケーション・サーバー、リレー・エージェントは、レルム名がすべて決められている必要があります。HSSとアプリケーション・サーバーのレルム名は一致する必要はありません。 |
アドレス |
DNS名またはIPアドレスを使用して、このDiameterノードのリスニング・アドレスを入力します。または、ホストIDをリスニング・アドレスとして使用する場合はフィールドを空白のままにします。 注意: ホスト ID は Diameter ノードの DNS 名と同じであっても違っていてもかまいません。 構成エラーを回避するため、アドレス プロパティを明示的な DNS 名または IP アドレスで構成することをお薦めします。 |
TLS |
DiameterノードをTLS(diameterのネットワーク・チャネル)サポートとともに構成する場合は、このオプションを選択します。このフィールドは、ノードが他のDiameterノードから問い合せるときにTLS機能を公開するために使用されます。 |
デバッグ |
デバッグ・メッセージを出力するには、このオプションを選択します。デフォルトでは、デバッグ・メッセージの出力は無効化されています。 |
メッセージ・デバッグ |
このノードで処理されるDiameterメッセージに対してトレーシングを使用する場合は、このオプションを選択します。デフォルトではメッセージ・トレーシングは無効です。 |
動的ピア使用可能 |
Diameterピア・ノードの動的な検索を可能にするには、このオプションを選択します。デフォルトでは、動的なピアは無効化されています。動的なピアを有効にするのは、TLSトランスポートを使用する場合のみにします。ピアになるホストを制限するためのアクセス制御メカニズムがないからです。 |
ピア再試行遅延 |
このノードがリクエストをDiameterピアに再リクエストするまでの時間を秒で入力します。デフォルト値は30秒です。 |
リクエストのタイムアウト |
このノードがタイムアウトまで回答メッセージを待つ時間をミリセカンドで入力します。 |
ウォッチドッグ・タイムアウト |
このノードがDiameter Tw watchdogタイマー間隔のため使用する秒数を入力します。 |
ターゲット |
1つまたは複数のターゲット・エンジン層サーバー名を入力します。Diameterノード構成は、このフィールドで指定されたサーバーにのみ適用されます。 |
デフォルト・ルート・アクション |
デフォルト・ルートを使用するときのこのDiameterノードのロールを説明するアクションのタイプを指定します。この要素には次の値のいずれかを指定できます。
|
デフォルト・ルート・サーバー |
デフォルト・ルートに対して、1つまたは複数のターゲット・サーバーを指定します。この要素に含めるどのサーバーも、このDiameterノードのピアとしても定義されている必要があります。また、動的ピアのサポートが有効化されている必要があります。 |
「変更のアクティブ化」をクリックして、ターゲット・サーバーに構成を適用します。
一般ノード構成を作成すると、Diameterノードのリストに構成名が表示されます。次の節に説明したように、Diameterアプリケーション、ピアおよびルートを構成するためにノードが選択できます。
各Diameterノードは、1つ以上のアプリケーションをデプロイできます。選択したDiameterノードに対して「構成」>「アプリケーション」ページを使用して、管理コンソールでDiameterアプリケーションを構成します。次の手順に従います。
構成するOracle WebLogic Server SIP Containerドメインの管理コンソールにログインします。
「ロックして編集」をクリックして構成ロックを取得します。
コンソールの左ペインの「Diameter」ノードを選択します。
コンソールの右ペインでDiameterノード構成の名前を選択します。
「構成」>「アプリケーション」タブを選択します。
「新規」をクリックして新しいDiameterアプリケーションを構成します。あるいは、既存のアプリケーション構成を表から選択します。
以下のようにアプリケーション・プロパティを記入します。
アプリケーション名: アプリケーション構成の名前を入力します。
クラス名: このノードにデプロイするアプリケーションのクラス名を入力します。
パラメータ: 起動するとアプリケーションに渡されるオプションのパラメータを入力します。
「終了」をクリックして、新しいアプリケーション構成を作成します。
「変更のアクティブ化」をクリックして、Diameterノードに構成を適用します。
Oracle WebLogic Server SIP Containerには複数のDiameterアプリケーションが含まれおり、Sh、Rf、Roインタフェイス、DiameterリレーおよびSh、Roインタフェースのシミュレータを使用するクライアントをサポートします。次の項では、こうしたOracle WebLogic Server SIP Container Diameterアプリケーションの構成について詳しく説明されています。
Oracle WebLogic Server SIP Containerに含まれる基本的Diameter APIを使用して、ユーザー独自のDiameterアプリケーションを作成するか、デプロイもできます。
Shクライアント・アプリケーションは、プロバイダとしてプロファイル・サービスAPIに実装されています。このアプリケーションは、Shアプリケーション仕様で定義されているDiameterコマンド・コードに対して透過的に生成と応答を行います。プロファイル・サービスAPIにより、SIPサーブレットは、XMLドキュメント・オブジェクト・モデル(DOM)を使用してユーザー・プロファイル・データをXMLドキュメントとして管理することが可能となります。変更されたプロファイル・データに関する配信と通知を管理するには、SIPサーブレット内でプロファイル・リスナ・インタフェースを実装します。
Shクライアント・アプリケーションをデプロイするDiameterノードは、以下のように設定する必要があります。
ドメインに設定された任意のリレー・エージェントのホスト名は、Diameterピア・ノードとして定義します。リレー・エージェントを1つも使用しない場合は、すべてのエンジン層サーバーをピアのリストに追加するか、または動的ピアを有効にする必要があります。
ドメイン内のリレー・エージェント・ノード(またはHSS)には、1つまたは複数のルートがアクセスします。
Shクライアント・アプリケーションを構成するには、com.bea.wcp.diameter.sh.WlssShApplication
クラスを指定します。WlssShApplication
は、次のパラメータを受け取ります。
destination.host
: 目的のホストへの静的ルートを構成します。サーバーがリレー・エージェントなしに直接HSS(静的ルーティング)に通信する場合は、destination.host
パラメータ定義を含めます。リレー・エージェントを通じてルーティングする場合は、destination.host
パラメータを完全に削除します。
destination.realm
: 目的のレルムへの静的ルートを構成します。ドメインがリレー・エージェントを使用するかどうかに基づいて、リレー・エージェント・サーバーのレルム名またはHSSを指定します。
例6-2はリレーを使用するShクライアント・ノードのサンプル・ノードの構成を表しています。
例6-2 Shクライアント・アプリケーションでのDiameterノード構成のサンプル
<?xml version='1.0' encoding='utf-8'?> <diameter xmlns="http://www.bea.com/ns/wlcp/diameter/300" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls"> <configuration> <name>hssclient</name> <target>hssclient</target> <host>hssclient</host> <realm>oracle.com</realm> <!-- Omit the host and realm elements to dynamically assign the host name and domain name of individual engine tier servers. - > <message-debug-enabled>true</message-debug-enabled> <application> <name>WlssShApplication</name> <class-name>com.bea.wcp.diameter.sh.WlssShApplication</class-name> <param> <!-- Include a destination.host param definition only if servers will communicate directly to an HSS (static routing), without using a relay agent. Omit the destination.host param completely when routing through relay agents. - > <!-- Specify the realm name of relay agent servers or the HSS, depending on whether or not the domain uses relay agents. - > <name>destination.realm</name> <value>hss.com</value> </param> </application> <peer> <!-- Include peer entries for each relay agent server used in the domain. If no relay agents are used, include a peer entry for the HSS itself, as well as for all other Sh client nodes (all other engine tier servers in the domain). Alternately, use the allow-dynamic-peers functionality in combination with TLS transport to allow peers to be recognized automatically. - > <host>relay</host> <address>localhost</address> <!-- The address element can specify either a DNS name or IP address, whereas the host element must specify a diameter host identity. The diameter host identity may or may not match the DNS name. - > <port>3869</port> </peer> <!-- Enter a default route to a selected relay agent. If the domain does not use a relay agent, specify a default route to relay messages directly to the HSS. - > <default-route> <action>relay</action> <server>relay</server> </default-route> </configuration> </diameter>
Oracle WebLogic Server SIP ContainerのRfクライアント・アプリケーションによってSIPサーブレットは、IMS Rfインタフェースを使用してオフライン・チャージング・メッセージを発行できるようになります。Rfアプリケーションを構成するには、com.bea.wcp.diameter.charging.RfApplication
クラスを指定します。Rfアプリケーションは次のパラメータを受け取ります。
cdf.host
はチャージング・データ関数(CDF)のホスト名を指定します。
cdf.realm
はCDFのレルムを指定します。
Oracle WebLogic Server SIP ContainerのRoクライアント・アプリケーションによってSIPサーブレットは、IMS Roインタフェースを使用してオンライン・チャージング・メッセージを発行できるようになります。Rfアプリケーションを構成するには、com.bea.wcp.diameter.charging.RoApplication.
クラスを指定します。Roアプリケーションは、次のパラメータが受け取ります。
ocs.host
はオンライン・チャージング・データ関数(OCF)のホストIDを指定します。指定されたOCFホストは、RoアプリケーションがデプロイされるDiameterノードのピアとして構成されていることが必要です。
1つ以上のOCFホストを使用する場合、ocs.realm
をレルムベース・ルーティング用のocs.host
のかわりに使用できます。関連するレルム定義は、Diameterノードの構成にも含まれている必要があります。
Diameterの構成ではリレー・エージェントの使用は必須ではありませんが、HSSへの直接接続の数を制限し、障害の発生に備えてHSSへの複数のルートを確保するためにも、少なくとも2つのリレー・エージェント・サーバーを使用することをお薦めします。
注意: Oracle WebLogic Server SIP Containerエンジン層サーバーまたはSIPデータ層サーバーとしてリレー・サーバーが動作していないことを確認してください。つまり、サーバーは「sip」または「sips」ネットワーク・チャネルとともに構成されないことが必要です。 |
リレー・エージェント・ノードはクライアント・ノードとHSSの間のShメッセージのルーティングを行いますが、Diameter Sh仕様で定義されている処理以外の変更をメッセージに加えることはありません。リレー・エージェントはHSSからのレスポンスを必ずそのメッセージの発信元のクライアント・ノードに返信し、そのノードに接続できないときは、その応答を破棄します。
Diameterリレー・エージェントを構成するには、com.bea.wcp.diameter.relay.RelayApplication
クラスでアプリケーションをデプロイするノードを単純に構成します。
リレー・アプリケーションをデプロイするノードも設定します。
リレー・ノードへのピアとして他のすべてノード
リレー・アクションを指定するデフォルト・ルート
例6-3では、リレー・エージェント・ノードのサンプルdiameter.xml
構成を示しています。
例6-3 Diameterリレー・ノードの構成
<?xml version='1.0' encoding='utf-8'?> <diameter xmlns="http://www.bea.com/ns/wlcp/diameter/300" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls"> <configuration> <name>relay</name> <target>relay</target> <host>relay</host> <realm>oracle.com</realm> <message-debug-enabled>true</message-debug-enabled> <application> <name>RelayApplication</name> <class-name>com.bea.wcp.diameter.relay.RelayApplication</class-name> </application> <!-- Define peer connection information for each Diameter node, or use the allow-dynamic-peers functionality in combination with TLS transport to allow peers to be recognized automatically. - > <peer> <host>hssclient</host> <address>localhost</address> <port>3868</port> </peer> <peer> <host>hss</host> <address>localhost</address> <port>3870</port> </peer> <route> <realm>oracle.com</realm> <application-id>16777217</application-id> <action>relay</action> <server>hssclient</server> </route> <!-- Enter a default route for this agent to relay messages to the HSS. - > <default-route> <action>relay</action> <server>hss</server> </default-route> </configuration> </diameter>
Oracle WebLogic Server SIP Containerには、Diameterクライアント・アプリケーションを評価する開発やテスト環境において使用できる2つのシミュレータ・アプリケーションが含まれています。シミュレータ・アプリケーションを構成するには、関連するクラスを構成されたDiameterノードにデプロイします。
com.bea.wcp.diameter.sh.HssSimulator
は、Shクライアント・アプリケーションをテストするため、ユーザーのドメインでHSSをシミュレートします。
com.bea.wcp.diameter.rf.RfSimulator
は、Rfクライアント・アプリケーションをテストするため、CDFホストをシミュレートします。
注意: こうしたシミュレータは、テストまたは開発目的でのみ提供されており、本番のHSSやCDFの代用として使用されることを想定していません。 |
シミュレータ・アプリケーションをデプロイするDiameterノードは、起動しているエンジン層サーバーのターゲットにすることが可能です。または、スタンドアロンDiameterノードとしても起動できます。スタンドアロン・モードで起動すると、シミュレータ・アプリケーションは表6-2に説明されたコマンドライン・オプションを取得します。
前述したように、Sh、Ro、Rfアプリケーションは、構成して別々に使用できますが、Shは、プロファイル・サーバーAPIを利用することが可能です。その手順は次のとおりです。
diameter.xml
にShApplicationを構成します(詳細は、例6-5を参照してください)。
domain_home/config/custom/profile.xmlにprofile.xml
ファイルを追加します。Diameterドメインをテンプレートとしてインストールしファイルを修正するか、手動で例6-4に示すようにprofile.xmlを作成できます。
例6-4 profile.xmlサンプル
<profile-service xmlns="http://www.bea.com/ns/wlcp/wlss/profile/300"> <mapping> <map-by>prefix</map-by> <map-by-prefix> <provider-prefix-set> <name>sh</name> <prefix>sh</prefix> </provider-prefix-set> </map-by-prefix> </mapping> <provider> <name>sh</name> <provider-class>com.bea.wcp.profile.ShProviderCached</provider-class> </provider> </profile-service>
Diameterノードは、レルムにある互いのDiameterノードに対してピア接続情報を定義します。または、TLSトランスポートと組み合せて動的なピアの使用を可能にして、ピアが自動認識されるようにします。選択したDiameterノードに対して「構成」>ピアページを使用して、管理コンソールにDiameterピア・ノードが構成します。次の手順を実行します。
作成するOracle WebLogic Server SIP Containerドメインの管理コンソールにログインします。
「ロックして編集」をクリックして構成ロックを取得します。
コンソールの左ペインの「Diameter」ノードを選択します。
コンソールの右ペインでDiameterノード構成の名前を選択します。
「構成」>ピアタブを選択します。
「新規」をクリックして、新しいピア・エントリを定義します。
「Create a New Peer」ページの各フィールドに、次の情報を入力します。
ホスト: ピア・ノードのホストIDを入力します。
アドレス: ピア・ノードのアドレス(DNS名またはIPアドレス)を入力します。
ポート番号: ピア・ノードのリスニング・ポート番号を入力します。
プロトコル: ピア(TCPまたはSCTP)で通信するために使用するプロトコルを選択します。
注意: Oracle WebLogic Server SIP Containerは、指定されたプロトコル(TCPまたはSCTP)のみを使用してピアに接続しようと試行します。指定されたプロトコルでの通信に失敗しても、他のプロトコルは使用されません。プロトコルが指定されていない場合は、TCPがデフォルトで使用されます。 |
ウォッチドッグ: ピアがDiameter Twウォッチドッグ・タイマー・インターバルをサポートするかどうかを指定します。
「終了」をクリックして、新しいピア・エントリを作成します。
「変更のアクティブ化」をクリックして、構成を適用します。
リレーなどの特定のDiameterノードでは、Diameterメッセージを処理するたびに使用するためのレルム・ベース・ルートを構成する必要があります。選択したDiameterノードに対して「構成」>ルートページを使用して、管理コンソールにDiameterルートを構成します。次の手順を実行します。
作成するOracle WebLogic Server SIP Containerドメインの管理コンソールにログインします。
構成ロックを取得するには「Lock & Edit」をクリックします。
コンソールの左ペインの「Diameter」ノードを選択します。
コンソールの右ペインでDiameterノード構成の名前を選択します。
「構成」>ルートタブを選択します。
「新規」をクリックして、新しいルートを構成します。
「Create a New Route」ページの各フィールドに、次の情報を入力します。
名前: ルートの管理名を入力します。
レルム: このルートのターゲット レルムを入力します。
アプリケーション ID: このルートに対するターゲットDiameterアプリケーション IDを入力します。
アクション: 構成したルートを使用するたびこのノードが実行するアクションを選択します。アクション・タイプは、none、local、relay、proxyまたはredirectです。
サーバー名: ルートを使用するターゲット・サーバーの名前を入力します。
「終了」をクリックして、新しいルート・エントリを作成します。
「変更のアクティブ化」をクリックして、構成を適用します。
ルート・エントリを含むdiameter.xml
ノード構成の例については、例6-3を参照してください。
この項では、基本的なDiameter Shプロトコルの機能を提供するOracle WebLogic Server SIP Containerの構成サンプルを示します。サンプル・ドメインのレイアウトには次のサーバーが含まれます。
SIPアプリケーションのホストである3つのエンジン層サーバー。これらのサーバーには、ユーザー・プロファイルにアクセスするためのDiameter Shアプリケーションもデプロイされます。
4つのSIPデータ層サーバー。2つのパーティションにそれぞれ2つのレプリカが含まれています。
Diameterリレー・エージェントとして動作する2つのサーバー。これらのサーバーは、DiameterリクエストをHSSに転送する役割を果たします。
図6-1は、構成サンプルの個別のサーバーを示します。
例6-5は、サンプル・ドメインでエンジン層サーバー(Shクライアント)を構成するために使用するdiameter.xml
ファイルの内容を示しています。例6-6はリレー・エージェントを構成するため使用するdiameter.xml
ファイルを示しています。
例6-5 サンプル・エンジン層クラスタ(Sh クライアント)のdiameter.xml構成
<?xml version='1.0' encoding='utf-8'?> <diameter xmlns="http://www.bea.com/ns/wlcp/diameter/300" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls"> <configuration> <name>clientnodes</name> <target>Engine1</target> <target>Engine2</target> <target>Engine3</target> <realm>sh_wlss.com</realm> <application> <name>WlssShApplication</name> <class-name>com.bea.wcp.diameter.sh.WlssShApplication</class-name> <param> <name>destination.realm</name> <value>relay_wlss.com</value> </param> </application> <peer> <host>Relay1</host> <address>10.0.1.20</address> <port>3821</port> </peer> <peer> <host>Relay2</host> <address>10.0.1.21</address> <port>3821</port> </peer> <default-route> <action>relay</action> <server>Relay1</server> </default-route> <route> <action>relay</action> <server>Relay2</server> </route> </configuration> </diameter>
例6-6 サンプル・リレー・エージェントのdiameter.xml構成
<?xml version='1.0' encoding='utf-8'?> <diameter xmlns="http://www.bea.com/ns/wlcp/diameter/300" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls"> <configuration> <name>relaynodes</name> <target>Relay1</target> <target>Relay2</target> <realm>relay_wlss.com</realm> <application> <name>RelayApplication</name> <class-name>com.bea.wcp.diameter.relay.RelayApplication</class-name> </application> <peer> <host>Engine1</host> <address>10.0.1.1</address> <port>3821</port> </peer> <peer> <host>Engine2</host> <address>10.0.1.2</address> <port>3821</port> </peer> <peer> <host>Engine3</host> <address>10.0.1.3</address> <port>3821</port> </peer> <peer> <host>Relay1</host> <address>10.0.1.20</address> <port>3821</port> </peer> <peer> <host>Relay2</host> <address>10.0.1.21</address> <port>3821</port> </peer> <peer> <host>hss</host> <address>hssserver</address> <port>3870</port> </peer> <default-route> <action>relay</action> <server>hss</server> </default-route> </configuration> </diameter>
Oracle WebLogic Server SIP ContainerにデプロイされたSIPサーブレットは、利用可能なDiameterアプリケーションを使用して、ユーザー・プロファイル・データ、アカウント情報、信用管理の要求の開始、あるいはプロファイル・データ変更の通知の配信や受信をすることができます。これらのリクエストを対応しているSIPサーブレットが、次のようなエラーを生じた場合:
Failed to dispatch Sip message to servlet ServletName java.lang.IllegalArgumentException: No registered provider for protocol: Protocol
プロトコルの関連する Diameter アプリケーションを正しく構成していないことを示すメッセージが表示されます。 詳細は、6.6.2項「Diameter アプリケーションの構成」を参照してください。
Diameterピアノードへの接続に関するエラーが出る場合は、6.6.3項「ピア ノードの構成」で、ピアとの通信用の正しいプロトコルを構成しているか確認してください。Oracle WebLogic Server SIP Containerは、ピア設定で指定したプロトコル(プロトコルを指定していない場合は、TCP)のみ試行することに注意してください。