Windows Server – DHCP サービス (DHCP の冗長化方式 – ホットスタンバイモード)

DHCP サーバー

Windows Server の DHCP サービスで利用可能な冗長化方式の「ホットスタンバイモード」について説明します.

通常時の動作

ホットスタンバイモードの状態遷移のイメージは以下のようになります.

ホットスタンバイモードの説明の前提構成

以下ホットスタンバイモードを説明しますが,その際の DHCP サービスの構成の前提はこのようになっています.
IP アドレスプールが 100 個,その内 20% を予約アドレスとして確保した場合となります.

初回の DHCP 要求 (正常動作時)

正常動作時のクライアントからの DHCP リクエストが行われた場合,DHCP Discover に対する OFFER の応答はプライマリーが行います.セカンダリーは OFFER 応答を返しません.
その後の DHCP Request に対してもプライマリーが Ack を返しますが,セカンダリーは何も応答を返しません.

初回の IP アドレスの配布の際,リース期限は「MCLT」に設定された時間がリース上限として返答されます.先の図で記載しているとおり,MCLT は 5分 としているため,Lease Time は 300s として応答が返ります.

DHCP Ack の際,DHCP サーバー2台の間ではリース情報を共有されます.

リース更新の要求 (正常動作時)

初回のリース時間が5分の為,2分30秒後にリース更新要求がクライアントから送信されます.
この要求はユニキャストで DHCP サーバーに送られますので,プライマリーが更新要求に答えます.
更新時は DHCP サービスとして設定しているリース期間を応答します.リース期間は先の図で 10分と記載しているとおり,10分が返されます.

リース更新時も DHCP Ack の際,DHCP サーバー2台の間ではリース情報を共有されます.

障害時の動作 (障害発生時)

DHCP サーバーに障害が発生した際の動作について説明します.
以下の図の赤枠で囲んでいる範囲,障害が発生したあと MCLT 時間に到達する間の動作についての説明になります.

新規の端末からの DHCP 要求時の動作

障害発生直後,新規端末からの DHCP DISCOVER はセカンダリーが受取り,予約範囲の中から払い出します.
リース期間は MCLT の期間を通知します.

プライマリーから払い出されていた端末の更新要求動作

元々プライマリーサーバーから DHCP でアドレスが払いだされていた端末は,T1 時間を超えた際にプライマリーサーバーに更新リクエストを行います.しかし,プライマリーサーバーは障害のため応答を返すことができません.

T2 時間を経過後,端末はブロードキャストあてに DHCP DISCOVER を送信し,そこでセカンダリーサーバーが応答します.
リース情報を共有しているため,元々端末に割り当てているアドレスで更新要求を処理し,リース期間を延長します.

リース期間は MCLT で設定された時間となります.

セカンダリーから払い出されたアドレスの更新要求

元々プライマリーから払い出されて,障害があってセカンダリーに切り替わった端末も,障害後に DHCP 要求を経て新規に払い出された端末も T1 時間を超えた後の DHCP REQUEST で直接セカンダリーサーバーに要求されますが,セカンダリーサーバーはそれに応答を返しません.

T2 時間を経ての DHCP DISCOVER になってセカンダリーサーバーは応答を返します.

セカンダリーはあくまでも DHCP DISCOVER に対してのみ処理を行う点に注意してください.

障害時の動作および障害復旧中の動作 (MCLT時経過,待機回復中)

プライマリーサーバー障害発生,MCLT 期間を経過した後および,プライマリーサーバー復旧中の動作について説明します.
以下の図の赤枠で囲んでいる範囲の動作についての説明になります.

元々プライマリーから払い出されており,このタイミングで更新が発生した場合

元々プライマリーサーバーから払い出しがなされていて,先の MCLT 期間中に更新要求が行われず,この復旧中に更新要求が行われた場合,DHCP REQUEST はプライマリーサーバーを向いてますので,そのままリースの更新が行われます.

ただし,この段階のアドレスのリース時間は MCLT で設定した時間になります.

セカンダリーサーバーから払い出された/更新された端末の場合

障害発生後に新規のアドレス要求を受けた端末および,リース更新を受けた端末は DHCP REQUEST をセカンダリーサーバーに送信しますが,セカンダリーサーバーは応答しません.

T2 時間を経て DHCP DISCOVER に切り替わりますが,この際にプライマリーサーバーが応答し,DHCP ACK を返し,アドレスのリース更新処理へ進みます.

この際にリースされる IP アドレスの期間は MCLT の期間となります.

障害復旧後の動作

プライマリーサーバー復旧後の動作について説明します.
以下の図の赤枠で囲んでいる範囲の動作についての説明になります.

このフェーズに入ると「初回の DHCP 要求 (正常動作時)」および「リース更新の要求 (正常動作時)」と変わらない動作となります.
違いは MCLT 期間中であれば更新要求時に返される値は MCLT 期間になる.ということです.
MCLT 期間を終えた後の更新要求は DHCP 設定で指定しているリース期間を返します.

復旧後のセカンダリー予約アドレスの扱い

障害発生直後に新規にアドレスが払い出される際,セカンダリーの予約アドレスから払い出されます.
その後復旧した後も予約アドレスから払い出されたものは再リースされ継続利用されていきます.

そうすると予約アドレスで指定している割合を下回る事になりますが,その場合はスコープ全体の未リースアドレス帯から予約アドレスで必要な数を確保する動きとなります.
したがって,通常は予約アドレスレンジが枯渇することはありません.

以上でDHCP フェイルオーバー ホットスタンバイモードの説明を終わります.
次回は負荷分散モードの説明を行います.

コメント

タイトルとURLをコピーしました