DHCPサーバーの設定を確認し、挙動を理解する〜DHCPサーバー編(3):基礎から学ぶサーバーマネージャーの使い方(3)
DHCPサーバーを使用してIPアドレスを登録したDNSサーバーは、静的にIPアドレスを登録したDNSサーバーとは挙動が異なる。今回はDHCPサーバーの設定を確認し、その挙動を理解する。
動的登録と静的登録の挙動の違いを理解しよう
Active Directoryを使用するWindowsネットワークでは、「DNS」(Domain Name System)サーバーが必須の名前解決手段となっている。DNSサーバーへのレコード登録には、「静的」と「動的」の2パターンある。
通常、DNSサーバーのレコードはサーバーなら管理者が静的に登録を行うが、クライアントは動的に登録を行うだろう。しかし、DNSへのIPアドレスの動的レコード登録では、クライアントのIPアドレスを静的に登録した場合とDHCP(Dynamic Host Configuration Protocol)を使用した場合ではその挙動が異なる。その仕組みを理解しておくことで、より安全にネットワークを構築、運用することができる。
DNSサーバーの動的登録の設定
DNSサーバーの「ゾーン」は、動的登録がデフォルトで許可されている。ゾーンの「プロパティ」→「全般」タブにある「動的更新」の設定には、次の三つの選択肢が用意されている(画面1)。
- なし
- 非セキュリティ保護およびセキュリティ保護
- セキュリティ保護のみ
デフォルトでは「セキュリティ保護のみ」になっており、DNSへの動的登録が行われるのは、ドメインに参加しているクライアントだけになる。ワークグループのクライアントでもDNSへの動的登録を行いたい場合は、「非セキュリティ保護およびセキュリティ保護」に設定する。ただし、この場合はクライアントのDNSサフィックスをゾーンと同じにする必要がある。
クライアントの動的登録
クライアントにも動的登録の設定は用意されている。「TCP/IP詳細設定」画面の「この接続のアドレスをDNSに登録する」にチェックを入れる(デフォルトでオン)と、動的登録が行われるようになる(画面2)。
この設定を変更する主な理由としては、複数のNIC(Network Interface Card)を搭載しており(マルチホームクライアント)、DNSに登録したくないIPアドレスがあるといった場合だ。この場合には、チェックを外すことで動的登録が行われなくなる。なお、DNSへIPアドレスを静的登録するサーバーなどは動的登録の必要がないので、余計なトラブルを防ぐためにはこのチェックを外しておく方がよいだろう。
クライアントの静的登録
クライアントのIPアドレスを静的登録した場合は、A(Address)レコードおよびPTR(PoinTeR)レコードをクライアント自ら登録することになる。しかし、この場合、DNSサーバーに登録されたレコードはそのクライアントが使用されなくなっても残るが、DNSのエージングおよび清掃プロセスで古いレコードと認識された場合には削除される。
DHCPサーバーのデフォルト設定において、DHCPクライアントとしてIPアドレスが登録された場合は、Aレコードはクライアントが、PTRレコードはDHCPサーバーが登録する。また、DHCPのリース期間を過ぎたクライアントは、DHCPサーバーがレコードを削除する。しかし、Aレコードはクライアントが登録しているので、削除されるのはPTRレコードのみとなる。
DNSサーバーには「前方参照ゾーン」と「逆引き参照ゾーン」があり、前方参照ゾーンはAレコードなどが配置され、逆引き参照ゾーンにはIPアドレスからホスト名を解決するためのPTRレコードが配置される。ただし、逆引き参照ゾーンはあくまで推奨設定であり、必須ではない。
そのため、逆引き参照ゾーンに配置されたPTRレコードの存在を気にしない管理者もいるかもしれない。逆引き参照ゾーンを作成していない場合は、余計なトラフィックを流さないために、DHCPサーバーの「プロパティ」→「DNS」タブからPTRレコードの動的更新を無効化しておくとよい。
DHCPとDNSの統合
“DHCPとDNSの統合”とは、DHCPサーバーがクライアントに対してリースしたAレコードおよびPTRレコードを、DHCPサーバー自らが登録することである。これは、DHCPサーバーの「プロパティ」→「DNS」タブで「DNSレコードを常に動的に更新する」にチェックを入れることで設定できる(前出の画面3参照)。
DHCPサーバーを冗長構成にした場合は、DHCPのフェイルオーバーに伴うDNSレコードの更新、変更に注意してほしい。これは「セキュリティで保護された更新」のみが許可されたゾーンで、DHCPサーバーをフェイルオーバーさせた場合、切り替え前のサーバーでリースしたクライアントのDNSレコードが、切り替え後のサーバーで更新不可能(これはIPアドレスの変更だけでなく、タイムスタンプの更新も含む)になるという、DNSレコードのセキュリティに関わる課題である。
この課題を解決するために、Active Directoryのグループには「DnsUpdateProxy」が用意されており、この「DnsUpdateProxy」グループにDHCPサーバーのコンピューターオブジェクトを追加しておく。さらに、更新専用IDを作成することが推奨されている。これはDHCPの「IPv4プロパティ」→「詳細設定」の「資格情報」で設定できる。
名前保護とは?
DHCPサーバーには「名前保護」という設定が用意されており、これはWindows以外のクライアントがすでに同じ名前でDNSに登録されている場合に、DNSへの更新が失敗するという仕組みになる(画面4)。これを「ネームスクワッティングの防止」という。
名前保護を有効にすると、DHCPサーバーは以下のような動作に変更される。
- DHCPサーバーは、Windows DHCPクライアントのAレコードおよびPTRレコードの登録要求に応じる
- DHCPサーバーは、Windows以外のDHCPクライアントのAレコードおよびPTRレコードを動的に更新する
- DHCPサーバーは、リースが削除されると、AレコードおよびPTRレコードを破棄する
名前保護を有効化すると、設定内容がグレーアウトされて変更できなくなる(画面5)。
この名前保護が動作する仕組みには、DHCPサーバーの動的ホスト構成識別子(DHCID)が使用される。DHCIDは重複する名前登録を防ぐために、DNSに登録されるリソースレコードである。このリソースレコードはDHCPによって使用され、コンピューターの識別子をコンピューターのA/AAAAレコードなどの名前に関する情報と共に格納する。DNSの名前登録プロセスにおいて、既存のDHCIDレコードに名前を登録しようとしている別のアドレスのコンピューターがあれば、その登録を拒否する。
この仕組みとして注意したいのは、WindowsコンピューターのDNS登録ではDHCIDは適用されないということだ。例えば、すでに「CL1」というWindowsコンピューター名が存在していた場合でも、Linuxコンピューターが「CL1」であればDNSに登録されてしまう。
以下の画面6の例では、Windowsコンピューター「CL1」にIPアドレス「192.168.10.100」が割り当てられており、その後、Linuxコンピューター「CL1」にIPアドレス「192.168.10.101」が割り当てられている。しかし、DNSサーバー側では、既存のWindowsコンピューター「CL1」は上書きされ、Linuxコンピューター「CL1」の「192.168.10.101」に書き換えられてしまっている(画面7)。
しかし、Windows以外のクライアントがDNSに登録されるとDHCIDが登録され、以後、同じ名前のWindows以外のコンピューターの重複は起こらない。
- 【参考情報】名前保護を構成する(マイクロソフト TechNet)
DHCPとDNSは、Windowsインフラストラクチャで重要な役割を担うサーバーである。DNSへの動的登録はデフォルトで設定されていることもあり、なんとなくできている現状があるが、しっかりと仕組みを理解することで、より安全かつ安定した環境を構築できるだろう。
- Active Directory証明書サービスでセキュアな公開鍵基盤を構築する(3)
- Active Directory証明書サービスでセキュアな公開鍵基盤を構築する(2)
- Active Directory証明書サービスでセキュアな公開鍵基盤を構築する(1)
- Windows展開サービスで大量のクライアントPCを一気に展開する(3)
- Windows展開サービスで大量のクライアントPCを一気に展開する(2)
- Windows展開サービスで大量のクライアントPCを一気に展開する(1)
- BranchCacheで遠隔地からのファイルアクセスを高速化
- 乱立するファイルサーバーはDFSで一元管理
- ファイルサーバー管理の強力な助っ人、FSRMを使いこなそう
- DHCPサーバーの設定を確認し、挙動を理解する〜DHCPサーバー編(3)
- フェイルオーバー機能を使いこなせ〜DHCPサーバー編(2)
- Windows Server管理の基本をマスターせよ〜DHCPサーバー編(1)
筆者紹介
阿部 直樹(あべ なおき)
エディフィストラーニング株式会社所属のマイクロソフト認定トレーナー。Active Directory、Network、Security、Hyper-V、Clusterなどを担当。マイクロソフト トレーナー アワード(2010年)およびMicrosoft MVP for Hyper-V(Apr 2010 - Mar 2014)を受賞。個人ブログ『MCTの憂鬱』でマイクロソフト関連情報を発信中。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- DNS Tips:名前解決とは何ですか?
DNSにおける名前解決とはどのような処理なのかを解説する。 - DNS Tips:DNSの問い合わせと応答について教えてください
DNSを理解する上で必須となる、DNSの「問い合わせ」と「応答」について解説する。 - 基礎から分かるActive Directory再入門(1):Active Directoryはなぜ必要なのか
本連載では「Active Directoryとは?」「なぜ、Active Directoryを使う必要があるのか?」などをあらためて考察し、より効果的に運用するための方法を探っていく。