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

 Active Directory(AD)を使うWindowsネットワークを構築する上で鬼門となるのがNAT(Network Address Translation)だ。NATは、グローバルIPアドレスを使っているインターネットと、プライベートIPアドレスを使っている社内ネットワークのように、異なるネットワーク同士をつないで相互に通信するための技術だ。

 NATでは、IPアドレスやポートなど、IPネットワークでの通信に必要な情報を、お互いのネットワークに合わせて変換し、ネットワーク間での通信を可能にする。だが、ADを構成する上で重要なMS-RPCなどのプロトコルはNATに対応していないので、NATを越えることができない。

ドメイン間の接続ではNATを使わない
[画像のクリックで拡大表示]

 ADのユーザー認証で使うKerberosについても、NATを使うネットワーク機器を越えられない可能性が高い。Kerberosでは、パケットの内部にIPアドレスやホスト名といった情報が記録されているためだ。これらの情報も動的に変更しないと認証に失敗する。

 こうした制限から、ADを構成するネットワーク内にNATがあると、重要な通信ができなくなってうまく動作しない。異なるADドメイン間をNATでつなごうとしても、ADに関する通信ができずに失敗する。

 ドメイン間だけでなく、ADクライアントとADサーバーの間にNATがある場合も同様だ。例えば、WindowsパソコンなどのADクライアントを使っているオフィスのネットワークと、ADサーバーなどを設置するサーバールームのネットワークを分離し、NATでつなごうとしてもうまくいかない。

 ADでは、すべてのADサーバー間、およびADサーバーとクライアント間において、NATなしで相互に通信できるように構成したフラットなネットワーク環境が必要である。

 企業や組織の合併などで複数のネットワークを統合する際、IPアドレスの重複に対応するためにNATを使用するケースは多い。その場合、ADドメインの統合や、信頼関係の構築といったADドメイン間の連携はできない。マイクロソフトとしては、この問題に対する根本的な対処策として、IPv6を導入してNATを不要にすることを勧めているが、現実的には難しいだろう。