Windows TIPS
[Network]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

DHCPサーバを冗長構成で運用する方法

井上孝司
2003/05/17
 
対象OS
Windows 2000 Server
Windows 2000 Advanced Server
Windows 2000 Datacenter Server
通常DHCPサーバは1つのネットワークには1台しか設置できない。不正なDHCPサーバが存在すると、割り当てられるIPアドレスなどの情報が間違ったものになり、さまざまな障害が発生する可能性がある。
だが利用可能なIPアドレスを2つに分けて2台のDHCPサーバへ割り当てれば、DHCPサービスを冗長構成で運用することができる。ただしクライアントが実際に利用可能なアドレスの個数は半分になる。
 
解説

【2011/09/02】Windows Server 2008 R2で導入された、DHCPのスコープを分割して冗長構成にする方法についてはTIPS「DHCPのスコープを分割して冗長構成にする(Windows Server 2008 R2編)」を参照してください。

 DHCPを使ったIPアドレスの管理は、いまや非常に一般的な方法となっている。クライアントPCの設定を個別に行うことなく、IPアドレスの設定や重複の回避、ネットマスクやゲートウェイ、ドメイン情報などを集中的に管理することができるからだ。

 一般的には、「1つのネットワークには、DHCPサーバは1台しか設置できない」とされている。2台以上のDHCPサーバが存在すると、IPアドレスが重複して割り当てられたり、(管理者が認めた以外の)不正なIPアドレスやネットワーク情報などが渡され、さまざまなトラブルが発生したりするためだ。そのためDHCPサーバは、適切に管理されたものを1台だけ用意するというのが基本である。DHCPでは、クライアントが最初にブロードキャストを行い、それに対してDHCPサーバが応答することでアドレスの割り当てを受けている。そのため、本来設置されたものではないイレギュラーなDHCPサーバが先にブロードキャストに応答してしまうと、こうしたトラブルが発生することになる。

 しかし、たいていのネットワーク・サービスが冗長化できる一方で、DHCPサーバのみが1台しか存在できず、冗長化できないというのは、トラブル発生時の対処を考えると不安が残る。何らかの障害でDHCPサーバが利用できなくなると、ネットワーク上のDHCPクライアントがすべて利用できなくなってしまう可能性があるからだ。

DHCPサーバの冗長化

 こうした問題を解決するための方法として、それぞれ異なる範囲のアドレス・プールを持ったDHCPサーバを2台(以上)用意し、それらを同じネットワーク上に設置するという方法がある。DHCPのプロトコルそのものは、1つのネットワークに複数のDHCPサーバが存在することによって、動作不可能になることはない。クライアントから見ると2台のDHCPサーバが存在していても、通常はどちらか先にDHCPの応答を返した方の情報を利用するので、いずれの情報にも矛盾がなければ(つまり正規のIPアドレスなどが得られる限りは)問題とはならない。

 例えば、IPアドレスとして「192.168.0.0/24(192.168.0.0〜192.168.0.255)」を使っているネットワークを考えてみる。この場合、ホスト・アドレスとしては、192.168.0.1〜192.168.0.254の合計254個のIPアドレスが使用できる。この中から、ほかのネットワークと接続するために使用されるルータや、各種のサーバに固定IPアドレスで割り当てられる分も差し引いた残りがクライアント用のアドレス範囲ということになる。一例として、以下のように割り当てを行うケースが考えられる。

  • ルータのIPアドレス:192.168.0.1(デフォルト・ゲートウェイとして指定する)
  • サーバ用の固定IPアドレス:192.168.0.2〜192.168.0.20(19台分)

 この場合、192.168.0.21〜192.168.0.254の範囲(234個)のIPアドレスが空いており、これらをDHCPでクライアントに割り当てることができる。

 そこで、この範囲を2分割して、それぞれ別のDHCPサーバに対してアドレス・プールとして割り当てる。例えば、1台目のDHCPサーバではアドレス・プールの範囲を「192.168.0.21〜192.168.0.130(110台分)」、2台目のDHCPサーバではアドレス・プールの範囲を「192.168.0.131〜192.168.0.254(124台分)」とするわけだ。実際に設定するアドレス・プール範囲は、必要なルータやサーバの台数によって変動するため、実情に合わせて適宜、数値を読み替えていただきたい。ただしサブネット・マスクやデフォルト・ゲートウェイ、DNSサーバ・アドレス、ドメイン名、WINSサーバ名、NetBIOSノード・タイプの情報など、IPアドレス以外のパラメータは、双方のDHCPサーバで同じ値を設定しておく。

 こうすると、DHCPクライアントがアドレス割り当てを受けるためにブロードキャストした際に、1台目のDHCPサーバが先に応答すれば192.168.0.21〜192.168.0.130の範囲から、2台目のDHCPサーバが先に応答すれば192.168.0.131〜192.168.0.254の範囲から、それぞれIPアドレスが割り当てられる。どちらのDHCPサーバから割り当てを受けても、IPアドレスが異なるだけで、それ以外の情報は同じであり、問題なく動作する。

DHCPサーバの冗長化
DHCPサーバ・システムの冗長化のため、それぞれ異なる範囲のIPアドレスをアドレス・プールに指定したDHCPサーバを2台用意する。クライアントPCがDHCPブロードキャストを行うと、どちらか、先に応答した方のDHCPサーバからIPアドレスの割り当てが行われる。

 以下に、2台のDHCPサーバのアドレス・プールの状態を示しておく。

1台目のDHCPサーバの設定
2台目のDHCPサーバの設定
冗長化を行う際の2台のDHCPサーバの設定の違い
これはWindows 2000 ServerのDHCP管理ツールを使用した例だが、ほかのDHCPサーバでも考え方は変わらない。利用可能なホスト・アドレスを2つに分け、それぞれのDHCPサーバのアドレス・プールに割り当てる。IPアドレス以外のパラメータは、両方のDHCPサーバで統一しておく必要がある。
  1台目のDHCPサーバのアドレス・プール。IPアドレス全体の前半部分を割り当てている。
  2台目のDHCPサーバのアドレス・プール。IPアドレス全体の後半部分を割り当てている。

 この方法の難点としては、クライアントが利用可能なIPアドレスの数が、実質的に半減してしまう点が挙げられる。DHCPサーバの台数をさらに増やせば、冗長度は高まるが、その分だけ利用可能なアドレスの数が減少するので、現実的には2台で十分であろう。さらに信頼性が必要なら、DHCPサーバそのものをより信頼性の高いハードウェア・システムなどに変更するか(DHCPサーバを動作させているシステムでは、ほかのサービスはなるべく動かさないようにするとか、専用のルータなどでDHCPサーバを運用するという方法もある)、IPアドレスのリース期間をいくらか長くして、障害からの復旧の間にリース時間が切れてしまわないようにするなどの運用が望ましいだろう。End of Article

「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間