検索
連載

フェイルオーバー機能を使いこなせ〜DHCPサーバー編(2)基礎から学ぶサーバーマネージャーの使い方(2)

Windows Server 2012 R2には、DHCPのフェイルオーバー機能が搭載されている。これにより、DHCPサーバーの柔軟な冗長構成が可能だ。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
「基礎から学ぶサーバーマネージャーの使い方」のインデックス

連載目次

「DHCPのフェイルオーバー」で柔軟な冗長構成を

 Windows Server 2008 R2以前は、DHCP(Dynamic Host Configuration Protocol)の冗長構成を考慮した設計を行う場合、DHCPサーバーをフェイルオーバークラスター構成にするか、複数台のDHCPサーバーを用意して同じスコープ範囲をそれぞれ設定し、除外範囲の設定で重複するアドレスを取り除くことで構成していた。

 前バージョンのWindows Server 2012からは「DHCPのフェイルオーバー」機能が搭載されたことにより、柔軟な冗長構成が可能になった。DHCPのフェイルオーバー機能には「ホットスタンバイモード」と「負荷分散モード」がある(図1)。それぞれの動作の違いを理解することで、より適切な運用ができるようになるだろう。

図1
図1 Windows Server 2012/2012 R2に搭載された「DHCPのフェイルオーバー」機能

DHCPのフェイルオーバーを構成するには

 Windows Server 2012 R2でDHCPのフェイルオーバーを構成するには、まずは「サーバーマネージャー」からDHCPサーバーの管理コンソールを起動して、スコープを作成する。次に作成したスコープを右クリックして、「フェイルオーバーの構成」を選択する。すると、ウィザードが起動するので、指示に従って構成を進めていけばよい。

 このフェイルオーバー機能は1対1の構成になっているので、一方のDHCPで設定を行うことで、対向のDHCPにはスコープ情報などの設定が反映される。その際、対向のDHCPサーバーが承認されていないとスコープはアクティブにならないので注意してほしい。

ホットスタンバイの構成

 「ホットスタンバイモード」では、次の設定を行う必要がある(画面1)。

  • クライアントの最大リードタイム(MCLT:Maximum Client Lead Time)
  • スタンバイサーバー用に予約されているアドレス
  • 状態切り替えの間隔
  • メッセージの認証を有効にする
画面1
画面1 ホットスタンバイの構成画面

 それぞれの設定の意味は、図2のようになる。

図2
図2 DHCPのフェイルオーバーにおける状態遷移

 例えば、サーバー「DHCP01」がアクティブで、サーバー「DHCP02」がスタンバイとしてDHCPフェイルオーバーを構成したとしよう。その際、MCLTを「10分」、状態の切り替えを「30分」とする。

 DHCPサーバーのデフォルトのIPアドレスリース期間は「8日間」だが、DHCPフェイルオーバーの構成をした場合、DHCPクライアントは初めにMCLTで設定した時間である「10分」の有効期間でリースされる。

 クライアントがDHCP01からリースした場合、DHCP01はDHCP02にアドレスとクライアント情報を通知する。この際、メッセージの認証を行う場合は「メッセージの認証を有効にする」をチェックして「共有シークレット」を入力しておこう。

 DHCP02はそれらのクライアント情報をDHCPデータベースに追加するのだが、本来ならMCLTで設定された期間(10分)がリース期間として配布されるはずだ。しかし、この場合にはデフォルトの「8日間」がリース期間として追加されることがポイントになる。

 DHCPクライアントはMCLT期間が経過するとリース更新が発生し、再度DHCP01から同じIPアドレスをリースされるが、この場合のリース期間はデフォルトの「8日間」となる。この動作が行われることで、両方のサーバーが同じリース期間として保存される。

 なぜ、MCLTを最初にリースする必要があるか疑問に思うかもしれない。MCLTを使用しない前提で、DHCP01がDHCP02に情報を通知する前にダウンしたとしよう。この場合、DHCP02にはDHCP01がDHCPクライアントに提供したアドレス情報はないので、同じアドレスを本来のリース期間でリースしてしまう可能性が発生するのだ。このような動作を防ぐために、DHCP02にはあらかじめ正規のリース期間が登録された状態を維持してから、DHCP01はDHCPクライアントに対して正規のリース期間を付与している。

DHCPサーバーの状態

 DHCPサーバーには、次の三つの状態がある。

状態 説明
標準 フェイルオーバーモードに基づいて動作し、クライアントに対して正常にサービスを提供している状態
パートナーとの接続なし DHCPフェイルオーバーで構成された二つのサーバー間で通信の問題が発生した場合、各サーバーは通信が中断された状態に移行する
パートナー停止中 パートナー停止中状態では、DHCPサーバーはフェイルオーバーパートナーが動作していないことを前提として、スコープ全体を引き継ぐことができる

 通常運用時は「標準」であり、何らかの障害が発生すると「パートナーとの接続なし」に変化し、その後「パートナー停止中」となる。「パートナーとの接続なし」から「パートナー停止中」までの状態は、手動と自動で変更することができる。

 自動でスタンバイサーバーの状態が「パートナー停止中」となるためには、「状態切り替えの間隔」を設定する必要がある。本稿では「状態切り替えの間隔」を「30分」に設定したので、DHCP01がダウンするとDHCP02のステータスは「パートナーとの接続なし」に変化し、30分後に自動的に「パートナー停止中」となる。

 「状態切り替えの間隔」を設定しない場合は、手動で変更する必要がある。手動での変更はGUI(Graphical User Interface)で行う方法と、Windows PowerShellを使う方法がある。

 GUIで状態を変更するには、DHCPの管理コンソールから「IPv4プロパティ」を開き、「フェイルオーバー」タブで「フェイルオーバーリレーションシップ」の編集をクリックする(画面2)。

画面2
画面2 GUIによる状態切り替えの変更

 Windows PowerShellによる変更は、次のコマンドレットを実行すればよい。

Set-DhcpServerv4Failover -PartnerDown <関係名>


 スタンバイサーバーの状態が「パートナー停止中」になると、MCLTで設定した期間が経過後にスタンバイサーバーがスコープを制御して、100%のアドレス範囲を振り出すことができるようになる。

 アクティブサーバーがダウンした場合、DHCPクライアントのIPアドレスのリース期間はMCLTで設定した値となる。これはスタンバイ側の状態が「パートナーとの接続なし」および「パートナー停止中」であることを意味する。スタンバイサーバーがスコープを制御して100%のアドレス範囲を振り出すことができたとしても、リース期間は正規のリース期間とはならずに、MCLTの期間となることに注意してほしい。

 さらに、DHCPクライアントの動作として、リース期間の50%が経過するとリース更新を要求するのだが、スタンバイサーバーはこれに応答しない。さらに87.5%が経過すると再度リース更新を要求するが、このとき初めてスタンバイサーバーは応答する。

 このような動作から、DHCPのフェイルオーバーではアクティブとスタンバイが明確に分けられており、スタンバイサーバーの役割が変化することはないので、本来のアクティブサーバーの再開を待っていることになる。

負荷分散の構成

 負荷分散はホットスタンバイとほとんど同じで、モードを切り替えることで構成できる(画面3)。

画面3
画面3 負荷分散の構成画面

 負荷分散を構成した場合は、負荷分散の割合に応じてDHCPクライアントが接続するサーバーが変化する(図3)。

図3
図3 負荷分散の障害時の動作

 図3のように、ダウンしたサーバーからIPアドレスを取得していた場合と、そうでない場合で取得するIPアドレスのリース期間が変化することにも注意してほしい。どちらか1台がダウンすると、ダウンしたサーバーからIPアドレスを取得していたDHCPクライアントは、現在起動しているDHCPサーバーからIPアドレスを取得しようとする。その際のリース期間は、正規のリース期間となる。

 しかし、起動しているDHCPサーバーからIPアドレスを取得していたDHCPクライアントは、MCLTのリース期間となる。

 Windows Server 2012のDHCPのフェイルオーバー機能には、ホットスタンバイと負荷分散の二つのモードがあり、どのような動作になるのか理解できたと思う。特にホットスタンバイモードでは、アクティブとスタンバイがあり、この役割は変わらないことに注目してほしい。アクティブなDHCPサーバーがダウンしたら、その後のリース期間はMCLTで設定した期間になることがこの機能の重要なポイントになる。

筆者紹介

阿部 直樹(あべ なおき)

エディフィストラーニング株式会社所属のマイクロソフト認定トレーナー。Active Directory、Network、Security、Hyper-V、Clusterなどを担当。マイクロソフト トレーナー アワード(2010年)およびMicrosoft MVP for Hyper-V(Apr 2010 - Mar 2014)を受賞。個人ブログ『MCTの憂鬱』でマイクロソフト関連情報を発信中。


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る