Je dispose d’un stack de quatre switchs Netgear GS700TS reliés entre eux en boucle pour obtenir une certaine redondance en cas de perte d’un des switchs. Dans ces conditions le protocole Spanning Tree doit être activé afin de gérer les boucles et donc les chemins multiples entre deux points. Malheureusement cela a une conséquence importante sur la rapidité d’acquisition des informations de connexion du DHCP par un poste client, le délai avant obtention d’une IP étant de l’ordre de 35 s, ce qui est à la longue passablement énervant.
Pourquoi cette lenteur ? Lorsqu’un client se connecte sur un port du stack, une recherche de serveur DHCP est effectuée et normalement le délai avant obtention d’une IP est d’environ 4-5 s. Le problème ici est que le protocole Spanning Tree activé sur le switch commence par bloquer toute communication sur le port avant de vérifier qu’il n’y a pas de boucle derrière. cette vérification nécessite habituellement une poignée de secondes mais la demande de DHCP du client ayant été bloquée passe en timeout au bout d’une trentaine de secondes avant d’être renvoyée. A ce moment le switch a pu vérifier qu’il n’y avait pas de boucle derrière le port et laisse donc passer la demande, une réponse étant alors donnée sous 5 s, occasionant au total un délai d’environ 35s.
Pour remédier à cela il suffit d’aller dans l’interface de gestion du stack dans Switch > Advanced > Spanning Tree puis de cliquer sur un port. Il faut ensuite passer l’option Fast Link à Enabled et sélectionner All Ports of the Stack pour appliquer le réglage à l’ensemble du stack.
Cette option demande en fait au switch de ne pas bloquer les communications sur le port pendant qu’il vérifie la présence ou non de boucles (dans le cas où une boucle serait détectée le switch couperait alors la connexion), ne bloquant ainsi pas la première recherche de DHCP.