La configuration du spanning tree
Le Spanning Tree Protocol représente un défi majeur dans la mise en œuvre de la redondance et de la haute disponibilité dans les réseaux. Alors que la redondance nécessite la duplication des connexions et des switches pour assurer une continuité de service, le STP dans son fonctionnement standard, tend à désactiver cette redondance. Ce comportement est intrinsèque à son objectif principal : prévenir les boucles de réseau. STP réalise cela en désactivant certains liens redondants, ce qui peut sembler contre-intuitif lorsqu’on cherche à maximiser la disponibilité du réseau.
Le protocole de base, PVST, peut introduire des perturbations notables dans le réseau, particulièrement lors du calcul du spanning tree. Ces perturbations se manifestent par la désactivation temporaire de certains ports indispensables, pouvant durer plus d’une minute, une éternité dans un environnement où la disponibilité et la rapidité de réponse sont critiques. La question se pose alors : comment maintenir un haut niveau de disponibilité tout en intégrant ou en retirant des switches dans le réseau, sans provoquer de perturbation majeure ?
La solution réside dans une configuration avancée du Spanning Tree. Cette approche nécessite une compréhension approfondie de la dynamique du protocole et de ses variantes, tel que Rapid-PVST, qui offre des temps de convergence plus rapides et une meilleure adaptabilité aux réseaux complexes. En ajustant finement les paramètres de STP, tels que les priorités de la racine et les coûts de port, il est possible de minimiser les perturbations lors des changements topologiques et de maintenir une redondance efficace, alignée sur les objectifs de haute disponibilité.
Définir la racine
Lors de la mise en place du STP, un élément clé est la sélection de la racine du spanning tree. Laisser le réseau choisir automatiquement cette racine peut mener à des configurations suboptimales, affectant négativement la haute disponibilité. Habituellement, le switch avec l’adresse MAC la plus basse est élu comme racine. Cependant, cette méthode automatique ne prend pas en compte la topologie réelle du réseau ni les besoins spécifiques en termes de performance et de fiabilité.
Une racine mal positionnée dans le réseau peut entraîner des chemins de données inefficaces, augmentant la latence et potentiellement surchargeant certains liens ou équipements. Cela peut compromettre la résilience du réseau, car en cas de défaillance d’un lien ou d’un switch, les chemins de secours pourraient ne pas être les plus optimaux, prolongeant ainsi les temps de récupération.
Pour assurer une haute disponibilité, il est important de choisir délibérément la racine du spanning tree. Idéalement, ce choix devrait se porter sur un switch situé au centre du réseau ou au plus proche du routeur principal, afin de minimiser la distance et le nombre de sauts entre la racine et les autres équipements du réseau. Cette position stratégique permet d’optimiser la distribution des chemins dans le réseau, réduisant ainsi la latence, équilibrant la charge sur les différents équipements et minimisant le risque de goulets d’étranglement.
Cisco, dans son implémentation du STP, intègre une fonctionnalité pour renforcer la résilience et la haute disponibilité du réseau : la possibilité de définir une racine primaire et une racine secondaire. Cette approche permet d’anticiper la défaillance potentielle de la racine principale en ayant un switch de secours prédéfini, prêt à prendre le relais en tant que racine du STP. La désignation d’une racine secondaire offre une couche supplémentaire de sécurité, garantissant que, même en cas de défaillance du switch racine primaire, le réseau peut continuer à fonctionner avec un minimum de perturbation.
Pour définir la racine:
Switch(config)# spanning-tree vlan [vlan_id] root [primary|secondary]
Pour utiliser cette commande :
- Entrez dans le menu de configuration général
- Tapez la commande
spanning-tree vlan [vlan_id] root [primary|secondary]
oùvlan_id
correspond au numéro de vlan correspond au spanning-tree, et en choisissantprimary
ousecondary
.
Exemple d’utilisation :
Switch(config)# spanning-tree vlan 1 root primary
Manipuler le coût
Le coût d’un port dans STP est une valeur numérique qui représente la qualité de la liaison réseau sur ce port. Le coût de port est déterminé en fonction de la bande passante de la liaison. En général, une bande passante plus élevée se traduit par un coût de port plus faible. L’idée est de favoriser les chemins à plus grande bande passante pour la transmission des données, ce qui conduit à une utilisation plus efficace du réseau.
La configuration des coûts de port permet aux administrateurs réseau de manipuler le processus de sélection du chemin dans STP. En ajustant ces coûts, on peut influencer quelles liaisons seront utilisées activement et lesquelles seront désactivées pour éviter les boucles. Cette flexibilité est importante dans les réseaux complexes où les exigences de redondance et de performance nécessitent une gestion fine de la topologie.
Il est important de noter que la modification des coûts de port doit être effectuée avec précaution. Une configuration inappropriée peut conduire à des chemins suboptimaux ou même réintroduire des boucles dans le réseau. Les administrateurs doivent donc avoir une compréhension claire de la topologie du réseau et des implications de ces ajustements pour assurer une configuration optimale du STP.
Il est recommandé d’augmenter le coût des connexions que l’on ne souhaite pas voir utiliser par le STP pour diriger le trafic vers la racine. Cette augmentation du coût réduit la probabilité qu’un port spécifique soit choisi comme partie du chemin préféré vers le bridge racine, favorisant ainsi d’autres liaisons avec des coûts plus faibles. Cette méthode de configuration offre aux administrateurs réseau un contrôle précis sur la topologie du spanning tree, leur permettant de guider le trafic à travers des liaisons plus appropriées pour la performance et la fiabilité du réseau.
Le STP utilise des coûts de port basés sur des normes établies pour déterminer le chemin préféré dans un réseau. Initialement, la norme IEEE 802.1D définissait une échelle de coûts basée sur les vitesses de connexion disponibles à l’époque. Cependant, avec l’avènement des vitesses de réseau supérieures au Gigabit, cette norme originale s’est révélée inadéquate. Les connexions de plus de 1 Gbps n’étaient pas correctement prises en compte, ce qui pouvait entraîner des choix de chemin suboptimaux dans le calcul du Spanning Tree.
Pour résoudre ce problème, une nouvelle norme a été introduite: 802.1T, modifiant l’échelle des coûts pour s’adapter aux vitesses plus élevées de réseau. Cette mise à jour permet une meilleure distinction entre les différentes vitesses de liaison, garantissant que les chemins à plus grande bande passante sont privilégiés, conformément aux objectifs de performance et de redondance du réseau.
Ancienne échelle (PVST)
Vitesse | Coût |
---|---|
100 Mbps | 19 |
1 Gbps | 4 |
2 Gbps | 3 |
10 Gbps | 2 |
20 Gbps | 1 |
40 Gbps | 1 |
100 Gbps | 1 |
Nouvelle échelle (RSTP)
Vitesse | Coût |
---|---|
100 Mbps | 200 000 |
1 Gbps | 20 000 |
2 Gbps | 10 000 |
10 Gbps | 2 000 |
20 Gbps | 1 000 |
40 Gbps | 500 |
100 Gbps | 200 |
Cependant, il est important de reconnaître que cette solution peut ne pas être pérenne. Avec l’évolution continue des technologies réseau et l’augmentation des vitesses de connexion, notamment vers le Tbps, les limites de l’échelle de coûts actuelle pourraient de nouveau se manifester. Cela souligne la nécessité d’une réévaluation continue et d’une adaptation des normes de STP pour accompagner l’évolution des capacités réseau et garantir une gestion optimale de la redondance et de la performance.
Pour définir le coût d’une liaison
Switch(config-if)# spanning-tree vlan [vlan_id] cost [cost]
Pour utiliser cette commande :
- Entrez dans la configuration d’une interface réseau
- Tapez
spanning-tree vlan [vlan_id] cost [cost]
oùvlan_id
correspond au numéro de vlan correspond au spanning-tree, et en remplaçantcost
par le coût souhaité.
Exemple d’utilisation :
Switch(config)# interface range fastEthernet 0/0-23
Switch(config-if)# spanning-tree vlan 1 cost 1000
Switch(config-if)# interface fastEthernet 0/1
Switch(config-if)# spanning-tree vlan 1 cost 19
Choisir un protocole plus rapide
L’adoption de protocoles de spanning tree alternatifs est une stratégie déterminante pour naviguer vers la haute disponibilité dans les réseaux. Bien que PVST soit le protocole par défaut sur de nombreux équipements, ses limitations en termes de rapidité de convergence poussent à envisager d’autres options, notamment Rapid-PVST et MST, pour optimiser la résilience.
Rapid-PVST est une version améliorée de PVST qui offre des avantages significatifs, particulièrement en termes de temps de convergence et de gestion des liens alternatifs. Contrairement à PVST, Rapid-PVST permet l’utilisation immédiate de liens alternatifs sans interruption de service ni risque de boucles lors du recalcul du STP. Cette fonctionnalité est très importante pour maintenir une connectivité continue et réduire les temps d’arrêt en cas de changement de topologie réseau. La convergence accélérée de Rapid-PVST est un avantage majeur, permettant une reprise rapide, ce qui est très utile pour les réseaux nécessitant une haute disponibilité.
MST, quant à lui, représente une avancée supplémentaire, offrant une gestion du Spanning Tree plus efficiente sur de multiples VLANs. Contrairement à PVST, qui nécessite un calcul de STP distinct pour chaque VLAN, MST permet de regrouper plusieurs VLANs et de calculer un STP unique pour l’ensemble. Cette approche réduit la complexité et améliore la performance globale du réseau, surtout dans des environnements avec un grand nombre de VLANs. En simplifiant la gestion du STP et en optimisant les ressources, MST contribue à une meilleure stabilité et à une haute disponibilité, alignées sur les besoins modernes des réseaux d’entreprise.
Pour choisir le mode de STP:
Switch(config)# spanning-tree mode [pvst|rapid-pvst|mst]
Pour utiliser cette commande :
- Entrez dans la configuration d’une interface réseau
- Tapez
spanning-tree mode [pvst|rapid-pvst|mst]
et choisissez entrepvst
,rapid-pvst
ou encoremst
.
Exemple d’utilisation :
Switch(config)# spanning-tree mode rapid-pvst
Éviter les changements inutiles
Dans les environnements de datacenter, notamment ceux impliquant des services de co-location ou de location de serveurs dédiés, la sécurité et la stabilité du réseau sont primordiales. Ces configurations partagées introduisent une complexité supplémentaire en matière de gestion du réseau, car elles impliquent l’interaction avec du matériel et des systèmes qui ne sont pas sous le contrôle direct de l’administrateur réseau. Dans ce contexte, il est important d’implémenter des mesures de sécurité pour empêcher que les équipements externes impactent négativement l’infrastructure de réseau.
Une préoccupation majeure est d’éviter que des équipements non autorisés se comportent comme des switches et influencent ou perturbent la topologie de Spanning Tree de l’infrastructure existante. Cela peut conduire à des changements inopportuns dans la racine du spanning tree, provoquant des réorganisations topologiques indésirables et des interruptions de service. Pour contrecarrer ce risque, certaines commandes de sécurité spécifiques doivent être mises en place sur les switches.
Ces commandes permettent d’activer des fonctions de protection comme le BPDU Guard et le Root Guard. Ces mécanismes assurent que les ports sur lesquels ils sont activés ne permettront pas à des équipements inconnus ou non autorisés de perturber la topologie du Spanning Tree.
- Le BPDU Guard désactive les ports qui reçoivent des mises à jour STP inattendues, empêchant ainsi les équipements non autorisés de participer à la topologie STP.
- Le Root Guard empêche les équipements connectés sur les ports protégés de devenir la racine du Spanning Tree, préservant de cette façon la structure prévue de la topologie du réseau.
Ces précautions aident à maintenir l’intégrité du réseau, et donc la haute disponibilité de l’infrastructure réseau dans un environnement de datacenter partagé.
Pour configurer la sécurité du STP :
Switch(config-if)# spanning-tree bpduguard enable
Switch(config-if)# spanning-tree guard root
Pour utiliser cette commande :
- Entrez dans la configuration d’une interface réseau
- Tapez
spanning-tree bpduguard enable
pour éviter de recevoir des mises à jour sur l'interface et/ou tapezspanning-tree guard root
pour empêcher qu'un équipement connecté sur l'interface soit élu racine.
Exemple d’utilisation :
Switch(config)# interface range fastEthernet 0/0-23
Switch(config-if)# spanning-tree bpduguard enable
Switch(config-if)# spanning-tree guard root