Windowsパソコンを利用する企業の多くが導入しているActive Directory(AD)。便利な半面、ネットワークでの挙動が複雑なことから、トラブルの原因になることが少なくない。そこで本特集では、ADを利用するWindowsネットワークでのトラブル回避術を解説する。

 セキュリティを強化するために、社内を複数のセグメントに分けて、その間にファイアウオールなどを設置して不要なポートをふさぎたいと考えるケースは多いだろう。だがActive Directory(AD)では、ADサーバーとADクライアント、あるいはADサーバー間で多種多様なプロトコルを使うため、ポート単位での制御は難しい。

社内の通信をポート単位で制御するのは困難
[画像のクリックで拡大表示]

 特に厄介なのはMS-RPCだ。MS-RPCはWindowsのプロセス間通信で使われるプロトコルである。

 このMS-RPCが使用するポートは毎回動的に決定される。使用するポートは、Windowsの「MS-RPC エンドポイントマッパー」という機能が管理している。

MS-RPCのポートは動的に変わる
[画像のクリックで拡大表示]

 新たにMS-RPCでの通信を開始したい場合は、MS-RPCエンドポイントマッパーに対して135/tcpで問い合わせる。すると、MS-RPCエンドポイントマッパーは49152/tcp~65535/tcpという広い範囲から、利用していないポートを任意に選択して通知する。

 利用するポートは事前にわからないため、広範なポートを開放しておく必要がある。ポートの範囲を制限することも可能だが、あまりに範囲を狭めると新規のMSRPCセッションを確立できなくなる恐れがある。どの程度のポート数を用意しておけばよいのか、マイクロソフトも情報を公開しておらず、見極めが難しい。

 以上のように、AD環境ではセグメント間をポート単位で遮断することは難しく、IPアドレス単位での制御に留めるのが現実解だろう。マイクロソフトもポート単位の制御は推奨していないうえに、大量のポート開放が必要なため労力の割に有効性が低い。