Vraag Kan ik meerdere DHCP-servers op één netwerk hebben?


Dit is een Canonical Question over Redundante DHCP-servers.

Is het mogelijk om meer dan één DHCP-server op hetzelfde LAN te hebben? Wat zijn de implicaties om dit te doen?

  1. Wat gebeurt er als er meer dan één DHCP-server beschikbaar is? Hoe weten mijn klanten welke te gebruiken?
  2. Hoe kan ik DHCP-servers hebben die adressen aan meer dan één subnet \ netwerksegment leveren?
  3. Hoe kan ik meerdere DHCP-servers configureren om adressen voor te leveren hetzelfde subnet.

73
2018-03-11 11:01


oorsprong


Het idee achter deze vraag is om een ​​definitief antwoord te geven voor alle vragen "Hoe kan ik meer dan één DHCP-server hebben" die onze meer regelmatige gebruikers gek maken. Dit wordt hopelijk een van onze canonieke antwoorden (meta.serverfault.com/questions/1986/...) - Rob Moir
RTFM? tools.ietf.org/html/draft-ietf-dhc-failover-12#section-5.3 (en rfc 3074) definiëren dit gedrag al, en linux dhcpd implementeert het manpages.ubuntu.com/manpages/precise/en/man5/... - Dani_l
@Dani_l misschien moet je de link 'canonieke vraag' in de vraag volgen en misschien ook de auteurs van de antwoorden op mijn vraag hier bekijken voordat je me vertelt dat ik RTFM nodig heb. - Rob Moir
Ik zeg niet dat je de handleiding moet lezen. Ik wijs er alleen op dat er een handleiding is. De vraag is canoniek, maar indien van toepassing, vind ik dat deze een verwijzing moet bevatten naar "officiële" procedures, als die er zijn. In dit geval bestaat een IETF / RFC, en dat is zo officieel als mogelijk. - Dani_l


antwoorden:


Ik veronderstel dat ik een basiskennis heb van wat DHCP doet en hoe je je DHCP-server naar keuze moet configureren in dit antwoord, maar voordat we het hebben over meerdere DHCP-servers in hetzelfde netwerk, laten we eerst maar eens snel zien hoe clients IP-adressen ontvangen van DHCP op het meest eenvoudige niveau.

DHCP op een eenvoudig netwerk werkt volgens het DORA-principe.

  • Discovery - de client verzendt een bericht op het lokale netwerksegment waarmee hij verbonden is, om beschikbare DHCP-servers te vinden.

  • Aanbieding - een correct geconfigureerde DHCP-server ontvangt een verzoek van een klant en biedt deze een adres aan uit de pool met beschikbare adressen.

  • Verzoek - De klant antwoordt op de aanbieding en vraagt ​​om het adres dat is ontvangen in de Aanbieding.

  • Bevestiging - De server erkent de aanvraag, markeert het adres zoals gebruikt in de pool met adressen en informeert de klant over de duur van de adreslease en over alle andere benodigde informatie.

Elk apparaat in een netwerksegment kan een DHCP-server zijn; het hoeft niet de router of de domeincontroller of een ander "speciaal" apparaat op het netwerk te zijn.

Wanneer de apparaten in uw netwerk eerst een IP-adres aanvragen of het einde van hun huurovereenkomst bereiken (of u dwingt hen om te controleren of hun leaseovereenkomst nog steeds geldig is), dan zullen zij eenvoudigweg een aanvraag voor een DHCP-server verzenden en een aanbod accepteren van de eerste DHCP-server die antwoordt. Dit is belangrijk om te onthouden, aangezien we kijken naar de opties voor meerdere DHCP-servers hieronder.

Meerdere DHCP-servers PT 1: meerdere subnetten overspannen.

Als u meerdere VLAN's of fysieke netwerksegmenten hebt die zijn onderverdeeld in verschillende subnetten en u een DHCP-service wilt bieden voor apparaten in al die subnetten, zijn er twee manieren om dit te doen.

  1. Als de router / layer 3-switch die ze scheidt, kan fungeren als een BOOTP / DHCP-relay-agent, kunt u doorgaan met het houden van al uw DHCP-server (s) in een of twee centrale delen van uw netwerk en uw DHCP-server (s) configureren voor ondersteuning voor meerdere reeksen adressen. Om dit te ondersteunen, moet uw router of laag 3-switch de BOOTP-relayagentspecificatie ondersteunen die wordt vermeld in sectie 4 van RFC 1542.

  2. Als uw router geen RFC 1542 BOOTP-relay-agents ondersteunt of als sommige van uw netwerksegmenten geografisch verspreid zijn over langzame links, moet u een of meer DHCP-servers in elk subnet plaatsen. Deze 'lokale' DHCP-server voldoet alleen aan de vereisten van zijn eigen lokale segment en er is geen interactie tussen hem en andere DHCP-servers. Als dit is wat u wilt, kunt u eenvoudig elke DHCP-server configureren als zelfstandige server, met de details van de adrespool voor zijn eigen subnet, en hoeft u zich geen zorgen te maken over andere DHCP-servers in andere delen van het netwerk. Dit is het eenvoudigste voorbeeld van het hebben van meer dan één DHCP-server op hetzelfde netwerk.

Meerdere DHCP-servers PT 2: DHCP-servers die hetzelfde netwerksegment bedienen.

Wanneer de meeste mensen vragen naar "meerdere DHCP-servers op hetzelfde netwerk", vragen ze meestal om dit; ze willen dat meer dan één DHCP-server hetzelfde bereik van netwerkadressen uitgeven aan clients, ofwel om de belasting te splitsen over meerdere servers of om redundantie te bieden als een server offline is.

Dit is perfect mogelijk, hoewel het enige aandacht en planning vereist.

Vanuit het oogpunt van "netwerkverkeer" legt het DORA-proces aan het begin van dit antwoord uit hoe meer dan één DHCP-server in een netwerksegment aanwezig kan zijn; de client verzendt eenvoudigweg een Discovery-aanvraag en de eerste DHCP-server die reageert met een aanbieding is de 'winnaar'.

Vanuit het oogpunt van de server heeft elke server een pool met adressen die hij aan klanten kan verstrekken, bekend zijn adresbereik. DHCP-servers die hetzelfde subnet bedienen, mogen geen enkele "gedeelde" scope hebben, maar moeten eerder een "gesplitst" bereik hebben.

Met andere woorden, als u een reeks DHCP-adressen hebt om uit te geven aan clients van 192.168.1.100 tot 192.168.1.200, moeten beide servers worden geconfigureerd om afzonderlijke delen van dat bereik te bedienen, dus de eerste server kan delen van dat bereik gebruiken van 192.168.1.100 tot 192.168.1.150 en de tweede server geeft dan 192.168.1.151 uit aan 192.168.1.200.

Split DHCP scope, showing exclusions

De meer recente implementaties van DHCP van DHCP hebben een wizard waarmee u uw bereik kunt opsplitsen zoals dit eenvoudig is, beschreven in a Technet-artikel dat is misschien de moeite waard om te bekijken, zelfs als je de Microsoft DHCP-implementatie niet gebruikt, omdat het de principes die hier besproken worden, heel mooi illustreert en dit antwoord al lang genoeg is.

Splits de scope - beste praktijken

Een ding dat u als beste praktijk zult horen, is de 80/20-regel voor het splitsen van een DHCP-scope, wat betekent dat één server 80% van de adressen in dat bereik en de andere DHCP-server zal bedienen, die effectief 'in reserve' is zal 20% van de adressen serveren.

Het idee achter het splitsen van de adressen 80/20 is omdat 80% van de beschikbare adressen hopelijk geschikt moet zijn voor alle adressen die nodig zijn op een subnet, en DHCP-leases worden doorgaans gedurende meerdere dagen uitgegeven; dus als uw hoofd-DHCP-server een paar uur niet werkt, is het onwaarschijnlijk dat meer dan 20% van de machines in dat subnet hun adressen moeten vernieuwen tijdens de downtime, waardoor de 20% -pool van adressen voldoende is.

Dit is nog steeds redelijk advies, maar het veronderstelt twee dingen:

  1. Dat u elk probleem met uw "hoofd" DHCP-server snel genoeg kunt oplossen om te voorkomen dat de kleine pool van adressen op uw reserve-DHCP-server wordt uitgeput.
  2. Dat u niet geïnteresseerd bent in load balancing.

Tegenwoordig heb ik (zoals je kunt zien aan mijn voorbeelden) de voorkeur gegeven aan 50/50 splitsingen, waarvan ik denk dat ze een realistischer antwoord zijn op de bovenstaande punten.

Een ander ding om rekening mee te houden bij het maken van scopes op de DHCP-servers is het configureren van het volledige bereik in elke server en exclusief het bereik dat door de andere DHCP-server wordt uitgegeven. Dit heeft het voordeel van "zelfdocumentatie" van de DHCP-informatie voor het volledige subnet op elke DHCP-server, wat de duidelijkheid zal verbeteren voor iedereen die probeert te begrijpen wat er gaande is, en ook in het geval dat een van uw DHCP-servers offline is voor enige tijd kunt u het uitsluitingsbereik op de andere server tijdelijk opnieuw configureren om het op te nemen.

Combineer deze ideeën

Tot slot, het is de moeite waard om te onthouden dat u de hierboven besproken principes kunt combineren - u kunt al uw DHCP-servers in een of meer "centrale server" VLAN's plaatsen en BOOTP relay-agents gebruiken op al uw routers om alle DHCP-verzoeken van een zeer groot en gesegmenteerd te verzenden netwerk naar een gecentraliseerde DHCP-service (wat ik doe, zie hieronder). Of u kunt DHCP-servers over uw hele netwerk laten distribueren, met een "hoofd" DHCP-server in het lokale subnet en een "reserve" DHCP-server op een "nabijgelegen" netwerksegment met een klein aantal adressen als back-up - u zou zelfs twee DHCP-servers in hun eigen netwerksegmenten die zijn geconfigureerd om een ​​80/20-reeks adressen voor elkaar te bieden. De meest verstandige keuze hangt af van hoe uw fysieke en logische netwerken op elkaar zijn afgestemd.

DHCP servers serving split scopes to multiple subnets


88
2018-03-11 11:15



In geval van splitsen van scopes: houd er rekening mee dat DHCP-reserveringen op beide helften moeten worden ingesteld. Houden van gesynchroniseerde bestanden kan een hele klus zijn als u regelmatig updates moet uitvoeren. - Tonny
Kun je uitleggen over technieken om ervoor te zorgen dat de reserve-DHCP-server niet wordt geraakt zolang de hoofd-DHCP-server actief is? Van wat ik kan lezen, als er een gelijke kans is op het ontvangen van een antwoord van beide servers, zou de reserveserver statistisch geen toegang meer hebben tot adressen, zodra het totale aantal huurovereenkomsten tweemaal de omvang van de reservepool overschrijdt. Dit maakt de reserveserver vermoedelijk waardeloos voor nieuwe clients, wanneer de hoofd-DHCP-server defect is ... toch? - Niels B.
@NielsB. als je iets als een 80/20-splitsing doet, kun je een vertraging in de reactie van de reserveserver instellen ( blogs.technet.com/b/teamdhcp/archive/2009/01/22/... ). Ik doe hier geen moeite mee, omdat ik zelf een 50/50 deel gebruik, maar het zal werken. - Rob Moir


Ik heb deze benadering enkele jaren geleden aangenomen voor een klein tot middelgroot (500 gebruikers) netwerk met aanzienlijke voordelen. DHCP is niet langer een enkel storingspunt. Door MAC- en IP-adressen permanent te associëren, hebben we ervoor gezorgd dat beide DHCP-servers hetzelfde antwoord gaven op elk DHCP-verzoek. Het kennen van het IP-adres van elke netwerkactiva vereenvoudigde ook het netwerkbeheer en DNS kon van dezelfde database aflopen. Het systeem gebruikte Internet Software Corporation BIND en DNS, en de bijbehorende scripts kunnen worden gedownload op http://www.pearbright.com/index.php/download/25-dns-dhcp-download Aangezien het script momenteel offline is, zou een alternatief zijn om echte ISC DHCPD-failover te gebruiken: https://kb.isc.org/article/AA-00502/0/A-Basic-Guide-to-Configuring-DHCP-Failover.html


12
2018-06-05 09:50



Het OP heeft specifiek om een ​​verklarend antwoord voor deze vraag gevraagd. Misschien wilt u uw antwoord herzien om het uit te leggen. - Brent Pabst
fwiw, terwijl dit antwoord kort is en ik zal nooit meer details in een canonieke vraag en antwoordenset neerzetten, ik vond het redelijk goed omdat het een enigszins andere methode noemt om DHCP-redundantie te doen. - Rob Moir
@DJ Pon3 Ik ben het ermee eens: ik run een vergelijkbare setup als je grote multi-site DHCP (hoewel minder VLAN's) en ik gebruik dezelfde aanpak als Peter Talbot voor 3/4 van die VLAN's. - Tonny
De link is nu verbroken :( - Sergey Vlasov