WindowsでDNSの検索サフィックスリストを定義する(DNS検索時に補われるドメイン名のリストを追加する):Tech TIPS
DNSに対して名前解決を依頼する際、ホスト名だけ指定すると、自動的にDNSサフィックスが補われる。DNSサフィックスには、システム全体で共通のプライマリDNSサフィックスと、ネットワークインタフェースごとの接続専用のDNSサフィックスの2種類がある。このうち後者を手動で追加することにより、(ドメイン名部分を省略して)単なるホスト名だけでアクセスできるドメインを増やせる。
対象OS:Windows 2000 Professional/Windows 2000 Server/Windows XP Home Edition/Windows XP Professional/Windows Server 2003
解説
DNSサーバを使って名前を検索する場合、ホスト名とドメイン名を組み合わせたFQDN名を使って行われる。例えばコンピュータのホスト名が「www」で、ドメイン名が「d-advantage.jp」であるとすると、FQDN名は「www.d-advantage.jp」となる。
もしユーザーがドメイン名を省略して、ホスト名だけで通信相手を指定しようとすると、DNSのリゾルバ(アプリケーションから渡されたコンピュータを、DNSサーバに渡して、名前解決を依頼する機能)は、ドメイン名の部分を補い、必ずFQDN名に変換してから、DNSサーバへと渡すことになっている。DNSによる名前空間は階層構造になっているため、FQDN名に変換することにより、必ず一意な名前にできる。もしこの補完機能がなく、例えば単に「www」いうホスト名だけしか与えられないとすると、www.d-advantage.jpとwww.d-advantage.jpを区別することができないだろう。
だが常にFQDN名で通信相手を指定するのは、冗長であるし、面倒でもある。常に同じドメインしか使わないのなら(ずっと同じ場所にコンピュータを設置しておくのであれば)、ドメイン名の部分は省略して、ホスト名の部分だけで通信ができると簡単でよい。そこで、一般的には、同じドメイン内ではホスト名の部分だけで通信相手を指定し、別のドメインの場合はFQDN名を指定することができるようになっている。これを実現するため、DNSのリゾルバは、ホスト名だけの場合は、自動的に「デフォルトのドメイン名」を補うようになっている。これにより、DNSサーバには常にFQDN名が渡されることになる。
「デフォルトのドメイン名」は、一般的にはDHCPサーバなどで、IPアドレスなどの情報とともに割り当てることになっている。そのため、ネットワークが変われば、このデフォルトのドメイン名も変わることになる。
だが場合によっては、別のドメインであっても、単なるホスト名だけで通信相手を指定できると便利な場合がある。例えば社内のコンピュータには、すでに所属やドメインを反映するような略語が含まれたユニークな名前が使われており、ホスト名の部分だけでもユニーク性を確保できている場合が挙げられる(例:マーケティング第一部の12台目のクライアントPCはpcmktg01-012とするなど)。また社内の各部から共通に使うサーバには、短い固定的な名前が付けられているので、いちいちFQDN名で指定するのは面倒であるといった場合もあるだろうし、2つないしは3つの部門(ドメイン)を日常的によく使うので、別ドメインであることを意識せずに使いたい、といった場合もあるだろう。
このように、ドメイン名部分を省略してホスト名部分だけで簡便に扱いたい場合は、各クライアント・コンピュータに対して、「DNSサフィックス」のリストを複数登録しておくとよい。サフィックスとは接尾辞という意味であり、DNSによる名前解決において、自動的に補われるドメイン名の部分のことを指す。
DNSサフィックスは、デフォルトでは1つだけが登録されており、Windows OSでは「プライマリDNSサフィックス」と呼ばれている。プライマリDNSサフィックスの値は、デスクトップ上の[マイ コンピュータ]を右クリックして[プロパティ]を表示させ、[システムのプロパティ]の[ネットワークID]タブにある、[プロパティ]−[詳細]ダイアログで確認できる(これはWindows 2000の場合。Windows XP以降のOSでは[コンピュータ名]タブにある[変更]−[詳細]ダイアログ)。
プライマリDNSサフィックスの例
これはWindows XP ProfessionalにおけるプライマリDNSサフィックスの例。Active Directoryに参加している場合は、デフォルトでActive Directoryのドメイン名が使われる。
(1)このコンピュータのプライマリDNSサフィックス。デフォルトではActive Directoryのドメイン名と同じ。
これ以外にも、コマンド・プロンプト上で「ipconfig /all」を実行することにより、「Primary Dns Suffix」として表示されている項目で確認することができる。
もしプライマリDNSサフィックスが空白ならば(指定されていなければ)、各ネットワークインタフェースのTCP/IPプロパティにある、「接続専用のDNSサフィックス」が使われる。
「接続専用のDNSサフィックス」にはユーザーが手動で複数登録することができるので、必要ならばこのリストに登録することにより、複数のドメイン上のコンピュータを、FQDN名ではなく、単なるホスト名だけで指定できるようになる。
操作方法
ユーザーが自分自身のためのDNSサフィックスを定義するには、TCP/IPのプロパティで設定する。まずDNSサフィックスを変更したいネットワークインタフェースの[プロパティ]ダイアログを表示させる。以下はWindows XPにおける「ローカル エリア接続」のプロパティ画面を表示させたところである(Windows 2000でも同じ)。
ネットワークインタフェースのプロパティ
ネットワークインタフェースごとに「接続専用のDNSサフィックス」を定義することができる。
(1)設定したいネットワークインタフェースを選択する。
(2)TCP/IPのプロパティを選択する。
[A]DNSサフィックスを定義、変更するにはこれをクリックする。→[A]へ
次に[詳細設定]ボタンをクリックして、[TCP/IP 詳細設定]を開き、[DNS]タブを選択する。
[DNS]タブには、DNSサフィックスに関する情報が表示されている。デフォルトではプライマリDNSサフィックスのみが定義され、利用されるようになっている。ユーザー独自のDNSサフィックスを指定すると、プライマリDNSサフィックスは使われなくなるので、必要ならばプライマリDNSサフィックスと同じ項目を、ユーザーが追加する必要がある。
[B]
DNSのプロパティ
DNSサフィックスの設定はこのダイアログの下半分に表示されている。
(1)デフォルトではこれが選択されている。つまり、DNSのクエリ時には、「プライマリDNSサフィックス」と(もしあれば)(6)で指定したDNSサフィックスのみが利用される。
(2)プライマリDNSサフィックスの先頭から1つ上(親)のドメインもDNSサフィックスとして利用するかどうかの設定。デフォルトではこれもオンになっている。例えばプライマリDNSサフィックスがtest.sys.d-advantage.jpならば、その親のsys.d-advantage.jpもDNSサフィックスとして自動的に利用される。1つ上のドメイン階層のホストならば、やはりドメイン名サフィックスを省略してアクセスできるようになっている。
(3)ユーザーがDNSサフィックスを指定したい場合はこれを選択する。デフォルトのDNSサフィックスも使われなくなるので、必要ならばユーザーが手動で追加すること。
(4)ここで指定されたDNSサフィックスが自動的に使われる。
(5)指定された複数のDNSサフィックスは、該当するDNSエントリが見つかるまで、上から順番に試行される。このボタンにより、優先度を変えることができる。
(6)ここでDNSサフィックスを指定すると、DHCPサーバによって与えられたDNSサフィックスをオーバーライドすることができる。
(7)これをチェックしておくと、このコンピュータのホスト名がDNSサーバに動的登録される。詳細は「TIPS:DNSの動的更新を無効にする」を参照。
(8)動的登録する際に、プライマリDNSサフィックスではなく、このインタフェースの接続専用のDNSサフィックスを元にして登録される。
■この記事と関連性の高い別の記事
- DNSサーバでゾーンごとに異なるフォワーダを使う(TIPS)
- nslookupの基本的な使い方(イントラネット編)(TIPS)
- Windowsでリモートネットワークの名前解決をhosts/lmhostsで行う(TIPS)
- 優先DNSサーバと代替DNSサーバの動作について(TIPS)
- WindowsでDNSサーバのキャッシュの内容を調査する(TIPS)
- DNSサービスのルート・ヒントを変更する(TIPS)
Copyright© Digital Advantage Corp. All Rights Reserved.