Kann ich mehrere DHCP-Server in einem Netzwerk haben?


85

Dies ist eine kanonische Frage zu redundanten DHCP-Servern.

Ist es möglich, mehr als einen DHCP-Server im selben LAN zu haben? Was bedeutet das?

  1. Was passiert, wenn mehr als ein DHCP-Server verfügbar ist? Woher wissen meine Kunden, welche sie verwenden sollen?
  2. Wie kann ich erreichen, dass DHCP-Server Adressen für mehr als ein Subnetz- / Netzwerksegment bereitstellen?
  3. Wie kann ich mehrere DHCP-Server konfigurieren, um Adressen für dasselbe Subnetz bereitzustellen?

1
Die Idee hinter dieser Frage ist, eine endgültige Antwort auf alle Fragen zu geben, die "Wie kann ich mehr als einen DHCP-Server haben", die unsere regelmäßigeren Benutzer verrückt machen. Dies wird hoffentlich eine unserer kanonischen Antworten ( meta.serverfault.com/questions/1986/… )
Rob Moir

2
RTFM? tools.ietf.org/html/draft-ietf-dhc-failover-12#section-5.3 (und rfc 3074) bereits dieses Verhalten definieren, und Linux dhcpd implementiert es manpages.ubuntu.com/manpages/precise/en/man5/ …
Dani_l

2
@Dani_l Vielleicht solltest du dem Link "Kanonische Frage" in der Frage folgen und auch die Autoren der Antworten auf meine Frage hier überprüfen, bevor du mir sagst, dass ich RTFM benötige.
Rob Moir

2
Ich fordere SIE nicht auf, das Handbuch zu lesen. Ich weise nur darauf hin, dass es ein Handbuch gibt. Die Frage ist kanonisch, aber ich bin der Meinung, dass sie, falls vorhanden, einen Verweis auf "offizielle" Verfahren enthalten sollte. In diesem Fall gibt es eine IETF / RFC, und das ist so offiziell wie es nur geht.
Dani_l

Antworten:


95

In dieser Antwort gehe ich von grundlegenden Kenntnissen über die Funktionsweise von DHCP und die Konfiguration des DHCP-Servers Ihrer Wahl aus. Bevor wir uns jedoch mit mehreren DHCP-Servern im selben Netzwerk befassen, möchten wir zunächst noch einmal kurz erläutern, wie Clients IP-Adressen erhalten von DHCP auf der einfachsten Ebene.

DHCP in einem einfachen Netzwerk funktioniert nach dem DORA-Prinzip.

  • Ermittlung - Der Client sendet eine Nachricht auf dem lokalen Netzwerksegment, mit dem er verbunden ist, um verfügbare DHCP-Server zu ermitteln.

  • Angebot - Ein entsprechend konfigurierter DHCP-Server empfängt eine Anfrage von einem Client und bietet ihm eine Adresse aus seinem Pool verfügbarer Adressen an.

  • Anfrage - Der Kunde antwortet auf das Angebot und fordert die im Angebot angegebene Adresse an.

  • Bestätigung - Der Server bestätigt die Anforderung, markiert die Adresse als in seinem Adresspool verwendet und teilt dem Client mit, wie lange die Adressüberlassung gültig ist und welche weiteren Informationen erforderlich sind.

Jedes Gerät in einem Netzwerksegment kann ein DHCP-Server sein. Es muss sich nicht um den Router, den Domänencontroller oder ein anderes "spezielles" Gerät im Netzwerk handeln.

Wenn die Geräte in Ihrem Netzwerk zum ersten Mal eine IP-Adresse anfordern oder das Ende ihrer Lease erreichen (oder Sie sie zwingen, zu überprüfen, ob die Lease noch gültig ist), senden sie einfach eine Anfrage für einen DHCP-Server und akzeptieren von Anfang an ein Angebot DHCP-Server zum Antworten . Dies ist wichtig, um sich zu erinnern, wie wir die Optionen für mehrere DHCP-Server unten betrachten.

Mehrere DHCP-Server PT 1: Über mehrere Subnetze.

Wenn Sie über mehrere VLANs oder physische Netzwerksegmente verfügen, die in verschiedene Subnetze unterteilt sind, und Geräte in all diesen Subnetzen einen DHCP-Dienst bereitstellen möchten, gibt es zwei Möglichkeiten, dies zu tun.

  1. Wenn der Router / Layer 3-Switch, der sie trennt, als BOOTP / DHCP-Relay-Agent fungieren kann, können Sie weiterhin alle DHCP-Server in einem oder zwei zentralen Teilen Ihres Netzwerks belassen und Ihre DHCP-Server für konfigurieren Unterstützt mehrere Adressbereiche. Um dies zu unterstützen, muss Ihr Router oder Layer 3-Switch die BOOTP-Relay-Agent-Spezifikation unterstützen, die in Abschnitt 4 von RFC 1542 beschrieben ist .

  2. Wenn Ihr Router keine RFC 1542 BOOTP-Relay-Agenten unterstützt oder einige Ihrer Netzwerksegmente über langsame Verbindungen geografisch verteilt sind, müssen Sie in jedem Subnetz einen oder mehrere DHCP-Server einrichten. Dieser "lokale" DHCP-Server erfüllt nur die Anforderungen seines eigenen lokalen Segments, und es besteht keine Interaktion zwischen ihm und anderen DHCP-Servern. Wenn Sie dies wünschen, können Sie einfach jeden DHCP-Server als eigenständigen Server mit den Details des Adresspools für sein eigenes Subnetz konfigurieren und sich nicht um andere DHCP-Server in anderen Teilen des Netzwerks kümmern. Dies ist das grundlegendste Beispiel für mehrere DHCP-Server im selben Netzwerk.

Mehrere DHCP-Server PT 2: DHCP-Server, die dasselbe Netzwerksegment bedienen.

Wenn die meisten Leute nach „mehreren DHCP-Servern im selben Netzwerk“ fragen, ist dies normalerweise ihre Frage. Sie möchten, dass mehr als ein DHCP-Server denselben Bereich von Netzwerkadressen an Clients ausgibt, entweder um die Last auf mehrere Server aufzuteilen oder um Redundanz bereitzustellen, wenn ein Server offline ist.

Dies ist durchaus möglich, erfordert jedoch einige Überlegungen und Planungen.

Aus Sicht des „Netzwerkverkehrs“ erklärt der zu Beginn dieser Antwort beschriebene DORA-Prozess, wie mehr als ein DHCP-Server in einem Netzwerksegment vorhanden sein kann. Der Client sendet einfach eine Discovery-Anfrage und der erste DHCP-Server, der mit einem Angebot antwortet, ist der Gewinner.

Aus der Sicht des Servers verfügt jeder Server über einen Pool von Adressen, die er an Clients vergeben kann. Dies ist der Adressbereich. DHCP-Server, die dasselbe Subnetz bedienen, sollten keinen einzigen "gemeinsam genutzten" Bereich haben, sondern einen "geteilten" Bereich.

Mit anderen Worten, wenn Sie einen Bereich von DHCP-Adressen haben, die an Clients von 192.168.1.100 bis 192.168.1.200 vergeben werden sollen, sollten beide Server so konfiguriert sein, dass sie separate Teile dieses Bereichs bedienen, sodass der erste Server möglicherweise Teile dieses Bereichs von verwenden kann 192.168.1.100 bis 192.168.1.150 und der zweite Server würden dann 192.168.1.151 bis 192.168.1.200 ausgeben.

Geteilter DHCP-Bereich mit Ausschlüssen

In den neueren Implementierungen von Microsoft für DHCP ist ein Assistent enthalten, mit dem Sie Ihren Gültigkeitsbereich auf einfache Weise aufteilen können. Er wird in einem Technet-Artikel beschrieben , der möglicherweise auch dann einen Blick wert ist, wenn Sie nicht die Microsoft-DHCP-Implementierung verwenden, da er die genannten Prinzipien veranschaulicht hier ganz nett und diese antwort ist schon lang genug.

Scope aufteilen - Best Practice

Als bewährte Methode wird die 80/20-Regel für die Aufteilung eines DHCP-Bereichs erwähnt. Dies bedeutet, dass ein Server 80% der Adressen in diesem Bereich und der andere DHCP-Server, der sich tatsächlich in der Reserve befindet, versorgt. wird 20% der Adressen bedienen.

Die Idee hinter der Aufteilung der Adressen auf 80/20 ist, dass hoffentlich 80% der verfügbaren Adressen für alle in einem Subnetz benötigten Adressen ausreichen und DHCP-Leases in der Regel für mehrere Tage ausgestellt werden. Wenn Ihr Haupt-DHCP-Server für einige Stunden ausfällt, müssen wahrscheinlich nicht mehr als 20% der Computer in diesem Subnetz während der Ausfallzeit ihre Adressen erneuern, sodass der 20% -Pool an Adressen ausreicht.

Dies ist immer noch ein vernünftiger Rat, setzt jedoch zwei Dinge voraus:

  1. Damit können Sie jedes Problem mit Ihrem „Haupt“ -DHP-Server schnell genug lösen, um den kleinen Adresspool auf Ihrem Reserve-DHCP-Server nicht zu erschöpfen.
  2. Dass Sie nicht am Lastenausgleich interessiert sind.

Wie Sie meinen Beispielen entnehmen können, bevorzuge ich heutzutage 50/50 Splits, was meiner Meinung nach eine realistischere Antwort auf die obigen Punkte darstellt.

Eine andere Sache, die Sie beim Erstellen Ihrer Bereiche auf den DHCP-Servern berücksichtigen sollten, ist das Konfigurieren des gesamten Bereichs auf jedem Server und das Ausschließen des vom anderen DHCP-Server angegebenen Bereichs. Dies hat den Vorteil, dass die DHCP-Informationen für das gesamte Subnetz auf jedem DHCP-Server selbst dokumentiert werden, was die Übersichtlichkeit für alle anderen verbessert, die verstehen möchten, was gerade vor sich geht, und auch für den Fall, dass einer Ihrer DHCP-Server offline ist In manchen Fällen können Sie den Ausschlussbereich auf dem anderen Server vorübergehend neu konfigurieren, damit er den Durchhang auffängt.

Kombinieren Sie diese Ideen

Schließlich sollten Sie bedenken, dass Sie die oben erläuterten Prinzipien kombinieren können - Sie können alle Ihre DHCP-Server in einem oder mehreren "zentralen Server" -VLANs platzieren und BOOTP-Relay-Agenten auf allen Ihren Routern verwenden, um alle DHCP-Anforderungen von einem sehr großen und segmentierten Server aus zu senden Netzwerk zu einem zentralen DHCP-Dienst (was ich mache, siehe unten). Oder Sie können DHCP-Server über Ihr Netzwerk verteilen lassen, wobei sich ein "Haupt" -DHP-Server in seinem lokalen Subnetz befindet und ein "Reserv" -DHP-Server in einem "nahe gelegenen" Netzwerksegment eine kleine Menge von Adressen als Backup bereitstellt - möglicherweise sogar zwei DHCP-Server in ihren eigenen Netzwerksegmenten, die so konfiguriert sind, dass sie einen Adressbereich von 80/20 für einander bereitstellen. Die vernünftigste Wahl hängt davon ab, wie Ihre physischen und logischen Netzwerke einander zugeordnet sind.

DHCP-Server, die geteilte Bereiche für mehrere Subnetze bereitstellen


3
Bei Aufteilung der Bereiche: Bitte beachten Sie, dass DHCP-Reservierungen in beiden Hälften eingerichtet werden sollten. Sie synchron zu halten kann ein ziemlicher Aufwand sein, wenn Sie häufige Aktualisierungen vornehmen müssen.
Tonny

4
Können Sie Techniken ausarbeiten, um sicherzustellen, dass der Reserve-DHCP-Server nicht betroffen ist, solange der Haupt-DHCP-Server ausgeführt wird? Soweit ich lesen kann, gehen dem Reserveserver bei gleicher Wahrscheinlichkeit, eine Antwort von einem der beiden Server zu erhalten, statistisch gesehen die Adressen aus, sobald die Gesamtzahl der Leases die doppelte Größe des Reservepools überschreitet. Dies macht den Reserveserver vermutlich für neue Clients wertlos, wenn der Haupt-DHCP-Server ausfällt ... oder?
Niels B.

3
@NielsB. Wenn Sie so etwas wie eine 80/20 Aufteilung machen, können Sie eine Verzögerung in der Antwort des Reserveservers einstellen ( blogs.technet.com/b/teamdhcp/archive/2009/01/22/… ). Ich kümmere mich nicht darum, da ich selbst einen 50/50-Split verwende, aber es wird funktionieren.
Rob Moir

13

Ich habe diesen Ansatz vor einigen Jahren für ein kleines bis mittelgroßes Netzwerk (500 Benutzer) mit erheblichen Vorteilen gewählt. DHCP war kein einziger Fehler mehr. Durch die permanente Zuordnung von MAC- und IP-Adressen haben wir sichergestellt, dass beide DHCP-Server auf jede DHCP-Anfrage dieselbe Antwort gaben. Die Kenntnis der IP-Adresse jedes Netzwerk-Assets vereinfacht auch die Netzwerkadministration, und DNS kann auf derselben Datenbank ausgeführt werden. Das verwendete System Internet Software Corporation BIND und DNS sowie die zugehörigen Skripts können unter https://web.archive.org/web/20121031051901/http://www.pearbright.com/index.php/download/25- heruntergeladen werden. DNS-DHCP-Download .

Eine Alternative wäre die Verwendung eines echten ISC-DHCPD-Failovers: https://kb.isc.org/article/AA-00502/0/A-Basic-Guide-to-Configuring-DHCP-Failover.html


2
Das OP bat ausdrücklich um eine erläuternde Antwort auf diese Frage. Sie können Ihre Antwort überarbeiten, um sie zu erweitern.
Brent Pabst

3
fwiw, obwohl diese Antwort kurz ist und ich in einem kanonischen Frage- und Antwortsatz nie näher darauf eingehen werde, fand ich sie recht gut, da sie eine etwas andere Methode zur Durchführung der DHCP-Redundanz erwähnt.
Rob Moir

1
@DJ Pon3 Ich stimme zu: Ich verwende ein ähnliches Setup wie Ihr DHCP für mehrere Standorte (allerdings weniger VLANs) und verwende für 3/4 dieser VLANs denselben Ansatz wie Peter Talbot.
Tonny

1
Die Verbindung ist jetzt unterbrochen :(
Sergey Vlasov
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.