Windows 2000ネットワーク解剖
>
ドメインツリーとフォレスト
Windows 2000クライアントのトレースとその考察
Windows 2000クライアントは,celica.active.dsl.local.というホスト名である。実際にアクセスするリソースは,subdomain.active.dsl.local.ドメイン上にあるサーバーw2k-3.subdomain.active.dsl.local.の共有フォルダ「share」である。Windows 2000クライアントのコマンドプロンプトから次のように実行したときのトレースを,List1に示す。
net use * \\w2k-3.subdomain.active.dsl.local\share
なお,トレースは見やすいように筆者が一部編集していることをお断りしておく。
Windows 2000クライアントであるcelicaは,まず最初に接続先のサーバーであるw2k-3のIPアドレスを取得しようとしている。この処理は,1と2のDNSによる名前解決,3と4のARPによるMACアドレスの解決として現れている。5と6では,接続先となるw2k-3が生存しているかどうかを確認するために,ICMP(Internet Control Message Protocol)のエコーとリプライを送受信している。7〜13では,celicaとw2k-3とのあいだでセッションを確立するためにTCPパケットを送信し,実際にSMB(Server Message Block)のセッション確立が始まっている。
Kerberosによる認証が開始されているのは,14からである。
まず最初に,クライアントであるcelicaは,自分の所属するドメインのKDCであるドメインコントローラlilyに対してTGS要求を送出する。このパケットが14であり,lilyからcelicaへの応答が15である。おそらく15の応答において,active.dsl.local.ドメインのKDCであるlilyは,対象となるサーバーw2k-3が自分の支配領域には存在せず,サブドメインであるsubdomain.active.dsl.local.ドメインに含まれるコンピュータであると判断し,subdomain.active.dsl.local.ドメインのセッション鍵で応答していると思われる。なぜなら,16からのDNS検索で,クライアントであるcelicaはsubdomain.active.dsl.local.ドメインのKDCを示すSRVレコードを照会しているからである。
22〜24は,subdomain.active.dsl.local.ドメインのKDCに対するTGS要求とその応答であろう。Kerberosの仕様によれば,クライアントはTGS要求に引き続いて接続先であるw2k-3に対してAP要求を送出するはずである。マイクロソフトのホワイトペーパー『Windows 2000 Kerberos 認証機能』には,ファイル共有を実現する際の認証例が掲載されている。これによると,AP要求はSMBパケットに含まれて送出されるという(AP要求とAP応答は,Kerberos認証を使用するアプリケーションのプロトコルのパケットに含まれる。ネットワーク共有の場合は,SMBパケット内に含まれることになる)。したがって,25〜28がAP要求とその応答であると推測される。
そのあと,29と30のパケットでIPC$への接続が完了する。すると,クライアントであるcelicaは,目的の共有フォルダ「share」へと接続するため,celicaにログオンしているユーザー名で自分の所属するドメインのKDCであるlily,続いて対象リソースが所属するドメインのKDCであるw2k-3に対してTGS要求を送信し,その応答を受け取る(33〜39)。そしてさらに,celicaとw2k-3は,AP要求とAP応答をやり取りしていると思われる(40〜44)。共有フォルダ「share」へのセッションの確立が40から始まり,45で共有フォルダへの接続要求が送信され,46でその応答が返されている。その結果,セッションが確立される。
このように,Windows 2000クライアントの場合は,Kerberosの推移的な信頼関係により,フォレスト全域に対して信頼関係が結ばれていることがわかる。つまり,Windows 2000サーバーとWindows 2000クライアントという組み合わせでは,Kerberos認証が実施されていることがわかる。
| 9/17 |
