これは冗長DHCPサーバーに関する 標準的な質問 です。
同じLANに複数のDHCPサーバーを配置することはできますか?これを行うことの意味は何ですか?
この回答ではDHCPの機能と選択したDHCPサーバーの構成方法についての基本的な知識があると想定していますが、同じネットワーク上の複数のDHCPサーバーについて説明する前に、まずクライアントがIPアドレスを受信する方法を簡単にまとめておきましょう。最も基本的なレベルのDHCPから。
検出-クライアントは、接続されているローカルネットワークセグメントにメッセージをブロードキャストして、利用可能なDHCPサーバーを検出します。
提供-適切に構成されたDHCPサーバーはクライアントから要求を受信し、使用可能なアドレスのプールからアドレスを提供します。
リクエスト-クライアントはオファーに返信し、オファーで受け取ったアドレスを要求します。
確認-サーバーはリクエストを確認し、アドレスのプールで使用されるようにアドレスをマークし、アドレスリースが有効な期間と必要なその他の情報をクライアントに通知します。
ネットワークセグメント上の任意のデバイスをDHCPサーバーにすることができます。ルーター、ドメインコントローラー、またはネットワーク上のその他の「特別な」デバイスである必要はありません。
ネットワーク上のデバイスが最初にIPアドレスを要求するか、リースの最後に到達する(または、リースがまだ有効であることを確認するように強制する)と、デバイスはDHCPサーバーへの要求をブロードキャストし、以下からのオファーを受け入れます- 最初に応答するDHCPサーバー。これは、以下の複数のDHCPサーバーのオプションを見るときに覚えておくことが重要です。
異なるサブネットに分離された複数のVLANまたは物理ネットワークセグメントがあり、それらすべてのサブネットのデバイスにDHCPサービスを提供する場合、これを行うには2つの方法があります。
それらを分離するルーター/レイヤー3スイッチがBOOTP/DHCPリレーエージェントとして機能できる場合は、引き続きすべてのDHCPサーバーをネットワークの1つまたは2つの中央部分に維持し、DHCPサーバーを構成して複数のアドレス範囲をサポートします。これをサポートするには、ルーターまたはレイヤー3スイッチが RFC 1542のセクション4 でカバーされているBOOTPリレーエージェント仕様をサポートしている必要があります。
ルーターがRFC 1542 BOOTPリレーエージェントをサポートしていない場合、またはネットワークセグメントの一部が低速リンク上に地理的に分散している場合は、各サブネットに1つ以上のDHCPサーバーを配置する必要があります。この「ローカル」DHCPサーバーは、独自のローカルセグメントの要件にのみ対応し、他のDHCPサーバーとの相互作用はありません。これが必要な場合は、各DHCPサーバーをスタンドアロンサーバーとして構成し、独自のサブネットのアドレスプールの詳細を使用して、ネットワークの他の部分の他のDHCPサーバーについて心配する必要はありません。 これは、同じネットワーク上に複数のDHCPサーバーを持つ最も基本的な例です。
ほとんどの人が「同じネットワーク上の複数のDHCPサーバー」について尋ねるとき、彼らが通常求めているのはこれです。複数のDHCPサーバーがクライアントに同じ範囲のネットワークアドレスを発行して、複数のサーバー間で負荷を分割するか、1つのサーバーがオフラインの場合に冗長性を提供することを望んでいます。
これは完全に可能ですが、多少の検討と計画が必要です。
「ネットワークトラフィック」の観点から見ると、この回答の冒頭で概説されているDORAプロセスは、ネットワークセグメントに複数のDHCPサーバーが存在できることを説明しています。クライアントは検出要求をブロードキャストするだけで、オファーで応答する最初のDHCPサーバーが「勝者」です。
サーバーの観点から見ると、各サーバーには、クライアントに発行できるアドレスのプールがあり、そのアドレススコープは既知です。同じサブネットにサービスを提供しているDHCPサーバーは、単一の「共有」スコープではなく、「スプリット」スコープを持つ必要があります。
つまり、クライアントに発行するDHCPアドレスの範囲が192.168.1.100から192.168.1.200の場合、両方のサーバーはその範囲の別々の部分を提供するように構成する必要があるため、最初のサーバーは192.168.1.100から192.168.1.150になり、2番目のサーバーは192.168.1.151から192.168.1.200を発行します。
Microsoftの最近のDHCPの実装には、このようにスコープを簡単に分割できるウィザードがあります。これについては、Microsoft DHCPの実装を使用していない場合でも一見の価値がある Technetの記事 で説明されています。ここで述べられている原則が非常にうまく示されているので、この答えはすでに十分に長くなっています。
ベストプラクティスとして言及されることの1つは、DHCPスコープを分割するための80/20ルールです。つまり、1つのサーバーがそのスコープのアドレスの80%を処理し、他のDHCPサーバーは事実上「予約済み」です。アドレスの20%を提供します。
アドレスを80/20に分割する背景にある考え方は、利用可能なアドレスの80%がサブネットで必要なすべてのアドレスに十分対応でき、DHCPリースは通常数日間発行されるためです。したがって、メインのDHCPサーバーが数時間ダウンした場合、そのサブネット上のマシンの20%以上がダウンタイム中にアドレスを更新する必要がなくなり、20%のアドレスプールで十分になります。
これは依然として妥当なアドバイスですが、次の2つを前提としています。
最近(私の例からわかるように)、私は50/50の分割を好む傾向があり、これは上記の点に対するより現実的な答えだと思います。
DHCPサーバー上にスコープを作成するときに考慮すべきもう1つのことは、各サーバーに完全なスコープを構成し、他のDHCPサーバーによって指定された範囲を除外することです。これには、各DHCPサーバーの完全なサブネットのDHCP情報を「自己文書化」するという利点があり、何が起こっているのかを理解しようとしている他の人にとってわかりやすくなり、DHCPサーバーの1つがオフラインの場合にも場合によっては、他のサーバーの除外範囲を一時的に再構成して、サーバーがスラックを取得できるようにすることができます。
最後に、上記の原則を組み合わせることができることを覚えておいてください。すべてのDHCPサーバーを1つ以上の「中央サーバー」VLANに配置し、すべてのルーターでBOOTPリレーエージェントを使用して、非常に大規模でセグメント化されたすべてのDHCP要求を送信できます。集中DHCPサービスへのネットワーク(これは私が行うことです。以下を参照してください)。または、DHCPサーバーをネットワーク全体に分散させ、ローカルサブネットに「メイン」DHCPサーバーを、「近接」ネットワークセグメントに「予約」DHCPサーバーを使用して、少量のアドレスをバックアップとして提供することもできます。相互に80/20の範囲のアドレスを提供するように構成された独自のネットワークセグメント内の2つのDHCPサーバー。最も賢明な選択は、物理ネットワークと論理ネットワークが相互にどのようにマッピングされるかに依存します。
私はこのアプローチを数年前に採用しました。中小規模(500ユーザー)のネットワークに大きなメリットがあります。 DHCPは単一障害点ではなくなりました。 MACアドレスとIPアドレスを永続的に関連付けることにより、両方のDHCPサーバーが各DHCP要求に対して同じ応答を返すようにしました。すべてのネットワーク資産のIPアドレスを知ることで、ネットワーク管理も簡素化され、DNSが同じデータベースで実行される可能性があります。システムはInternet Software CorporationのBINDおよびDNSを使用し、関連するスクリプトは https://web.archive.org/web/20121031051901/http://www.pearbright.com/index.php/からダウンロードできます。 download/25-dns-dhcp-download 。
別の方法は、真のISC DHCPDフェイルオーバーを使用することです: https://kb.isc.org/article/AA-00502/0/A-Basic-Guide-to-Configuring-DHCP-Failover.html =