この特集のトップページへ
Chapter 5:Windows 2000の名前解決 〜Active DirectoryとDNS〜

5.2.2 ロケータサービスとしてのDNS

 Active Directoryでは,ドメインコントローラを発見するためにDNSを使用する。これは,単純にAレコードを照会するわけではない。RFC2052で提唱されているSRVレコードを使用するのである。

●SRVレコード

 SRVレコードは,サービスロケータとして使用されるDNSのリソースレコードであり,RFC2052で提唱されている。SRVレコードに似た役割を持つリソースレコードとしては,電子メールの配送時に使用されるMXレコードがある。「COLUMN 電子メールとDNS」で説明したように,MXレコードを利用すると,ドメイン宛の電子メールを配送する宛先となるホストを,優先順位付きで指定することができる。SRVレコードは,MXレコードよりもきめ細かく,かつ汎用的に,TCP/IPベースのサービスについて指定できるようになっている。たとえば,サービスを提供するサーバーの優先順位やウェイトなどを指定することができる。

 SRVレコードの指定方法は,次のようになっている。SRVレコードは,TCP/IPベースのサービスを提供する,ある特定のサーバーを検索するために使用されるため,一番左側のOwnerNameにはどのサービスについての定義なのかを記述するようになっている。

OwnerName IN SRV preference weight port target
例:_ldap._tcp.active.dsl.local. IN SRV 0 0 389 az3.dsl.local.

パラメータ 意味
OwnerName service.protocol.nameの形式で指定する。serviceには,“_http”のように提供するサービスの名前を指定する。RFC1700で定義されているwell-knownサービスであれば,それを象徴する“_ldap”のような名前を指定する。protocolには,“tcp”や“udp”のように,使用するプロトコルを指定する。nameには,このリソースレコードが参照するドメインを指定する
preference サービスを提供するホストの優先順位を,0〜65535の数値で指定する。小さい値ほど優先順位は高くなる。クライアントは優先順位の高い順にサーバーを利用する。同じ値が複数ある場合は,ランダムで利用される
weight ロードバランシングの比重を,1〜65535の数値で指定する。同じ優先順位のホストが複数ある場合,ここで指定された比重によってロードバランシングされる。大きな値ほど優先順位が高くなり,0を設定するとロードバランシングは無効になる
port TCPやUDPのポート番号を0〜65535の数値で指定する
target サービスを提供するホストを指定する

●ドメインコントローラが登録するリソースレコード

 Dynamic DNSを使用する場合,Active Directoryのドメインコントローラは,SRVレコードを登録する(Dynamic DNSを使用しない場合は,手作業でSRVレコードを登録する必要がある)。Active Directoryのクライアントは,ドメインコントローラが登録したSRVレコードを照会して,自分がログオンするときに使用するドメインコントローラや,認証してくれるKerberosサーバー,ドメインを検索するためのLDAPサーバーなどの所在を取得する。Dynamic DNSが有効になっているDNSサーバーを使用している場合,このリソースレコードは自動的に登録されるが,Dynamic DNSを利用できないDNSサーバーやDynamic DNSを有効にしていないDNSサーバーを使用する場合は,自分で登録する必要がある。自分で登録する場合は,%SystemRoot%\system32\config\netlogon.dnsに登録用のテンプレートが用意されているので,これを参照すればよい。登録される内容と意味を以下に示す。ここで示すのは,active.dsl.localドメインのドメインコントローラが登録した内容である。このほか,<DnsDomainName>とgc._msdcs.<DnsForestName>のAレコードと,<DsaGuid>._msdcs.<DnsForestName>のCNAMEレコードが登録される。

SRVレコード
  意味
 
_ldap._tcp.<DnsDomainName>.
  LDAPサーバーを探索するために使用されるレコード。すべてのドメインコントローラは,この名前を登録する
  _ldap._tcp.active.dsl.local. 600 IN SRV 0 100 389 AZ3.active.dsl.local.
_ldap._tcp.<SiteName>._sites.<DnsDomainName>.
  サイト名とドメイン名を使用して,ドメイン内のLDAPサーバーを発見するために使用されるレコード。すべてのドメインコントローラは,この名前を登録する
  _ldap._tcp.Default-First-Site-Name._sites.active.dsl.local. 600 IN SRV 0 100 389 AZ3.active.dsl.local.
_ldap._tcp.dc._msdcs.<DnsDomainName>
  ドメインコントローラを発見するために使用されるレコード。すべてのドメインコントローラは,この名前を登録する
  _ldap._tcp.dc._msdcs.active.dsl.local. 600 IN SRV 0 100 389 AZ3.active.dsl.local.
_ldap._tcp.<SiteName>._sites.dc._msdcs.<DnsDomainName>
  サイト名とドメイン名を使用して,ドメイン内のドメインコントローラを発見するために使用されるレコード。すべてのドメインコントローラはこの名前を登録する
  _ldap._tcp.Default-First-Site-Name._sites.dc._msdcs.active.dsl.local. 600 IN SRV 0 100 389 AZ3.active.dsl.local.
_ldap._tcp.pdc._msdcs.<DnsDomainName>.
  NTドメインで使用されるPDCを表すレコード。ドメイン内に存在するPDCエミュレータが,この名前を登録する
  _ldap._tcp.pdc._msdcs.active.dsl.local. 600 IN SRV 0 100 389 AZ3.active.dsl.local.
_ldap._tcp.gc._msdcs.<DnsForestName>.
  ドメイン内でグローバルカタログを提供しているサーバーを,フォレスト名で発見するために使用される。グローバルカタログを提供しているサーバーのみが,この名前を登録する
  _ldap._tcp.gc._msdcs.active.dsl.local. 600 IN SRV 0 100 3268 AZ3.active.dsl.local.
_ldap._tcp.<SiteName>._sites.gc._msdcs.<DnsForestName>.
  ドメイン内でグローバルカタログを提供しているサーバーを,サイト名とフォレスト名を使用して発見するために使用される。グローバルカタログを提供しているサーバーのみが,この名前を登録する
  _ldap._tcp.Default-First-Site-Name._sites.gc._msdcs.active.dsl.local. 600 IN SRV 0 100 3268 AZ3.active.dsl.local.
_gc._tcp.<DnsForestName>.
  ドメイン内でグローバルカタログを提供しているサーバーを,フォレスト名で発見するために使用される。グローバルカタログを提供しているLDAPサーバーのみが,この名前を登録する
  _gc._tcp.active.dsl.local. 600 IN SRV 0 100 3268 AZ3.active.dsl.local.
_gc._tcp.<SiteName>._sites.<DnsForestName>.
  ドメイン内でグローバルカタログを提供しているサーバーを,サイト名とフォレスト名を使用して発見するために使用される。グローバルカタログを提供しているLDAPサーバーのみが,この名前を登録する。
  _gc._tcp.Default-First-Site-Name._sites.active.dsl.local. 600 IN SRV 0 100 3268 AZ3.active.dsl.local.
_ldap._tcp.<DomainGuid>.domains._msdcs.<DnsForestName>.
  GUIDを用いてドメイン内でドメインコントローラを発見するために使用される(フォレスト名は変更されず,ドメイン名のみ変更された場合などに使用される)。すべてのドメインコントローラがこの名前を登録する
  _ldap._tcp.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.domains._msdcs.active.dsl.local. 600 IN SRV 0 100 389 AZ3.active.dsl.local.
_kerberos._tcp.<DnsDomainName>
  ドメイン内に存在するKerberosの鍵配布機関(Kerberos Key Distribution Center:KDC)を発見するために使用される。KerberosのKDCサービスが動作しているすべてのドメインコントローラは,この名前を登録する
  _kerberos._tcp.active.dsl.local. 600 IN SRV 0 100 88 AZ3.active.dsl.local.
_kerberos._udp.<DnsDomainName>
  _kerberos._tcp.<DnsDomainName>と同様だが,TCPではなくUDPを使用する場合のレコードである
  _kerberos._udp.active.dsl.local. 600 IN SRV 0 100 88 AZ3.active.dsl.local.
_kerberos._tcp.<SiteName>._sites.<DnsDomainName>
  サイト名とドメイン名を使用して,KerberosのKDCサービスを発見するために使用される。KerberosのKDCサービスが動作しているすべてのドメインコントローラは,この名前を登録する
  _kerberos._tcp.Default-First-Site-Name._sites.active.dsl.local. 600 IN SRV 0 100 88 AZ3.active.dsl.local.
_kerberos._tcp.dc._msdcs.<DnsDomainName>
  KerberosのKDCサービスが動作しているドメインコントローラを発見するために使用される。KerberosのKDCサービスが動作しているすべてのドメインコントローラは,この名前を登録する
  _kerberos._tcp.dc._msdcs.active.dsl.local. 600 IN SRV 0 100 88 AZ3.active.dsl.local.
_kerberos._tcp.<SiteName>._sites.dc._msdcs.<DnsDomainName>
  サイト名とドメイン名を使用して,KerberosのKDCサービスが動作しているドメインコントローラを発見するために使用される。KerberosのKDCサービスが動作しているすべてのドメインコントローラは,この名前を登録する
  _kerberos._tcp.Default-First-Site-Name._sites.dc._msdcs.active.dsl.local. 600 IN SRV 0 100 88 AZ3.active.dsl.local.
_kpasswd._tcp.<DnsDomainName>
  ドメイン内に存在するKerberosのパスワード変更サーバーを発見するために使用される。KerberosのKDCサービスが動作しているすべてのドメインコントローラは,この名前を登録する
  _kpasswd._tcp.active.dsl.local. 600 IN SRV 0 100 464 AZ3.active.dsl.local.
_kpasswd._udp.<DnsDomainName>
  _kpasswd._tcp.<DnsDomainName>と同様だが,TCPではなくUDPを使用する場合のレコードである
  _kpasswd._udp.active.dsl.local. 600 IN SRV 0 100 464 AZ3.active.dsl.local.

PREV 8/12 NEXT