2014年5月22日木曜日

フェールオーバー用の DHCP の構成 (Windows Server 2012)

公式コラムでは「Windows移行特集」が始まりました。第1回は「Windowsのマイグレーションと言えば」というタイトルで私が書いています。

英語の「migration」は、ごく一般的な言葉で「人や動物が移動する」ことを意味します。たとえば、アフリカ大陸で見られる「ヌー(Gnu)の大移動」は「The Great Migration」と呼ばれるそうです。UNIXからLinuxに移行することではありません。

GnuプロジェクトのツールがUNIXからLinuxにどんどん移植され、最近ではLinuxが中心になっていることに引っかけてみたんですが、社内では誰も突っ込んでくれませんでした(Gnuプロジェクトの創設者R. M. Stallmanは「Gnu Linuxと呼べ」と言っているので、最初は「WindowsからLinuxへの移行」と書いたのですが、「UNIXからLinusの方が面白い」と社外の方に指摘されて修正しました)。

さて今日の本題です。

Windows Server 2012から、DHCPサーバーの冗長構成(DHCPフェールオーバー)が可能になりました。もう高価で面倒なフェールオーバークラスターを構築する必要はありません。

DHCPフェールオーバーは、DHCPスコープあたり2台のサーバーで構成します。フェールオーバー後の動作を実際に試してみました。いずれも「ホットスタンバイモード」の場合です。

 

●正常時の動作

プライマリDHCPサーバーがIPアドレスをリースします。この情報はスタンバイDHCPサーバーのDHCPスコープに複製されます。

 

●フェールオーバー後の動作

プライマリDHCPが停止すると、一定時間後にスタンパイDHCPがスコープの制御を取得します。

ただし、この情報はDHCPクライアントには伝わりません。そのため、DHCPクライアントからのIPアドレス更新要求は常に自分がIPアドレスを取得したDHCPサーバー(プライマリDHCPサーバー)に対して行われます。

しかし、プライマリDHCPサーバーは停止しているため、更新要求は失敗します。

DHCPクライアントは、IPアドレスの有効期限直前になると、プライマリDHCPサーバーからの更新をあきらめ、新たにIPアドレスのリースをブロードキャストで要求します。

この時、スタンバイDHCPが応答しますが、スタンバイDHCPには既存のDHCPスコープ情報が複製されているため、DHCP要求に含まれるMACアドレスに対して、以前払い出したIPアドレスが再割り当てされます。

結果として、DHCPサーバーは変わりますが、IPアドレスその他のパラメータは以前と同じ情報が配布されます。これによりTCP/IP構成の連続性が保証されます。

 

●フェールバック時の動作

プライマリDHCPサーバーが復旧した場合、一定時間後にスコープの制御がプライマリDHCPサーバーに戻ります。もちろんスコープ情報もすべて複製されます。

スタンバイDHCPサーバーは待機状態になり、IPアドレスの更新要求に答えなくなります。その後はフェールオーバー時と同様の動作で、プライマリDHCPサーバーからIPアドレスを新たに(でも同じIPアドレスで)入手します。

 

●注意

DHCPサーバーがフェールオーバーしているときに、コマンド「ipconfig /renew」を実行すると、IPアドレスが更新できずエラーとなります。

手動でIPアドレスを更新する場合は、「ipconfig /release」を実行し、明示的にIPアドレスを解放してから「ipconfig /renew」を実行してください。