Imaginez que nous ayons un réseau comme sur la photo. Six hôtes sur un réseau de couche 2, pas de VLAN. Le réseau est censé être segmenté en deux sous-réseaux, avec un serveur DHCP chacun. Les serveurs DHCP ont des adresses IP fixes, ils savent donc à quel sous-réseau ils appartiennent, évidemment.
Ensuite, de nouveaux clients sont branchés. Ils ne savent rien du sous-réseau dans lequel ils sont censés se trouver et envoient leur DHCPDISCOVER à la diffusion Ethernet 255.255.255.255, donc il va aux deux serveurs DHCP. Les deux serveurs répondent avec une offre. Maintenant, voici ma question: comment le client sait-il quel DHCPOFFER il est censé accepter?
networking
dhcp
Michael Niemand
la source
la source
Réponses:
Réponse la plus simple - premier arrivé, premier servi.
Si vous aviez plusieurs VLAN et que 10.10.10.0/24 était sur un VLAN différent de 10.10.20.0/24 - la diffusion ne traverserait pas de VLAN.
Si le serveur DHCP se trouvait sur un VLAN distinct pour les clients, un iphelper sur l'interface de routage entre les vlans dirigerait la diffusion vers l'emplacement correct.
Dans votre scénario où vous avez 2 réseaux distincts dans le même VLAN (ou son absence) desservant différents sous-réseaux - c'est une course.
DHCP sert en utilisant les transactions suivantes:
Tout cela se produit sur les ports UDP 67 pour le serveur et 68 pour le client.
Dès que l'étape 2 est atteinte - le client cessera «d'écouter» les réponses des autres serveurs DHCP - il est heureux de traiter avec le premier serveur pour lui accorder une certaine attention.
En remarque - il existe en fait une série bien connue d'attaques DoS (Denial of Service) qui abusent de ce droit. Un attaquant branche un appareil qui répond et envoie des paquets DHCPOFFER, puis n'envoie pas DHCPACK lorsqu'il lui est demandé ... maintes et maintes fois. Il existe également une autre attaque DoS où les "faux" serveurs DHCP proposent des adresses qui ne peuvent pas être acheminées ou qui entrent en conflit avec d'autres adresses IP, elles sont détectées pour perturber les réseaux.
la source
La réponse existante de @ Fazer87 est globalement correcte dans la pratique et je recommande de voter en amont et de l'accepter. Cette réponse explore un détail mineur un peu plus précisément.
Les deux serveurs DHCP peuvent répondre avec un message DHCPOffer.
Un client DHCP peut les accepter sur la base du "premier arrivé, premier servi". Cependant, il n'est pas nécessaire d'adopter cette approche.
La RFC2131 spécifie:
Donc, si le deuxième serveur DHCP offrait une réservation d'adresse IP plus longue, ou offrait un serveur de temps où l'autre ne le faisait pas, ou avait peut-être un champ personnalisé que le client avait été programmé pour préférer, il pourrait accepter la deuxième offre.
En règle générale, une approche «premier arrivé, premier servi» vous permettra d'obtenir l'offre qui n'a pas été soumise à plusieurs sauts sur différents appareils (rediffusions BOOTP), c'est donc un bon protocole à suivre si vous n'avez aucune raison de vous en soucier.
J'étais sur un projet où un appareil personnalisé préférerait un DHCPOffer qui incluait un serveur TFTP où le firmware mis à jour pouvait être trouvé.
la source