番外編2/Part2・・・Windows 2000のネットワーク&ドメイン
そして...Acteve Directory

今回は、ネットワークのごく基礎的な知識とWin2000でのドメイン構造
について勉強していきます。なお、私も決して深い知識があるわけでは
ありません。間違いがありましたら、ご指摘くださいね。

ネットワークの基礎知識・・・TCP/IPプロトコルとは?

プロトコルとは、“コンピュータ同士の通信手順の方法”のことです。
私たちが、いろいろな言語でコミュニケートするようにコンピュータも
さまざまな方法で通信を行っています。たとえばNetBEUIという方式は、主に
Windows同士を通信させるプロトコルですが、これはMacOSやLinuxとの
通信に利用することはできません。

ところで、私たちが外国人とコミュニケートする際に事実上“English”を使わなければ
ならないように、Windows/Macintosh/UNIXがひしめくコンピュータの世界でも、
共通言語があるのです。このプロトコルがTCP/IPプロトコルというものです。

TCP/IPプロトコルとは、主にインターネット上で使用されるプロトコルです。
厳密にはIPプロトコルという方式で作られたデータをTCPというプロトコルで
転送するという方式ですが、ここでは詳細はのべません。興味のある方は
関連書籍をごらんになってくださいね。

IPアドレスって一体なに?

IPプロトコルの大きな特徴にIPアドレスというものがあります。
これは前回お話ししたコンピュータの住所に関するものです。IPプロトコルでは
32bitの数値でこれを示します。本来は2進法ですが扱いにくくなるため、
4つに分割した上で10進法に置き換え、表します。数字としては0.0.0.0〜
255.255.255.255となり、4,294,967,296通りの組み合わせです。

こんなにたくさんのIPアドレスがあるのですが、どんなものでも自由に
使えるわけではありません。インターネット上で使うグローバルIPアドレスと
プライベートネットワーク(いわゆるLAN)専用に設けられた範囲があります。

またIPアドレスは“ネットワーク番号+ホスト番号”という形式で用いられる
ため、自分でこの設定を行わなくてはなりません。以下簡単に書いてみますね。

グローバルIPアドレスと
ローカルIPアドレス
IPアドレスは使用目的によって使用範囲が定められています。インターネット上で
使われるものはグローバルIPアドレスと呼ばれ、インターネット上に同じIPアドレス
は存在してはなりません。一方、インターネットに使われないIPアドレスはすべて
ローカルIPアドレスと呼ばれます。これはネットワークの大きさに応じて範囲内なら
自由に設定できます。他の誰かが同じIPアドレスを使っているかどうかを気にする
必要はないIPアドレスです。(下図参照)
10.10.0.0〜10.255.255.255 (Class A) 大規模LAN用。大企業の基幹ネットワーク向け。
172.16.0.0〜172.31.255.255 (Class B) 中規模LAN用。企業の通常ネットワーク向け。
192.168.0.0〜192.168.255.255 (Class C) 小規模LAN用。一般/家庭向けのネットワーク。
セグメントとは 例えばネットワークは、“一枚の板”に例えられます。一枚の板の上に載せられた
コンピュータはすべて同じネットワーク上にあるといえます。違う板の上に載せられた
コンピュータに対しては、通信を行うことはできません。(この場合はお互いのネット
ワークを結ぶ“接続点”が必要です) このそれぞれの“板”を指して“セグメント”と
いいます。1セグメントにIPアドレスをいくつ割り当てるのかは、サブネットマスクで
指定します。
サブネットマスクについて IPアドレスは、そのネットワークの所属を現す部分(ネットワークIP)とネットワーク
内の割り振り番号(ホストIP)を現す部分で構成されています。ネットワークIPの
範囲はどこまでか(=ひとつのネットワークにいくつのホストIPを割り当てるか)
定めるパラメータが、“サブネットマスク”です。例えば256個のホストIPを1セグメント
に割り当てたい場合は、サブネットマスクを255.255.255.0と指定します。そうすると
例えば192.168.0(.0)のネットワークIPに設定した場合は192.168.0.0〜192.168.
0.255までが範囲になります。2倍の512個にしたい場合は、255.255.254.0にサブ
ネットマスクを指定すれば192.168.0.0〜192.168.1.255に指定できるでしょう。
ブロードキャストとは プロトコルの種類によっては、ひとつのネットワークのコンピュータすべてに同時に
データを送らねばならないものがあります。例えばNetBEUIというプロトコルの場合
データの送信先を指定するのにすべてのコンピュータに信号を送信し、相手先を特定
する必要があるのです。このすべてのコンピュータにデータを送ることをブロードキャ
スト(放送)といいます。ブロードキャストには特定のIPアドレスが使用され、このIP
アドレスは他の目的で使うことはできません。
例外アドレスとは IPアドレスは使用目的によって特定の番号が予約されることがあります。この番号
はコンピュータに割り振ることはできません。例えば192.168.0.0〜192.168.0.255
のネットワークの場合は以下の通りです。
192.168.0.0 最終桁(オクテット)が0のアドレスはそのネットワーク自体を現します。
192.168.0.255 最終桁(オクテット)が255のアドレスはブロードキャストに使用されます。
127.0.0.0 これはループバックと呼ばれ、常に送信するコンピュータ自体(自分自身)
を指し示します。
255.255.255.255 単に最終桁が255の場合は“そのセグメント内だけ”のブロードキャスト
ですが、こちらは接続しているすべてのネットワークにブロードキャスト
します。

TCP/IPプロトコルは本来インターネット用のものですから、LAN接続等では“同じOSを使う”
限りはプロトコルの種類にこだわる必要はありませんでした。事実Windowsでは
NetBEUIと呼ばれる別のプロトコルが長年採用されてきました。NetBEUIではコンピュータ
同士の通信のさいに、いっぺんすべてのコンピュータに対して信号を送り(ブロードキャスト)、
該当するコンピュータが返事の信号を送り返すことで通信先の特定を行います。

これはネットワーク上のコンピュータが少ない場合は悪くない(設定に手間がかからないので)
のですが、たくさんのコンピュータがネットワークにある場合は、送信のために多くの無駄な
トラフィックが発生してしまい(送信のたびにすべてのコンピュータに尋ねるのですから)
よい方法とはいえません。Windows2000がこのNetBEUIからTCP/IPに標準プロトコルを
変更したのには“大規模ネットワークに効率よく対応する”目的があったと思われます。

なおWin2000とWin98でのデータのやり取りでは従来どおりNetBEUIを使うこともできます。

ドメインの名前解決について

前回、ドメインの名前をIPアドレスに変換するWINSサーバ/DNSサーバのお話を
したと思います。今まではWindowsドメインとInternetドメインでそれぞれ別の変換
システムを(WindowsはWINS,InternetはDNS)採用していました。Windows2000からは
すべてDNSサーバでの変換をサポートしています。

DNS(Domain Name System)サーバの特長には“階層化”という概念があります。
例えばあなたが地図で“東京都千代田区1丁目1番地1号”を探す場合、
東京都>千代田区>1丁目>1番地>1号 の順番に探していくと思いますが、
これは“東京都”という一番大きいカテゴリから、“1号”という一番小さいカテゴリに
向かって“たぐっていく”ことになりますよね?このように“大きいカテゴリから小さいカテゴリを
探していく”ことを“階層を移動する”などといいます。DNSサーバにも同じ機能があり、
例えば“www.kissnet.ne.jp” の場合、jp>ne>kissnet>の順番で階層を移動していきます。
最後の www については“ホスト名”といい、Aレコードと呼ばれるテキストファイルにドメイン名
とIPアドレスを結びつける情報が、ホスト名から分かる形で書き込まれます。

こうすれば、大量のドメイン名を効率よく認識/分類できるため、インターネットの
世界では標準として使われています。前回、WindowsドメインとInternetドメインが
合体した、とお話しましたが、WindowsドメインをInternetドメインと“同じスタイル”で
使うことで、管理がかなり簡単にすることができます。たくさんのWindowsドメインが
存在する環境であっても、すばやく認識できる上、“ドメインの信頼関係”において
“親子のドメイン”をひとくくりに表現できるようになります。

ドメインの信頼関係とは、異なるドメイン間で(本来異なるドメインの共有リソースに
アクセスはできません)お互いの共有リソースを使用したり、ドメイン情報を共有しあったり
するシステムを指します。Windows2000ではDNSの階層化の特性を生かして、
“親ドメイン”の下に複数の“子ドメイン”が作れるのです。これによって親ドメインに
所属するユーザーが子ドメインのリソースにアクセスできるのはもちろん(逆も然り)
親ドメインを介して子ドメイン同士で相手のリソースを参照することができます。

またDNSサーバはそれ自体が階層構造になっています。例えばLANネットワーク
上にあるDNSサーバで求めるドメインが見つからない場合、よりレコードが多い
親DNSサーバ(例えばISPの)にたずねます。そこで見つけられなかった場合は、さらに
上位のDNSサーバに問い合わせ・・・最終的にはルートDNSサーバという“大親DNS”まで
到達します。この機能を指して“フォワーダ”と呼びますが、これにより多くのレコードが
参照できるため、正しく機能すれば事実上探せないドメインはないことになります。

ブラウザのキャッシュ同様、時間短縮とDNSサーバの負荷分散のため、DNSサーバは
自分が一度名前解決できたドメインをキャッシュしておき、2度目以降はここから
参照します。この機能を“リゾルバキャッシュ”といいます。これらの機能を
Windows2000は上手に使ってWindowsドメインとInternetドメインのシームレスな
環境を提供しています。

Active Directory...その目的と使い方

さあ、いよいよ本題のActive Directoryです。
Active Directoryの名前通り、これはディレクトリサービスを提供するものです。

“ディレクトリサービス”とは、簡単にいうと電話帳サービスのようなものです。
名前を検索すると、住所や電話番号が得られるのが電話帳ですが、
Active Directoryでは共有リソースをクリックすればそこに連れて行ってもらえますし
ユーザーアカウントを参照して、詳細な情報や連絡先を得ることもできます。
もちろん、これらの情報は簡単に検索することができます

こうした機能の構築はServer側で行いますので、これは後ほど説明させて
いただくことにして、今回はProfessionalからみた使用方法を説明します。

まずはExplorerから...オブジェクトを探せ!

Active Directoryを使うためには、その情報を示すアイコンを操作しなくては
なりません。これらの情報アイコンを“オブジェクト”と呼びます。この種類には
以下のものがあります。

ユーザーアカウント
ユーザーの情報が収められたオブジェクトです。名前はもちろん
住所、連絡先...etc.が他のユーザーから参照できます。管理者
もこのオブジェクトから様々な設定を行います。
コンピュータアカウント
ドメイン上にあるすべてのコンピュータにこのオブジェクトが与え
られます。このオブジェクトでは、各コンピュータの役割やその
管理などが参照できます。
共有フォルダ・プリンタ
Active Directoryから直接、共有フォルダ/プリンタへアクセス
できます。アイコンをクリックすれば通常のようにUNCを意識する
ことなく、共有リソースまで連れて行ってもらえます。
グループ
“グループ”とは“あるリソースへのアクセス権限を持った集団”
という意味合いです。たとえば特定共有フォルダ/プリンタにア
クセスできるユーザーを制限したい場合NTFSのACL(Access
Controll List)で必要なユーザーを追加/設定しますが、ユー
ザーがたくさんいる場合、一人づつちまちま設定するより、必要
なユーザーをグループに割り当てて、そのグループの名前でA
CLを決定したほうが合理的です。

また、これらのものを収める“入れ物に以下のものがあります。

Directory
このアイコンは、Active Directoryのすべてのドメイン/OU/コンテナ
を含んでいます。Active DirectoryにはいわゆるNetBIOSでの“ブラ
ウザサービス”がないため、ここからたどってのアクセスになります。
ドメイン
ドメインとは“一元的に管理されたコンピュータの一群”という意味で
す。ここでは、ひとつのドメインごとに別々に表示されこの中にOUが
入れられています。ドメインごとにGPOが設定できます。
組織単位(OU)
これは管理の最小単位となるものでOrganizational Unitと呼ばれ
ます。本来特定アカウントに対して管理上の制限仕様を設定したり
するためのものですが、一部管理の移譲を行うことも可能です。うま
く使うと、管理者に代わって指定ユーザーに一部の管理を任せる事
で管理者のこまごまとした手間を減らすことができます。もちろんG
POでグループポリシーを設定させるのはこのOUがメインです。

OUとはなんのため?

OUとはActive Directory でのオブジェクトの入れ物であると同時にオブジェクトに
関するグループポリシー設定単位であり、管理移譲の最小単位でもあります。

Windowsでは、コンピュータの設定を管理レベルで変更する(たとえば管理者以外の
ユーザーはデスクトップの設定を変更できない等)時に“システムポリシー”という
“対話的にレジストリを書き換えるツール”を使っていました。本来レジストリで設定
された“コンピュータの設定”には多岐にわたるものがあり、そのすべてを把握するのは
大変なため、このように比較的簡単に設定を変更できるツールの存在は管理上の
大きな助けになるのです。

ところがこの“システムポリシー”は実は決して使い勝手のよいものではありませんでした。
レジストリで変更できるたくさんの設定事項に対してわずかの設定しかサポートされない上、
一度書き換えると簡単に再設定/初期設定に戻すことができない問題が常にありました
(いわゆる“刺青問題”というものです)。

Windows2000 の“グループポリシー”はOU自体に“リンク”という形でそこに所属する
オブジェクトにポリシー設定を適用できます。これの意味するところは、OUにリンクされた
グループポリシーは容易に取り消し/変更が可能であるということ、また所属するOUを変更
すること(移動すること)で異なるグループポリシーを簡単に適用させ直すことが可能です。

また、従来は“総合的な管理者”のもとで他に“限定された範囲での管理者”を設定する場合
(たとえば特定の部署内にその部署限定のローカル管理者を設定する場合)NT4.0であれば
ローカルレベルでのドメインを設定した上で、そのドメイン専属の管理者アカウントを設定する
必要がありました。

Windows2000のActive Directoryでは、OUごとにそのOU専属の管理者を設定できる
ため、新規のドメインを設定する必要がなく、ドメイン管理および信頼関係の構築の
煩雑さから解消されます。またその“限定内容”も選択できるため、大変柔軟性のある
移譲システムに仕上がっていると思います。

OUの階層化のメリット?

後ほどご紹介しますが、私の作った環境でもOUの中にOUが存在する“OUの階層化”
というものがあります。この考えの基準になっているのがグループポリシーの階層化
という概念です。(この概念はNT4.0にはありません)

オブジェクトを階層的に管理することは単に管理上の煩雑さを解消する以上の意味が
あるのです。上記OUの概念を一読いただければおわかりのように、オブジェクトの
最小管理単位としてOUは設計されています。これの意味するところは“オブジェクト
を入れ物を通じて設定をコントロールする”ということです。つまり入れ物に何がしかの
設定を与えると、その中身がそれに準拠した動作をすることになります。

ところで一般にシステム設定を制限する設定を行うときに、“ただ1つのルール”で
うまくいくものでしょうか?例えばある会社のある部署所属ユーザーにポリシー設定を
行う場合、一般には“全社レベルのルール”をまず適用し(コンピュータの設定をやたらに変更
させない等)、ついでその部署独自のルール(ユーザーの作ったファイルの置き場所やその
占有量の制限等)を、適用する必要があります。この場合はすべてのユーザー(つまり
管理者以外)が適用される“全社レベルのルール”と各部署によって異なる“部署ごとの
ルール”が、別のルールとして切り分けられると大変便利です。

OUの階層化によって、この切り分けが大変簡単に設定できるのです。
すなわち親OUにリンクされたグループポリシーオブジェクト(ルールのテンプレートにあたる
ものでGPOと略します)があり、複数存在する子OU(仮にA/Bとします)がそれぞれ別のGPO
をリンクしている場合、子OU“A”のポリシー設定は親OUのGPO+子OU“A”のGPOの内容が
反映されます。同様に子OU“B”のポリシー設定は親OUのGPO+子OU“B”のGPOの内容
になるのです。また親OUのGPOの適用が必要なOUを新しく設定する場合は、該当OUを
その親OU内に移動ないしは新規作成すれば、自動的に適用できるのです。

これのいいところは“あるルール=GPO”を複製して(書き直して)それぞれ適用させる
必要がまったくない、ということです。また、ルールの細部が変更された際には、該当する
GPOを変更するだけで、リンクされたすべてのOUに変更箇所を適用させ直すことが可能です。

実際のActive Directory構造

ことわざに“習うより慣れろ”という言葉があるようですが、一般に難解といわれる
Active Directoryの説明に際して、実際に私の使っているドメインを例にして、
簡単に説明していきます。ただし個々のオブジェクトについての情報はセキュリティ
保全の観点から、公開できないものもあります。

こちらをご覧ください。これは私が実際に使用しているActive Directoryを導入
したドメイン“chabnet.ne.jp”の管理メニューです。管理方法の話は次回に譲る
として、ここでは、OUがどのような階層で管理されているか、注意してください。

Accounts(OU) ユーザーアカウントオブジェクトが収納されています。Local User
とは実際に私のうちで私のPCにローカルログオンして使用する
ユーザー、Remote UserとはVPN(仮想プライベートネットワーク)
というネットワークを使用してクライアント接続するユーザーです。
Builtin(コンテナ) OUとしての機能を持たない“入れ物”としてデフォルトで用意された
ものを“コンテナ”と呼びます。ここには最初から設定済みの“ローカ
ルグループ”があります。簡単にいうとProfessonalで定義された
グループと同じものになります。
Computers(コンテナ) ドメインに参加するすべてのクライアントPCとメンバサーバの“コン
ピュータアカウント”をデフォルトで収納する場所です。もちろん別
のOUにアカウントオブジェクトを移動させても問題ありません。
Domain Controllers
(OU)
ドメインコントローラというWindowsドメインを管理するサーバのコン
ピュータアカウントが入ります。ドメインコントローラのポリシー設定
を適用させるため、最初からGPOがリンクされています。
ForeignSecurityPri_
ncipals(コンテナ)
Active Directoryが内部的に使用するものでユーザーレベルでは
気にかける必要はありません。
Group(OU) 必要に応じて自分で設定したグループを収納してあります。
Resources(OU) 共有リソースが設定されているコンピュータ/プリンタのアカウントが
あるところです。“共有フォルダOU”がありますがこれは共有フォル
ダがクライアント別に分かれて設定されているからです。
Users(コンテナ) デフォルトでのユーザーアカウントやドメインローカルグループ/グロ
ーバルグループがあります。ユーザーアカウントをここに置いても、
GPOを適用させることはできません。

例えばAccounts OU内はいくつかの階層が見えると思いますが、ここの“Accounts OU”に
ユーザー一般のルールを決めたGPOをリンクさせ、かつその下の“Local Users OU”と
“Remote Users OU”にそれぞれその独自のルールだけを書いたGPOをリンクさせます。

こうすれば、“ユーザー一般”と“ユーザーの所属別”のルールを切り分けて設定/変更でき
かつ、何らかの事情で所属が変わった場合も、ユーザーアカウントオブジェクトをしかるべき
OU内に移動するだけで、設定を変更できます。この設定で管理者の管理コスト(費用/時間)を
抑えることが、Win2000の開発目的の1つです。この効果を“TCO(Total Cost of Ownership)の
軽減”などとMSでは呼んでいるようです。

Active Diractory管理下でのアクセス方法

Win2000ドメインでのActive Directoryオブジェクトの検索は簡単です。
エクスプローラの“マイネットワーク”から、ネットワーク全体>Directoryアイコンでツリー
表示が可能です。後は必要なツリーをたどっていけば、ユーザー/コンピュータの
内容や、共有リソースにアクセスできます。

共有フォルダにアクセスする場合は、該当する共有フォルダアイコンをクリック
すれば、目的のフォルダにアクセスできますし(上図参照)、ユーザーやコンピュータの
内容が知りたいのなら、そのアイコンをクリックすれば属性(ユーザーの氏名/所属など)
が分かる仕組みになっています。自分自身の情報については、書き換えも可能です。

参加の方法についてですが、コントロールパネルの“システム”(マイコンピュータの
プロパティでも可)のネットワークIDタブのプロパティボタンから参加できます。

必要な情報はドメインユーザーアカウントの情報とドメイン名、それと自身のドメイン
アカウント権限が“ドメイン管理者(Domain Admins)”でない場合は事前に管理者にその
アカウントで参加できるコンピュータアカウントを作成してもらう必要があるでしょう。

細かい方法等については、市販の雑誌の“Acteve DirectoryドメインでのWin2000
Professonal の参加方法”を読まれればすぐに理解できるでしょう。流れとしては、
ワークグループ環境からドメイン環境に変更>参加権限を持ったアカウントの入力
ということになります。再起動後に有効になるでしょう。

NetBIOSに関する仕様について

よく耳にする質問に“ドメイン参加したら「近くのコンピュータ」から(または
Microsoft Windows Network)コンピュータが見えなくて困る”というのがあります。

このサービス、実はNetBIOSがサポートしている“ブラウザマスタ サービス”と
呼ばれるもので、TCP/IPとは無関係に“現在アクセス可能な”コンピュータを検索し
エクスプローラでブラウジングするサービスです。

このシステムの“肝”はネットワーク上のコンピュータを一定間隔で自動検索
する、ということです。このため、ブロードキャストと呼ばれる検索のための信号を
ネットワーク上のすべてのコンピュータに対して定期的に送ります。

これは小規模なLANでは、設定を行う手間が減るなどのメリットがありますが、
Win2000で想定された多くのコンピュータがネットワーク上にある場合は、この信号の
ために、大事なデータ通信に必要以上に時間がかかってしまう恐れがあり、
この検索システムは大規模LANにはふさわしくないという結論をみています。

ところでWin2000では本来のTCP/IPを使ったActive Directoryのほかに
Win9xなど、ブラウザマスタサービスなしでは相手コンピュータを特定できない
コンピュータとの互換性のために、“NetBIOS over TCP/IP”という機能を持って
います。これはブロードキャストで発見できたLANボード固有のアドレス(MACアドレス
といいます)とTCP/IPで割り当てられたそのボードのIPアドレスを結びつける
プロトコルで、Win9xとWin2000での相互認識を可能にする技術です。

Win2000のコンピュータがActive Directoryでのドメインネットワーク上に
参加している場合は、前述の理由によりブロードキャストは行われないほうがよい
のと、Active Directoryという立派な検索システムが存在するので、このサービスは
基本的に不要になっています。

さて、このブラウザマスタサービスのトラブルの原因ですが、これはブロード
キャストする範囲と関係があります。このブロードキャストは同じネットワークセグメント
に対してだけ実行されます。例えば192.168.0.のセグメントで実行されたブロードキャストは
192.168.1.セグメントに届くことはありません。また、ルータという“異なるセグメントを
中継する機器”に到達すると、そこから先に進むこともありません。

たとえばRASと呼ばれる電話回線をモデムを繋いでLANにアクセスする場合は
受け取り側(サーバ)のモデムの内側に必ずルータがあります。(この場合はアプリ
ケーションです) このようなときにはブラウザマスタサービスでの検索が
うまくいかないケースがあります。こういう場合はActive Directoryを使って
共有フォルダにアクセスさせるようにすると簡単に解決できるでしょう。


次回はいよいよWin2000 ServerによるActive Directoryの設計等について
お話できるでしょう。こちらからどうぞ・・・。