Dans cette réponse, je pars du principe que vous avez une connaissance de base de ce que fait le DHCP et de la façon de configurer votre serveur DHCP, mais avant de parler de plusieurs serveurs DHCP sur le même réseau, rappelons rapidement comment les clients reçoivent les adresses IP du DHCP au niveau le plus élémentaire.
Le DHCP sur un réseau simple fonctionne selon le principe DORA.
-
Découverte - le client diffuse un message sur le segment de réseau local auquel il est connecté, afin de découvrir les serveurs DHCP disponibles.
-
Offre - un serveur DHCP convenablement configuré reçoit une demande d'un client et lui propose une adresse à partir de son pool d'adresses disponibles.
-
Demande - Le client répond à l'offre, en demandant l'adresse reçue dans l'offre.
-
Accusé de réception - Le serveur accuse réception de la demande, en marquant l'adresse comme utilisée dans son pool d'adresses, et informe le client de la durée de validité du bail de l'adresse, ainsi que de toute autre information nécessaire.
N'importe quel périphérique sur un segment de réseau peut être un serveur DHCP ; il n'est pas nécessaire que ce soit le routeur, le contrôleur de domaine ou tout autre périphérique "spécial" du réseau.
Lorsque les périphériques de votre réseau demandent une adresse IP pour la première fois ou atteignent la fin de leur bail (ou si vous les forcez à vérifier que leur bail est toujours valide), ils diffuseront simplement une demande de serveur DHCP et accepteront une offre de la part de le premier serveur DHCP à répondre . Il est important de s'en souvenir lorsque nous examinons les options pour les serveurs DHCP multiples ci-dessous.
Serveurs DHCP multiples PT 1 : s'étendant sur plusieurs sous-réseaux.
Si vous avez plusieurs VLAN ou segments de réseau physique qui sont séparés en différents sous-réseaux, et que vous voulez fournir un service DHCP aux périphériques de tous ces sous-réseaux, il y a deux façons de procéder.
-
Si le routeur ou le commutateur de couche 3 qui les sépare peut agir en tant qu'agent de relais BOOTP/DHCP, vous pouvez continuer à garder tous vos serveurs DHCP dans une ou deux parties centrales de votre réseau et configurer vos serveurs DHCP pour qu'ils prennent en charge plusieurs plages d'adresses. Pour ce faire, votre routeur ou votre commutateur de couche 3 doit prendre en charge la spécification de l'agent de relais BOOTP décrite dans le document suivant section 4 du RFC 1542 .
-
Si votre routeur ne prend pas en charge les agents relais BOOTP RFC 1542, ou si certains de vos segments de réseau sont géographiquement dispersés sur des liaisons lentes, vous devrez placer un ou plusieurs serveurs DHCP dans chaque sous-réseau. Ce serveur DHCP "local" ne répondra qu'aux besoins de son propre segment local, et il n'y a aucune interaction entre lui et les autres serveurs DHCP. Si c'est ce que vous voulez, vous pouvez simplement configurer chaque serveur DHCP comme un serveur autonome, avec les détails du pool d'adresses pour son propre sous-réseau, et ne pas vous soucier des autres serveurs DHCP sur d'autres parties du réseau. Il s'agit de l'exemple le plus élémentaire d'avoir plus d'un serveur DHCP sur le même réseau.
Serveurs DHCP multiples PT 2 : serveurs DHCP qui desservent le même segment de réseau.
Lorsque la plupart des gens posent la question de "plusieurs serveurs DHCP sur le même réseau", leur demande est généralement la suivante : ils veulent que plusieurs serveurs DHCP délivrent la même gamme d'adresses réseau aux clients, soit pour répartir la charge entre plusieurs serveurs, soit pour assurer la redondance si un serveur est hors ligne.
C'est parfaitement possible, mais cela demande un peu de réflexion et de planification.
Du point de vue du "trafic réseau", le processus DORA décrit au début de cette réponse explique comment plus d'un serveur DHCP peut être présent sur un segment de réseau ; le client diffuse simplement une demande de découverte et le premier serveur DHCP à répondre avec une offre est le "gagnant".
Du point de vue du serveur, chaque serveur dispose d'un pool d'adresses qu'il peut délivrer aux clients, connu sous le nom d'étendue d'adresses. Les serveurs DHCP qui desservent le même sous-réseau ne doivent pas avoir une seule étendue "partagée", mais plutôt une étendue "divisée".
En d'autres termes, si vous disposez d'une plage d'adresses DHCP à délivrer aux clients allant de 192.168.1.100 à 192.168.1.200, les deux serveurs doivent être configurés pour servir des parties distinctes de cette plage. Ainsi, le premier serveur pourrait utiliser des parties de cette plage allant de 192.168.1.100 à 192.168.1.150 et le second serveur délivrerait alors 192.168.1.151 à 192.168.1.200.
Les implémentations les plus récentes de DHCP de Microsoft disposent d'un assistant qui facilite la division de votre champ d'application de cette manière, décrit dans un document intitulé Article de Technet qui vaut la peine d'être consultée même si vous n'utilisez pas l'implémentation DHCP de Microsoft, car elle illustre très bien les principes évoqués ici et cette réponse est déjà assez longue.
Fractionnement du champ d'application - meilleure pratique
Une chose que vous entendrez mentionner comme meilleure pratique est la règle 80/20 pour diviser une portée DHCP, ce qui signifie qu'un serveur servira 80 % des adresses de cette portée et que l'autre serveur DHCP, qui est effectivement "en réserve", servira 20 % des adresses.
L'idée derrière la division des adresses 80/20 est que 80 % des adresses disponibles devraient être suffisantes pour toutes les adresses nécessaires sur un sous-réseau, et les baux DHCP sont généralement émis pour plusieurs jours ; ainsi, si votre serveur DHCP principal tombe en panne pendant quelques heures, il est peu probable que plus de 20 % des machines sur ce sous-réseau aient besoin de renouveler leurs adresses pendant cette période, ce qui rend le pool d'adresses de 20 % suffisant.
Ce conseil est encore raisonnable, mais il suppose deux choses :
- Que vous puissiez résoudre tout problème avec votre serveur DHCP "principal" assez rapidement pour éviter d'épuiser le petit pool d'adresses de votre serveur DHCP de réserve.
- Que vous n'êtes pas intéressé par l'équilibrage des charges.
Aujourd'hui (comme vous pouvez le voir dans mes exemples), j'ai tendance à préférer les partages 50/50, qui me semblent être une réponse plus réaliste aux points ci-dessus.
Une autre chose à considérer lors de la création de vos scopes sur les serveurs DHCP est de configurer le scope complet dans chaque serveur et d'exclure la gamme donnée par l'autre serveur DHCP. Cela présente l'avantage d'"auto-documenter" les informations DHCP pour le sous-réseau complet sur chaque serveur DHCP, ce qui améliorera la clarté pour toute autre personne essayant de comprendre ce qui se passe, et aussi dans le cas où l'un de vos serveurs DHCP serait hors ligne pendant un certain temps, vous pouvez temporairement reconfigurer la plage d'exclusion sur l'autre serveur pour lui permettre de prendre le relais.
En combinant ces idées
Enfin, il est bon de rappeler que vous pouvez combiner les principes discutés ci-dessus - vous pouvez placer tous vos serveurs DHCP dans un ou plusieurs VLAN "serveur central" et utiliser des agents relais BOOTP sur tous vos routeurs pour envoyer toutes les requêtes DHCP d'un réseau très étendu et segmenté vers un service DHCP centralisé (c'est ce que je fais, voir ci-dessous). Vous pouvez également avoir des serveurs DHCP répartis sur l'ensemble de votre réseau, avec un serveur DHCP "principal" dans son sous-réseau local et un serveur DHCP "de réserve" sur un segment de réseau "proche" fournissant une petite quantité d'adresses de secours - vous pouvez même avoir deux serveurs DHCP dans leurs propres segments de réseau configurés pour fournir une gamme d'adresses 80/20 l'un pour l'autre. Le choix le plus judicieux dépendra de la manière dont vos réseaux physiques et logiques sont reliés entre eux.
1 votes
L'idée derrière cette question est de donner une réponse définitive à toutes les questions "Comment puis-je avoir plus d'un serveur DHCP" qui rendent fous nos utilisateurs les plus réguliers. Nous espérons que cette question deviendra l'une de nos réponses canoniques ( meta.serverfault.com/questions/1986/ )