|
|
| スポンサーサイト |
上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。
|

| MSDTCを特定範囲のポートで使用する:DCOM全般 |
分散したSQL環境では 分散トランザクションコーディネーター (MSDTC:Microsoft Distributed Transaction Coordinator)を利用してトランザクションを実現していますが、構造上アプリケーション サーバとデータベースサーバが分かれている場合、アプリケーションサーバだけをDMZに設定し、 データベースサーバとの間に ファイアウォール が設置されます。
しかし MSDTC をはじめとした DCOM (Distributed Component Object Model)では動的ポートが 採用されているため、 ファイアウォール で1024番以上のポートを閉じれません。そこでポートを 特定の範囲に限定する方法がMSのページで紹介されているので検証します。
元ネタはこちら→「Using Distributed COM with Firewalls」
早速手順ですが、レジストリを編集するため十分に注意してください。当然無保証。
1. レジストリエディタを開く。 2. HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc を開く。 3. Internetキーを追加する。 4. 以下のように文字列値などを追加する。

画面の通りに設定すると DCOM 系のものは5000~5020番を利用します。 パラメータの説明は以下の通り。
Ports: ポートと範囲を1行につき1つずつ入力します。 例)5000~5020と10000を利用したい場合 5000-5020 10000 PortsInternetAvailable: 設定の有効無効を決めます。この設定を使用する場合は Y にします。 UseInternetPorts: Y だとPortsで指定した範囲を DCOM アプリで使います。N だとそれ以外を使います。
5. マシンを再起動すると設定が有効になります。
これで ファイアウォール の設定が行えるようになりました。 最後に一点注意ですが、決めたポート番号以外に 135番 ポートは必ず空けてください。 DCOM クライアントはまずこのポートに DCOM アプリのポートを確認しにいき、その後取得した ポート番号へ接続に行きます。また DCOM の動作で注意すべき点としては、他のTCP/IP通信と 異なり、 DCOM アプリでは応答時に別のセッションを利用します。つまりクライアント側でも同じく ファイアウォール でポートを塞ぐ必要がある場合、同じ設定をクライアント側にも行ってください。 ※ポート番号は自由です。ポリシーのもと決めることになるかな。
Windows XP のSP2を利用している場合は ファイアウォール が利用できるので、検証できます。 サーバ側だけ設定をして、クライアント側で ファイアウォール を有効にしているとエラーになる ので一度試してください。
以下の記事も参考になると思います。 「SQL Server 2000 でエラー メッセージ 7391 が表示される」
はじめの英語のサイトには DCOM の動作も含めて解説していますのお勧めです。
|
|