Oracle Connection Managerは、データベースまたはプロキシ・サーバーに接続要求を転送するプロキシ・サーバーです。これはセッション・レベルで動作します。通常、データベース・サーバーおよびクライアント・コンピュータとは別のコンピュータに常駐しています。Oracle Connection Managerは、Oracle Database 12c Enterprise Editionをインストールすると使用できるようになります。これはクライアント・ディスク上のカスタム・インストール・オプションです。
Oracle Connection Managerの主要機能は次のとおりです。
アクセス制御: ルールベースの構成を使用してユーザーが指定したクライアント要求をフィルタにかけ、フィルタを通過したものを受け入れます。
セッションの多重化: 共有サーバーの接続先へのネットワーク接続により、複数のクライアント・セッションを集中化します。
この章では、Oracle Connection Manager機能の構成方法について説明します。この章の内容は、次のとおりです。
|
関連項目:
|
cman.oraファイルのパラメータを設定して、Oracle Connection Managerをホストするコンピュータを構成します。cman.oraファイルは、Oracle Connection Managerをホストするコンピュータ上のORACLE_HOME/network/adminディレクトリにあります。cman.oraファイルが存在しないと、Oracle Connection Managerは起動しません。このファイルには次のコンポーネントが含まれています。
リスニング・エンドポイント
アクセス制御ルール・リスト
パラメータ・リスト
各Oracle Connection Manager構成は、1つの名前-値(NV)文字列内にカプセル化されており、その文字列は、前述のコンポーネントで構成されています。
1台のコンピュータで任意の数のOracle Connection Managerをホスティングでき、そのそれぞれのエントリがcman.oraファイルに保持されます。このファイルに複数のOracle Connection Managerを定義する場合は、完全修飾ホスト名を1つのみ設定することによって、デフォルトとして割り当てることができます。
クライアントとOracle Connection Manager制御ユーティリティ(CMCTL)の2つの接続に対して複数のルールを指定できます。変更を行う場合、次のガイドラインが適用されます。
クライアント接続とCMCTL接続に対して、1つ以上のルールを入力する必要があります。ルールを省略すると、省略されたルール・タイプの全接続が拒否されます。
Oracle Connection Managerでは、ワイルドカードをIPアドレスの一部として使用できません。ワイルドカードを使用する場合は、完全なIPアドレスのかわりとして使用してください。たとえば、クライアントのIPアドレスの場合は、(SRV=*)と指定します。
Oracle Connection Managerでは、サブネット・アドレスの表記として/nnのみを使用できます。例10-1の最初のルールでは、/27は、左端の27ビットで構成されるサブネット・マスクを示しています。クライアントIPアドレスの先頭の27ビットのみが、ルール内のIPアドレスと比較されます。
|
注意: Oracle Connection ManagerはIPv6アドレッシングをサポートしています。「IPv4およびIPv6のブリッジとしてのOracle Connection Managerの使用」を参照してください。 |
例10-1に、CMAN1というOracle Connection Managerの構成エントリが含まれるcman.oraファイルを示します。
例10-1 cman.oraファイルの例
CMAN1=
(CONFIGURATION=
(ADDRESS=(PROTOCOL=tcp)(HOST=proxysvr)(PORT=1521))
(RULE_LIST=
(RULE=(SRC=192.0.2.32/24)(DST=sales-server)(SRV=*)(ACT=accept)
(ACTION_LIST=(AUT=on)(MCT=120)(MIT=30)))
(RULE=(SRC=192.0.2.32)(DST=proxysvr)(SRV=cmon)(ACT=accept)))
(PARAMETER_LIST=
(MAX_GATEWAY_PROCESSES=8)
(MIN_GATEWAY_PROCESSSES=3)))
例10-1は、次のルールを示しています。
例の最初のルールでは、次のパラメータを設定しています。
2番目のルールでは、次のパラメータを設定しています。
SRC=192.0.2.32およびDST=proxysvrは同じサーバーを表し、Oracle Connection ManagerとCMCTLは同じコンピュータ上にある必要があることを示しています。
表10-1は、cman.oraファイルのルール・レベル・パラメータを説明します。
表10-1 cman.oraファイルのルール・レベル・パラメータ
| パラメータ | 説明 |
|---|---|
|
SRC |
ソースのホスト名またはクライアントのIPアドレス。IPアドレスはサブネットで、 |
|
DST |
接続先のホスト名またはデータベース・サーバーのIPアドレス。IPアドレスはサブネットで、 |
|
SRV |
初期化パラメータ・ファイル( サービス名は、リスナーへの接続時に、接続記述子の一部としてクライアントによって指定されます。このサービス名は、ルール・リストに指定されたサービス名と比較されます。 |
|
ACT |
前述の3つのパラメータに基づいた、受信要求の受入れ、拒否または削除。 |
複数のルールをRULE_LISTに定義できます。最初に適合したRULEのアクション(ACT)が接続要求に適用されます。ルールが定義されていない場合はすべての接続が受け入れられます。
次の例では、クライアント・コンピュータclient1-pcは、サービスsales.us.example.comへのアクセスが拒否されますが、クライアント192.0.2.45はサービスdb1へのアクセスが許可されます。
(RULE_LIST= (RULE=(SRC=client1-pc)(DST=sales-server)(SRV=sales.us.example.com)(ACT=reject)) (RULE=(SRC=192.0.2.45)(DST=192.0.2.200)(SRV=db1)(ACT=accept)))
|
関連項目: Oracle Connection Managerパラメータの詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。 |
Oracle Connection Managerを構成するには、プロキシ・サーバー、データベースおよびクライアントを構成する必要があります。次のタスクでは、一般的な手順について説明します。
cman.oraファイルでは、サーバーのリスニング・エンドポイント、アクセス制御ルールおよびOracle Connection Managerのパフォーマンス・パラメータを指定します。
「Oracle Connection Managerホストのcman.oraファイルの構成」では、このタスクの実行方法について説明しています。
「Oracle Connection Managerのクライアントの構成」では、このタスクの実行方法について説明しています。
「Oracle Connection Managerを使用する場合のOracle Databaseサーバーの構成」では、このタスクの実行方法について説明しています。
cman.oraファイルは手動で変更します。次の手順では、sqlnet.oraファイルにパラメータを設定する方法について説明します。
ORACLE_HOME/network/adminディレクトリのcman.oraファイルにナビゲートします。
テキスト・エディタを使用してcman.oraファイルを開きます。
リスニング・エンドポイント(ADDRESS)を構成します。
リスニング・エンドポイントでは、Oracle Connection Managerリスナーのプロトコル・アドレスを指定します。Oracle Connection Managerのモニタリング・プロセスCMONでは、このアドレスを使用してリスナーへのゲートウエイ・プロセスに関する情報を登録します。データベースはこのアドレスを使用して、Oracle Connection Managerノードでサービス情報を登録します。
Oracle Connection Managerのリスナーは、常にTCP/IPプロトコルでリスニングします。
(ADDRESS=(PROTOCOL=tcp)(HOST=proxysvr)(PORT=1521))
|
注意: Oracle Connection Managerは、TCP/IP(バージョン4およびバージョン6)などのプロトコルを使用してデータベースに接続できます。プロトコルTCPSはサポートされていません。 |
アクセス制御ルール・リスト(RULE_LIST)を構成します。
アクセス制御ルール・リストではリスナーにより、受入れ、拒否または削除される接続を指定します。
パラメータ・リスト(PARAMETER_LIST)を構成します。
パラメータ・リストにより、Oracle Connection Managerの属性を設定します。パラメータの形式は次のとおりです。
Oracle Connection Managerでクライアントをデータベース・サーバーに転送するには、Oracle Connection Managerのプロトコル・アドレスを指定する接続記述子を使用して、tnsnames.oraファイルを構成します。このアドレスを使用して、クライアントからOracle Connection Managerコンピュータに接続できます。接続記述子は次のとおりです。
sales=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=tcp)
(HOST=cman-pc)
(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=example.com)))
次の手順では、Oracle Connection Managerのプロトコル・アドレスを構成する方法について説明します。
Oracle Net Managerを起動します。
ナビゲータ・ペインで、「ディレクトリ」または「ローカル」メニューから「サービス・ネーミング」を選択します。
ツールバーで「+」をクリックするか、「編集」メニューから「作成」を選択します。
「ネット・サービス名」フィールドに名前を入力します。
「次へ」をクリックします。
「プロトコル」ページが表示されます。
Oracle Connection ManagerのTCP/IPプロトコルを選択します。
「次へ」をクリックします。
「プロトコル設定」ページが表示されます。
Oracle Connection Managerのポートとプロトコルを指定します。Oracle Connection Managerのデフォルトのポート番号は1521、プロトコルはTCP/IPです。
|
関連項目: プロトコル・パラメータの設定については、『Oracle Database Net Servicesリファレンス』を参照してください。 |
「次へ」をクリックします。
「サービス」ページが表示されます。
「サービス名」フィールドにサービス名を入力し、接続タイプを選択します。
「次へ」をクリックします。
|
注意: この時点では接続のテストはできないため、「テスト」はクリックしないでください。 |
「終了」をクリックして構成を保存し、Netサービス名ウィザードを閉じます。
新規のネットワーク・サービス名とOracle Connection Managerプロトコル・アドレスが「サービス・ネーミング」フォルダに追加されます。
データベース・サーバーの構成には、リモートからOracle Connection Managerでデータベース情報を登録する方法と、オプションでサーバーの多重化を構成する方法があります。
この項で説明する項目は、次のとおりです。
データベース・サーバーがOracle Connection Managerと通信できるようにするには、tnsnames.oraファイルにサービス名のエントリが含まれ、初期化パラメータ・ファイル(init.ora)に、Oracle Connection Managerのリスニング・アドレスを指定する記述子が含まれている必要があります。次の手順では、サービス登録を構成する方法について説明します。
tnsnames.oraファイルのサービス名エントリへのOracle Connection Manager別名を次のように解決します。
cman_listener_address= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCL=tcp) (HOST=proxy_server_name)( PORT=1521))))
たとえば、別名listeners_cmanは、tnsnames.oraファイルの次のエントリに解決されます。
listener_cman= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=proxyserver1)(PORT=1521))))
init.oraファイルのOracle Connection Managerの別名を次のように指定します。この別名は、手順1のtnsnames.oraファイルで指定した別名です。
REMOTE_LISTENER=cman_listener_address
このアドレスはTCP、ポート1521であり、データベース・サーバーのTCP、ポート1521のデフォルト・ローカル・リスニング・アドレスではないため、別名を指定する必要があります。
たとえば、ホストproxyserver1で動作しているOracle Connection Managerリスナーの手順1で指定した別名は、init.oraファイル上で次のようになっている場合があります。
REMOTE_LISTENER=listener_cman
初期化パラメータ・ファイルがOracle Connection Managerの別名で構成されると、リスナー登録(LREG)プロセスは、Oracle Connection Managerリスナーとしてデータベース情報を登録できます。変更を登録するには、次のコマンドを使用します。
SQL> ALTER SYSTEM REGISTER
Connection Managerでセッションの多重化を利用できるようにするには、次に示すように初期化パラメータ・ファイル(init.ora)のDISPATCHERSパラメータに、属性PROTOCOLおよびMULTIPLEXを設定します。
DISPATCHERS="(PROTOCOL=tcp)(MULTIPLEX=on)"
表10-2では、多重化の異なるレベルを設定するパラメータを示しています。
表10-2 セッションを多重化するパラメータ
| 属性 | 説明 |
|---|---|
|
ディスパッチャがリスニング・エンドポイントを生成するときに使用するネットワーク・プロトコルです。 |
|
|
このパラメータは、次のようにセッションの多重化に使用します。
|
|
関連項目:
|
一部のデータベース接続環境では、クライアントとデータベースが異なるバージョンのIPプロトコルを使用できるため、完全な接続性が存在しません。この場合、接続に少なくとも2つのホップが異なるバージョンのIPプロトコルを使用しています。たとえば、要求は、IPv4ソースからIPv6宛先、IPv6ソースからIPv4宛先、またはIPv4ネットワークを通じてIPv6からIPv6に渡されます。
IPv4とIPv6の間のネットワーク・ブリッジとしてOracle Connection Managerを使用できます。Oracle Connection Managerがブリッジとして機能するには、少なくとも1つのIPv4インタフェースと少なくとも1つのIPv6インタフェースで構成されたデュアル・スタック・ホスト上で実行する必要があります。
IPv6アドレスに基づいてフィルタにかけるには、Oracle Connection Managerのフィルタリング機能を使用します。ルールは、完全なIPアドレスまたは部分的なIPアドレスに基づいて設定できます。図10-1は、IPv6アドレスの形式を示しています。
図の上部の数字は、アドレス内のビット数を示しています。IPv6アドレスの各16進文字は、4ビットを表します。ビット4から16はアドレスの最上位レベルのアグリゲータ識別子(TLA ID)部分です。ビット25から49は次のレベルのアグリゲータ識別子(NLA ID)部分です。
たとえば、アドレス2001:0db8::203:BAFF:FE0F:C74Bでは、最初の4つの16進文字(2001)のバイナリ表記は次のようになります。
0010000000000001
したがって、アドレス内の先頭の3ビットは001になります。アドレスのTLA ID部分は0000000000001になります。
次の手順では、IPv6アドレス用のルール・フィルタを作成する方法について説明します。
ORACLE_HOME/network/adminディレクトリにあるcman.oraファイルにナビゲートします。
テキスト・エディタを使用してcman.oraファイルを開きます。
IPv6アドレス形式に基づいて、RULE_LISTでRULEを作成します。
たとえば、ソース・ホストがアドレス2001:0db8::203:BAFF:FE0F:C74BのIPv6専用ホストで、宛先がSALESL1593という名前のIPv4専用ホストであるとします。次のいずれかのルールを作成して、Oracle Connection ManagerをIPv6とIPv4の間のブリッジとして構成します。
| ルールのタイプ | 説明 | 例 |
|---|---|---|
| サブネットIDに基づいたフィルタ | フィルタリングはサブネットID以下の64ビットに基づいています。 |
(RULE = (SRC = 2001:0db8::203:BAFF:FE0F:C74B/ |
| NLA IDに基づいたフィルタ | フィルタリングはNLA ID以下の48ビットに基づいています。 |
(RULE = (SRC = 2001:0db8::203:BAFF:FE0F:C74B/ |
| TLA IDに基づいたフィルタ | フィルタリングはTLA ID以下の16ビットに基づいています。 |
(RULE = (SRC = 2001:0db8::203:BAFF:FE0F:C74B/ |
| ビット数に基づいたフィルタ | フィルタリングはアドレスの先頭の60ビットに基づいています。 |
(RULE = (SRC = 2001:0db8::203:BAFF:FE0F:C74B/ |
Oracle Connection Manager制御ユーティリティによって、Oracle Connection Managerを管理できます。オペレーティング・システムからコマンドを発行する場合、このユーティリティの基本構文は次のとおりです。
cmctl [command] [argument1 . . . argumentN] [-c instance_name]
前述のコマンドで、-cはOracle Connection Managerのインスタンスを指定しています。パスワードがすでに設定されている場合は、パスワードの入力を求められます。
|
注意: コマンドラインでパスワードを指定するオプションがあります。ただし、これにより画面上にパスワードが表示されるため、潜在的なセキュリティ上のリスクがあります。コマンドラインでパスワード・オプション(-p)を使用しないことをお薦めします。 |
たとえば、次のコマンドは、リスナー、CMADMIN(Connection Manager Administration)およびcman1という名前のインスタンスのゲートウェイ・プロセスを起動します。
cmctl STARTUP -c cman1
CMCTLプロンプトから、Oracle Connection Managerユーティリティ・コマンドを発行することもできます。プロンプトを取得するには、オペレーティング・システムのコマンドラインから引数なしでcmctlを入力します。セキュア・インストール・オプションでOracle Connection Managerをインストールした場合は、ユーティリティによってパスワードが求められることがあります。CMCTLを実行すると、ユーティリティが起動され、CMCTLプロンプトから必要なコマンドを入力できます。CMCTLプロンプトの例を次に示します。
cmctl CMCTL> STARTUP
|
注意: STARTUPコマンドを発行する前に、次の手順に従います。
|
|
関連項目:
|