Pourquoi faut-il quelques secondes pour obtenir une adresse IP via DHCP?

24

Par curiosité, pourquoi faut-il souvent des secondes pour obtenir une configuration réseau via DHCP lorsque le CPU est capable de traiter des millions d'opérations par seconde et que le ping vers le routeur prend quelques millisecondes?

Dans mon environnement domestique avec un routeur WiFi et environ 5 appareils, il n'est pas rare de voir des temps comme 5-10 secondes.

Borek Bernard
la source

Réponses:

22

En plus de l'acquisition réelle du bail DHCP à partir du serveur DHCP (ce qui ne prend généralement pas très longtemps), certains serveurs cingleront d'abord l'adresse IP qu'elle est sur le point de distribuer avant de la distribuer pour vérifier qu'elle n'est pas déjà en cours d'utilisation sur le réseau - cela prend quelques secondes pour expirer. Le client fera parfois la même chose (encore une fois, pour éviter les conflits d'adresse IP), ce qui ajoutera un peu plus de temps. Ensuite, en plus de cela, certains clients enregistreront également leurs entrées DNS, etc.

Dan
la source
3
Le serveur DHCP de mon travail utilise des requêtes ARP pour détecter les conflits IP.
erichui
9

DHCP peut prendre un peu plus de temps car il implique une série de transactions, non pas avec un seul serveur mais avec tous les périphériques du réseau lors de la demande initiale, car il envoie un message de diffusion.

Si vous vérifiez le RFC pour DHCP,

http://www.faqs.org/rfcs/rfc2131.html

vous pouvez voir clairement la série de négociations implique. Au début, le client envoie DHCPDISCOVER à tous les périphériques du réseau local, puis les serveurs exécutant le service dhcp renvoient le message DHCPOFFER. Le client peut également attendre d'obtenir des réponses de tous les serveurs DHCP disponibles avant d'en choisir un. Ensuite, il envoie un DHCPREQUEST avec un identifiant qui indique quel serveur il a choisi comme fournisseur ip. Enfin, il obtient DHCPACK avec tous les paramètres de configuration. Ceci n'est qu'un résumé de "3.1 Interaction client-serveur - attribution d'une adresse réseau" à partir du RFC.

D'après mon expérience, le dhcp prend beaucoup de temps, principalement dans un grand réseau local avec beaucoup de nœuds connectés. Dans un homenetwork avec juste un seul serveur DHCP (routeur WIFI par exemple) et un ou deux PCs, c'est assez rapide.

Daniel t.
la source
Dans mon réseau domestique avec un routeur WiFi et environ 5 appareils, cela prend environ 5 à 10 secondes, ce que je considère assez lent. Mais merci pour l'explication.
Borek Bernard
assurez-vous d'avoir un seul serveur DHCP. S'il ne s'agit que de 5 appareils, vous souhaiterez peut-être réserver des adresses IP à chaque appareil du serveur DHCP. Mais si vous êtes assez curieux, vous pouvez utiliser tcpdump pour regarder la négociation réelle et voir quelle est la cause du retard.
Daniel t.
Selon le serveur DHCP, cela peut prendre plusieurs secondes quelle que soit l'activité du réseau ou la vitesse du processeur. En effet, le serveur interroge d'abord le réseau pour voir si une adresse est en cours d'utilisation avant de la proposer à un client, et il doit attendre au moins un certain temps pour que les réponses arrivent. Ce délai fait partie du retard que vous remarquez et il existera même sur le réseau le plus silencieux.
ʇs atoɈ
2

J'ai trouvé deux raisons (et solutions) lorsque je voulais des réponses rapides de mon serveur DHCP.

1) Mon DHCP a fait un ping de l'adresse qu'il voulait allouer. Cela a ajouté un délai de 3 secondes. J'ai supprimé cela en changeant la configuration DHCP pour avoir un mappage de l'adresse MAC à l'adresse IP. Il s'agit essentiellement d'utiliser DHCP pour allouer une adresse statique. Cela a supprimé le délai de 3 secondes pour moi.

2) J'ai un réseau isolé, cependant, vous pouvez l'obtenir à certains moments. Une recherche DNS a été effectuée, ce qui pour moi a entraîné un retard de plusieurs secondes pour obtenir une adresse IP auprès de DHCP. Dans la configuration du serveur DHCP, il y avait des options pour notre domaine et nos serveurs DNS. Après avoir supprimé les options DNS et les modifications ci-dessus, j'ai reçu des réponses instantanées du serveur DHCP. (**)

Ces problèmes étaient ce que j'ai trouvé dans ma configuration. Votre kilométrage peut varier.

à votre santé

KG

(**) Si j'avais un sou pour chaque fois qu'une recherche DNS échouée provoquait un retard qui entraînait un effet de choc étrange qui me faisait me gratter la tête, j'aurais beaucoup de centimes.

LazyBrush
la source
1

Je ne sais pas quel paysage vous avez, mais dans le monde réel, vous obtenez l'adresse IP ... etc à partir d'un ancien serveur (le serveur DHCP est toujours celui avec le matériel le plus ancien :)) avec beaucoup de demandes, derrière un pare-feu , un ou plusieurs routeurs / commutateurs ... Latence, alimentation cpu ... et dans un monde Windows, la mise en œuvre DHCP n'est pas aussi efficace que nous le souhaiterions!.

C_Sense
la source
1
"dans un monde Windows, l'implémentation DHCP n'est pas aussi efficace que nous le souhaiterions!" Avez-vous des documents ou des sources pour sauvegarder ce que vous avez dit ici?
mfinni
Non, mais par exemple .... Linux fournit des options DHCP de basculement de manière très simple. Mis à part la fonctionnalité intégrée Active Directory dans Windows, il existe d'autres points à considérer comme des problèmes de sécurité potentiels.
C_Sense
2
Je pense que vous régurgitez l'hyperbole glanée d'années de lecture de trop de publications sur Internet. "Microsoft est mauvais." "Pourquoi?" "Parce que tout le monde le dit."
joeqwerty
Vous pouvez effectuer des étendues DHCP chevauchantes sur les serveurs DHCP Windows. Avec win2k8 R2, apparemment, il existe également une nouvelle option de basculement. Peut-être que Linux est meilleur que ça. Rien de tout cela n'a à voir avec "l'efficacité". Et à quels «problèmes de sécurité» dans DHCP DHCP faites-vous référence? Je vous ai demandé des sources, et au lieu de cela vous jetez plus de revendications.
mfinni
0

Si vous rencontrez des problèmes de performances avec dhcp;

  1. Vérifier la latence du réseau
  2. Regardez la négociation dhcp de cap de paquet. Vous devriez être en mesure de voir quelle action prend longtemps. (le problème peut ne pas être avec le serveur DHCP, qui attend qui?)
  3. Examinez la charge et les journaux du serveur DHCP.
Un bleu
la source
C'est un scénario de réseau domestique, j'ai mis à jour la question.
Borek Bernard
ಠ_ಠ YU NO ASK SUPERUSER ALORS?
Ablue
Peut-être parce que c'est lié au réseautage et voici le meilleur endroit pour cela?
Kedare