Sorry, you need to enable JavaScript to visit this website.

Image CAPTCHA
Saisir les caractères affichés dans l'image.

Les boucles et les tempêtes : STP et comment s'en dispenser (6/10)

Les boucles et les tempêtes : STP et comment s'en dispenser (6/10)
2011-10-242013-02-11sériesfr
Le morceau de bravoure des réseaux de switches, c'est le Spanning Tree Protocol (STP) ou plutôt, les divers avatars de ce protocole. Il s'agit de régler un problème banal : comment construire un réseau de switches redondant et qui fonctionne...
Publié le 24 Octobre 2011 par Pascal Bonnard dans séries
storm

Le morceau de bravoure des réseaux de switches, c’est le Spanning Tree Protocol (STP) ou plutôt, les divers avatars de ce protocole. Il s’agit de régler un problème banal :

comment construire un réseau de switches redondant et qui fonctionne ?

En effet, si on tente de construire par exemple un triangle ou un carré de switches, on constate qu’il devient très rapidement inutilisable, parce qu’on crée ainsi une boucle de niveau 2, dans laquelle certaines trames tournent infiniment en consommant une bonne partie des ressources. Le réseau ne fonctionne plus. C’est ce qu’on appelle une tempête de diffusion.

Il est toujours possible qu’une boucle soit créée suite à un câblage intempestif (encore Gaston ! Il s’est mis à quatre pattes sous les bureaux et il a relié entre elles deux prises murales RJ45 par un câble croisé). Sur le terrain, la meilleure façon d’éviter les problèmes, c’est encore d’appliquer la bonne pratique déjà citée : empêcher que les PC puissent communiquer entre eux au niveau 2.

le STP à la rescousse... ou presque !

Mais cela ne permet pas de relier des switches pour former un carré. Pour que cela fonctionne, on a créé STP. Au sein du réseau de switches, STP établi et calcule dynamiquement un arbre en désactivant les liaisons redondantes. Si la forme du réseau change, l’arbre est recalculé, cela prend quelques secondes (mais pendant ce temps, le réseau ne marche pas bien).

STP fonctionne en échangeant des informations à l’aide de trames spéciales, les BPDUs. Tant que cela marche, c’est parfait. Mais au cas où quelque chose irait de travers, le réseau devient instable et il est très difficile de faire un diagnostic. Il est donc recommandé de documenter avec la plus grande précision l’état "normal" du réseau, en repérant l’état de chaque liaison, de façon à savoir où intervenir. Et il est nécessaire d’instaurer des procédures strictes de câblage.

Laissez-moi vous conter un fait réel : sur un site, suite à la demande insistante des utilisateurs, j’ai autorisé la mise en œuvre de STP. Eh bien, ce site est devenu indisponible pendant plus d’une heure suite à une erreur humaine (non, ce coup ci, ce n’était pas Gaston). Et on ne compte pas les réseaux qui se sont effondrés parce que quelqu’un avait branché un "vieux" switch de récupération. Ceux-ci ont de fortes chances de devenir la racine de l’arbre calculé par STP.

le STP : les choses à retenir

Première leçon : le STP ne résiste pas aux erreurs humaines.
Deuxième leçon : la maintenance de STP demande une connaissance précise du réseau.
Ce que j'en ai retenu: heu ... je préfère éviter

du côté des menaces...

Maintenant, du point de vue des nuisances volontaires, STP offre de nombreuses possibilités. En premier lieu, un sniffer permet d’apprendre beaucoup de choses comme les VLANs utilisés, et l’adresse mac du switch « root ». On peut très facilement perturber le protocole, avec des BPDU créées de toutes pièce.

Les effets vont du banal déni de service (l’attaquant fait en sorte de se faire perpétuellement élire en tant que racine de l’arbre) à des effets plus subtils, comme le détournement du trafic à des fins d’observation ou de substitution.

conclusion : ne pas utiliser STP

Pour ma part, je recommande d’utiliser des mécanismes beaucoup plus simples. Par exemple, chez CISCO, le « Flex Links » qui repose sur une décision locale du switch (il réagit typiquement en 800ms) ou le « Resilient Ethernet Protocol », un peu plus complexe, qui gère les topologies en anneaux.

Si l'on doit absolument utiliser STP, il faut en limiter l’usage au strict nécessaire, mais cela demande une configuration soigneuse. 
De nombreuses personnes pensent que STP "empêche les boucles". C'est loin d'être le cas. Il faut observer deux choses : d'une part, une boucle, ce n'est pas si fréquent, et d'autre part, ce qui est génant, ce ne sont pas les boucles, mais les tempêtes de diffusion.

Ma recommandation est de mettre en place une limitation de la bande passante BUM (Broadcast, Unknown unicast et Multicast) de façon à limiter l’intensité d’une éventuelle tempête de diffusion ou d'une éventuelle attaque basée sur des trames broadcast, saturation de la table des adresses mac, etc.

Vos remarques, questions et autres interventions sont les bienvenues.

Pascal Bonnard

les autres articles de la série "Ethernet" :

Ethernet, un niveau à ne pas négliger
Les attaques « classiques » : interception de trafic, dénis de service
A éliminer d’urgence : DTP
Les VLANs pour les Nuls : je configure les VLANs de mes trunks bien propres
Les VLANs pour les Nuls : VTP / MRP
Les boucles et les tempêtes : STP et comment s’en dispenser
L’art d’en dire trop : CDP et LLDP
Incroyable, mais vrai : CTP loopback
A utiliser sans (trop) d’ illusions : LAG (PaGP, LACP)
Conclusion, la configuration ultime pour mes switches

crédit image: © Tasosk - Fotolia.com

14 Commentaires

  • 21 Mai 2012
    2012-05-21
    par
    Pascal
    Bonjour, Alain,
    Sur les sites dont je m'occupe, les "edge ports" raccordent des équipements qui ne sont jamais des switches (serveurs, pC, imprimantes, routeurs ...). Ces équipements ne gèrent pas STP, ou, si ils le gèrent, on le désactive.
    En fait, je n'ai jamais vu de tempête initialisée par un "edge port"... Mais tout peut arriver, bien sûr.
    Alors, le mieux, c'est de configurer le "storm-control" sur les TOUTES les interfaces. C'est très facile à faire, ça consomme très peu de ressources, et ça peut éviter de batailler en pleine nuit pour stopper une incompréhensible tempête.
    Le problème de fond avec STP, c'est que pour marcher, il a besoin de puissance de calcul CPU. Et que, pas de chance, la CPU s'effondre en cas de tempête. En plus,il n'y a pas de procédure simple pour arrêter une tempête.
    Ensuite, STP est loin d'être intuitif, surtout si on utilise divers rafinements inventés par les uns ou par les autres.

    Pour éviter d'être réveillé en pleinr nuit, rien ne vaut
    STORM-CONTROL
    Avec storm-control, je dors tranquille, je ne suis pas dérangé en plein WE.
  • 18 Mai 2012
    2012-05-21
    par
    Bonjour Monsieur,

    les Flex-Links doivent seulement être
    configurés sur les uplinks, mais pour pour les edge ports on doit
    toujours mettre en place STP. J'ai eu à resoudre des tempêtes, ca fait
    partie de mon quotidien. Des fois, c'est à cause de l'absence de STP par
    défaut avec certains constructeurs.

    STP, c'est vraiment pas facile à comprendre dans un environnement hétérogène

    Amicalement,
    Alain
  • 18 Mai 2012
    2012-05-21
    par
    Pascal
    Cher Alain,
    Les spécialistes peuvent rire, tant qu'il n'ont pas une tempête sur leur réseau.
    Même avec STP "bien" configuré (et c'est assez rare de voir cela), il peut y avoir des tempêtes. Et quand il y a une tempête, c'est bien difficile de l'arrêter.
    Je dis que STP détecte gère les topologies redondantes, mais qu'il ne nous protège pas des tempêtes.
    C'est pourquoi je préfère faire des redondance en triangle, gérées par Flex-Links, qui réagit en moins d'une seconde, et consomme très peu de CPU.
    Et pour les tempêtes, j'utilise le storm-control.
    Il est clair que STP ne peut en aucun cas atteindre ces performances.
    Je ne sais pas si je suis un spécialiste, ce que je sais, c'est que je suis responsable de l'ingéniérie de plusieurs centaines de switches, et ce depuis quelques années.
  • 18 Mai 2012
    2012-05-21
    par
    Bonjour,

    S'il vous plaît  ne dites pas qu'il faut désactiver STP, ca va faire rire les spécialiste en réseautique, puisque il faut d'abord bien comprendre ce protocole avant de avant de conclure. BPDU filter, guard, porfast, root guard... sont des choses primordiale à  connaître, avant de parler de  la configuration de STP. Configurer un réseau demande des connaissances. 
  • 29 Mars 2012
    2012-05-21
    par
    Pascal
    Toutes les interfaces sont éligibles.
    On peut même mixer un fast Ethernet avec un Gigabit Ethernet,
    Ceci écrit, je crains que nous sortions du but de ce blog.
    Il est dédié à la sécurité, et non pas à la configuration sur catalyst.
    un petit coup de moteur de recherche (avec traduction) permet d'obtenir ces informations.

Pages

Ajouter un commentaire

comments

  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <br>

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Email HTML

  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
Image CAPTCHA
Saisir les caractères affichés dans l'image.
Changer d'affichage