2014年12月9日火曜日

Hyper-VのDHCPガードの意味

Windows Server 2012以降のHyper-Vには「DHCPガード」という機能があります。説明には「承認されていない仮想マシンからのDHCPサーバーメッセージを削除します」とあります。

実際に、このチェックボックスをオンにすると、DHCPパケットが仮想マシン外に飛びません(DHCPサーバーとして実用的な動作はしません)。

DHCP-Guard
▲DHCPサーバーガードの構成は仮想マシン単位で行う

Windows ServerにはDHCPサーバーをActive Directoryで承認する機能があるため、この「承認」も何らかの操作を指すと思っている人が多いようです。

実は、ここでいう「承認」は「管理者が正しいと判断する」という意味です。つまり、管理者が、正しいDHCPサーバーを立てたと思ったらチェックを外すという手順を意味します。

存在しない機能を探すのは難しいのですが、一応、それらしいものがありました。英語版TechNet Forumの「How to configure DHCP guard in Hyper-V 2012?」では、モデレータのBrian Ehlertさんがこう答えています。

Unauthorized and Authorized is a procedural / process phrase. It is not a technical phrase or any setting that can be applied.  It is the business decision to call machine authorized or not.

意訳

「承認されていない/承認されている」は手続きの順序を意味しており、技術的な方法や設定手順を意味するものではありません。「承認されている/いない」は、仮想マシンを構成するときのビジネス的な判断(DHCPサーバーにするかしないかを管理者が決めること)を意味します。

Hyper-V管理者と、仮想マシン管理者が同一の場合は意味を持ちませんが、以下のような運用を想定しています。

  1. Hyper-V管理者が仮想マシンVMを作成
  2. VM管理者はDHCPサーバーでないことをHyper-V管理者に通知
  3. Hyper-V管理者が仮想マシンVMのDHCPガードを有効化
  4. 誤ってVMにDHCPサーバーをインストールしてもDHCPパケットは廃棄される