10 Oracle Connection Managerの構成
Oracle Connection Managerは、データベースまたはプロキシ・サーバーに接続要求を転送するプロキシ・サーバーです。これはセッション・レベルで動作します。通常、データベース・サーバーおよびクライアント・コンピュータとは別のコンピュータに常駐しています。Oracle Connection Managerは、Oracle Database 12c Enterprise Editionをインストールすると使用できるようになります。これはクライアント・ディスク上のカスタム・インストール・オプションです。
Oracle Connection Managerの主要機能は次のとおりです。
-
アクセス制御: ルールベースの構成を使用してユーザーが指定したクライアント要求をフィルタにかけ、フィルタを通過したものを受け入れます。
-
セッションの多重化: 共有サーバーの接続先へのネットワーク接続により、複数のクライアント・セッションを集中化します。
Oracle Connection Manager機能の構成方法を学習します。
関連項目:
-
Oracle Connection Managerの概要は、「Oracle Net Servicesの概要」を参照してください
-
Oracle Connection Managerのアーキテクチャの概要は、「通信レイヤーの理解」を参照してください
10.1 cman.oraファイルについて
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では、最初のルールの/24
が左端の24ビットで構成されるサブネット・マスクを表しています。クライアントIPアドレスの先頭の24ビットのみが、ルール内の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リファレンス』を参照してください。
10.2 Oracle Connection Managerの構成
Oracle Connection Managerを構成するには、プロキシ・サーバー、データベースおよびクライアントを構成する必要があります。次のタスクでは、一般的な手順について説明します。
- タスク1 Oracle Connection Managerコンピュータでcman.oraファイルを構成します。
-
cman.ora
ファイルでは、サーバーのリスニング・エンドポイント、アクセス制御ルールおよびOracle Connection Managerのパフォーマンス・パラメータを指定します。「Oracle Connection Managerホストのcman.oraファイルの構成」では、このタスクの実行方法について説明しています。
- タスク2 Oracle Connection Managerのリスナーのプロトコル・アドレスを持つクライアントを構成します。
-
「Oracle Connection Managerのクライアントの構成」では、このタスクの実行方法について説明しています。
- タスク3 オプションで、セッションを多重化するデータベース・サーバーを構成します。この作業はオプションです。
-
「Oracle Connection Managerを使用する場合のOracle Databaseサーバーの構成」では、このタスクの実行方法について説明しています。
10.2.1 Oracle Connection Managerホスト用のcman.oraファイルの構成
cman.ora
ファイルは手動で変更します。次の手順では、sqlnet.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の属性を設定します。パラメータの形式は次のとおりです。
10.2.1.1 アクセス制御の有効化
TCP/IP環境で指定されたデータベース・サーバーへのクライアント・アクセスを制御するには、RULE_LISTパラメータを使用します。このパラメータでフィルタリング・ルールを入力し、データベース・サーバーへの特定のクライアント・アクセスを許可または制限できます。
次の手順では、アクセス制御の構成方法を説明します。
10.2.2 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プロトコル・アドレスが「サービス・ネーミング」フォルダに追加されます。
10.2.3 Oracle Connection Managerを使用する場合のOracle Databaseサーバーの構成
データベース・サーバーの構成には、リモートからOracle Connection Managerでデータベース情報を登録する方法と、オプションでサーバーの多重化を構成する方法があります。
この項では、次の項目について説明します。
10.2.3.1 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))))たとえば、別名
listener_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
関連項目:
10.2.3.2 Oracle Connection Managerのセッションの多重化の有効化
Connection Managerでセッションの多重化を利用できるようにするには、次に示すように初期化パラメータ・ファイル(init.ora
)のDISPATCHERSパラメータに、属性PROTOCOL
およびMULTIPLEX
を設定します。
DISPATCHERS="(PROTOCOL=tcp)(MULTIPLEX=on)"
表10-2では、多重化の異なるレベルを設定するパラメータを示しています。
表10-2 セッションを多重化するパラメータ
属性 | 説明 |
---|---|
ディスパッチャがリスニング・エンドポイントを生成するときに使用するネットワーク・プロトコルです。 |
|
このパラメータは、次のようにセッションの多重化に使用します。
|
関連項目:
-
共有サーバーの構成の詳細は、「共有サーバー・アーキテクチャの構成」を参照してください
-
パラメータの完全なリストおよびそのデフォルト値と許容値については、『Oracle Database Net Servicesリファレンス』を参照してください。
10.3 IPv4およびIPv6のブリッジとしてのOracle Connection Managerの使用
一部のデータベース接続環境では、クライアントとデータベースが異なるバージョンの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/
64
) (DST = SALESL1593) (SRV = SALES) (ACT = ACCEPT) (ACTION_LIST = (AUT=ON)(MOCT=10)(MIT=30)(CONN_STATE=YES)) )NLA IDに基づいたフィルタ
フィルタリングはNLA ID以下の48ビットに基づいています。
(RULE = (SRC = 2001:0db8::203:BAFF:FE0F:C74B/
48
) (DST = SALESL1593) (SRV = SALES) (ACT = ACCEPT) (ACTION_LIST = (AUT=ON)(MOCT=10)(MIT=30)(CONN_STATE=YES)) )TLA IDに基づいたフィルタ
フィルタリングはTLA ID以下の16ビットに基づいています。
(RULE = (SRC = 2001:0db8::203:BAFF:FE0F:C74B/
16
) (DST = SALESL1593) (SRV = SALES) (ACT = ACCEPT) (ACTION_LIST = (AUT=ON)(MOCT=10)(MIT=30)(CONN_STATE=YES)) )ビット数に基づいたフィルタ
フィルタリングはアドレスの先頭の60ビットに基づいています。
(RULE = (SRC = 2001:0db8::203:BAFF:FE0F:C74B/
60
) (DST = SALESL1593) (SRV = SALES) (ACT = ACCEPT) (ACTION_LIST = (AUT=ON)(MOCT=10)(MIT=30)(CONN_STATE=YES)) )
関連項目:
-
IPv6についてさらに学習するには、「TCP/IPプロトコルについて」を参照してください
10.4 Oracle Connection Manager制御ユーティリティを使用したOracle Connection Managerの管理
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
コマンドを発行する前に、次の手順に従います。
-
cman.ora
ファイルを作成します。サンプル・ファイルは、Oracle Connection Managerをインストールした後のORACLE_HOME/network/admin/samples
ディレクトリにあります。 -
ADMINISTER
コマンドを実行して、起動するインスタンスを選択します。
関連項目:
-
Oracle Connection Managerプロセスの概要については、「Oracle Connection Managerのアーキテクチャの理解」を参照してください
-
Oracle Connection Manager制御ユーティリティのコマンドの詳細な説明は、『Oracle Database Net Servicesリファレンス』を参照してください。
10.5 Oracle Connection Managerの機能強化
-
SSLプロトコルのサポートにより、サーバーへのアクセスのセキュリティが強化されています。このサポートにより、データベース・クライアントは、Oracle Connection Managerを経由したTCPSプロトコルによるサーバーとの通信が可能になります。また、Oracle Connection Managerは、一方がSSL接続、もう一方が非SSL接続になるように構成することもできます。これは、外部クライアント向けの内部データベース・サーバーをインターネットから隠すための安全策としても機能します。
多重化: データベース・クライアントがリクエストしたエンドポイントに、すでにゲートウェイがTCPS接続している場合、新しい接続はゲートウェイによって同じ接続で多重化されます。
-
複数のプロトコル・アドレス上でのリッスンが可能になっています。複数のリスニング・エンドポイントにより、Oracle Connection ManagerはTCPとTCPSの両方を同時にサポートできるようになりました。従来の単一プロトコル・アドレスの構成も引き続きサポートされます。次に例を示します。
CMAN_ALIAS= (configuration= (address_list= (address=(protocol=TCP)(host=a.b.c.d)(port=12522)) (address=(protocol=TCPS)(host=a.b.c.d)(port=12523)) ) .. )
-
ネットワーク・データの圧縮機能も追加されています。これにより、ネットワーク・スループットが向上し、Oracle DatabaseクライアントとOracle Databaseサーバーとの間のデータ転送が高速化されます。これは、データベース・クライアント、データベース・サーバー、およびネクスト・ホップの圧縮機能に応じて、様々な方法で実現されます。圧縮は、あらゆる2つのノード間でネゴシエートされたときに有効化されます。
連続した3つ以上のノードが圧縮をサポートしていてネゴシエートした場合、このケースは、中間ノードが圧縮解除を実行することなく単に圧縮されたデータを中継するという方法で処理されます。
圧縮は、Oracle DatabaseクライアントがOracle Database 12cリリース以前で圧縮をサポートできない場合でも、Oracle Connection Managerとサーバーとの間でサポートされます。
-
最大2 MBのSDUがサポートされているため、Oracle DatabaseクライアントとOracle Databaseサーバーは、Oracle Connection Managerによって接続を確立するときに、より高いSDUをネゴシエートできます。
-
このリリースから、登録に対する有効ノード・チェックがOracle Connection Managerのデフォルトで有効化されます。デフォルトでは、Oracle Connection Managerに登録できるデータベースは、ローカル・ノード上にあるデータベースにかぎられます。リモート・ノード上のデータベースは、パラメータの
.REGISTRATION_INVITED_NODES
とREGISTRATION_EXCLUDED_NODES
を使用することで、Oracle Connection Managerへの登録を許可または拒否できます。これらのパラメータの詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。