Upload
nguyenlien
View
229
Download
0
Embed Size (px)
Citation preview
0
Les ponts et commutateurs:
Apprentissage et
suppression de boucles (algorithme du Spanning Tree)
Alain AUBERT
1
Les ponts:
précurseur des switch
2
Les fonctions d'un pont
• Pont: équipement de couche 2
• Pont relie des segments réseaux (domaines de collision séparés) entre eux:
• Exemple: pont à 2 ports (pont 1)
1 segment= 1domaine de collision
1 Hub
3
• Fonction correspondant à celle de la couche réseau, mais n’utilisent pas de données propre à cette couche, mais celle de la couche MAC (adresses universelles).
• Leur fonction principale est de transmettre ou non (fonction de filtrage) des trames sans modification de leur contenu LLC et de leur adresses universelles.
• Ils ont deux utilités:
— augmentation de la bande passante de chaque segment en limitant les paquets transmis sur segment.
— augmentation quasi indéfinie de la taille d’un réseau local sans problème de couche MAC (collision...). Pour cela les ponts stockent et réémettent les paquets en ne tenant compte des contraintes MAC que sur chaque segment.
Les fonctions d'un pont
4
Le pont de base
• C’est un pont reliant deux ou plusieurs segments distincts. Chaque
segment est relié a un port du pont.
• Fonction de stockage (éviter les collisions d’un segment vers
l’autre) mais pas de fonction de filtrage
• Le stockage temporaire permet de lever les contraintes de longueur,
mais il n’y a pas d’augmentation possible du trafic global. Segment S1 Segment S2
5
Segment S1
Segment S2
t
t
M1 M2 M3
M1 M3 M2
Emission
M1 sur S1
Emission
M2 sur S1
Le pont réémet
M1 sur S2
M2 a été stocké par
le pont car M3
occupait S2, puis il
est réémis sur S2
Le pont de base
6
Les pont intelligents
• Ajout d’une fonction de filtrage des trames locales pourra permettre d’augmenter le trafic global.
• Le pont doit donc reconnaître les trames destinées à l’extérieur du segment émetteur.
• Comment fait-il ? mécanisme d'apprentissage
Segment S1 Segment S2
Fonction de filtrage
7
Ponts intelligents: mécanisme d'apprentissage
• Chaque pont possède une mémoire cache de stockage (mémoire remise à jour régulièrement). Cette mémoire contient une base de données constituées :
— des adresses universelles,
— du numéro du port de connexion correspondant,
— de la date de dernier accès.
• Cette mémoire cache est initialement vide.
• Le pont écoute en mode promiscuous (il écoute tout) les trames transmises.
• Pour une trame donnée, le pont enregistre son adresse source et le port de réception (s’ils ne sont pas déjà définis), il met à jour le champ correspondant au moment d’arrivée.
• Il recherche dans sa mémoire cache si l’adresse destination existe :
— si oui, il envoie la trame sur le port associé, ou la détruit si le port associé est le même que celui d’émission (trafic local). Ceci réalise la fonction de filtrage.
— si non, il envoie la trame sur tous les ports sauf sur celui de réception.
8
• M1 M2
• M2 M3
• M3 M1
• M3 M4
• M4 M3
• M1 M2
• M1 M5
• M5 M1
Ponts intelligents: mécanisme d'apprentissage
M1
B
M2 M3 M4
M5
P1 P2
P3
• P1 P2 et P3
• P1 P2 et P3
• P2 P1
• P2 P1 et P3
• P2 détruit
• P1 détruit
• P1 P2 et P3
• P3 P1
• M1 – Port 1
• M2 – Port 1
• M3 – Port 2
• Mise à jour date M3
• M4 – Port 2
• Mise à jour date M1
• Mise à jour date M1
• M5 – Port 3
Transmission trame
de … vers
Ports de réception et
d'émission
Contenu mémoire
cache du pont
9
Les commutateurs ou
switch
10
Caractéristiques d'un switch
• Un switch est un pont intelligent multiports
• Utilisés dans les réseaux dits Ethernet commuté ou
Switch Ethernet
• Il permet de commuter la trame envoyée sur le bon
port de destination si la table de commutation (ou
table MAC) est renseignée
• Le temps de commutation est fixe
11
Caractéristiques d'un switch
• 2 modes de fonctionnement
— « à la volée » (Cut through): sans attendre la vérification du
CRC , le switch commute la trame sur le bon port de destination
– Ne permet pas de vérifier la validité des trames et peut
provoquer la commutation de trames erronées qui seront
transmises au destinataire
— Store and forward: mémorise les trames et vérifie le CRC avant
de les commuter
– Temps de transfert plus long et proportionnel à la longueur
de la trame
– La diminution du rapport coût/performance
12
Mécanisme d’apprentissage construction de la table de commutation
@MAC Port
Table de
commutation
(ou table MAC)
13
Mécanisme de commutation de trames
@MAC Port
Table de
commutation
14
Suppression de boucles Algorithme du Spanning Tree
15
Introduction
• Le protocole Spanning Tree (STP) est un protocole de
couche 2 (liaison de données) conçu pour les
commutateurs et les ponts.
• La spécification de STP est définie dans le document
IEEE 802.1d. Sa principale fonction est de s'assurer qu'il
n'y a pas de boucles dans un contexte de liaisons
redondantes entre des matériels de couche 2.
• STP détecte et désactive des boucles de réseau.
• Il permet de faire en sorte que des matériels compatibles
avec le standard ne fournissent qu'un seul chemin entre
deux stations d'extrémité.
Topologie physique avec boucles Topologie logique sans boucles
sous forme d’un arbre
STP
16
Problématique
• Ajout d'un pont redondant pour la fiabilité
• Sans STP (Spanning Tree) trois problèmes peuvent survenir :
— 1. Des tempêtes de broadcast
— 2. Une instabilité des tables MAC
— 3. Transmission de trames multiples
17
Problématique
• Des tempêtes de broadcast :
— Lorsque des trames de broadcast sont envoyées (FF-FF-FF-FF-FF-FF
en destination), les switchs les renvoient par tous les ports. Les trames
circulent en boucles et sont multipliées.
— Les trames n'ayant pas de durée de vie (TTL comme les paquets IP),
elles peuvent tourner indéfiniment.
18
• Une instabilité des tables MAC :
— Quand une trame, même unicast, parvient aux switches connectés en
redondance, le port du switch associé à l'origine risque d'être erroné. Une
boucle est susceptible d'être créée.
— PC1 envoie une trame au PC2. Les deux commutateurs reçoivent la trame sur
leur port 0/2 et associent ce port à l'adresse mac de PC1. Si l'adresse de PC2
est inconnue, les deux commutateurs transfèrent la trame à travers leur port
0/1. Les commutateurs reçoivent respectivement ces trames inversement et
associent l'adresse MAC de PC1 au port 0/1. Ce processus peut se répéter
indéfiniment.
Problématique
19
Problématique
• Transmission de trames multiples : dans un réseau commuté redondant, il est possible pour une unité d’extrémité de recevoir plusieurs trames.
— Supposez que l'adresse MAC du PC2 ait été supprimée par les deux commutateurs, à cause d'un dépassement du temps de rafraîchissement.
— Supposez également que le PC1 dispose encore de l’adresse MAC du PC2 dans sa mémoire cache ARP et envoie une trame unicast au PC2.
— Le PC2 reçoit la trame, car il figure sur le même segment que le PC1.
— Le commutateur SW1 ne dispose pas de l’adresse MAC du PC2 et diffuse donc la trame sur ses ports. Le commutateur SW2 ne connaît pas non plus le port du PC2. Il diffuse la trame qu’il a reçue et le PC2 reçoit donc plusieurs copies de la même trame. Cela est le résultat d’opérations inutiles sur toutes les unités.
20
Algorithme du Spanning Tree: exemple d'application
21
Identification des différents domaines de collisions
• Chaque Hub non cascadé forme un domaine de
collision.
• Les hubs cascadés forment un seul domaine de
collision.
• Il y a donc 4 domaines de collision.
• Noms :
— Hub1 segment 1 S1
— Hub2 et Hub3 segment 2 S2
— Hub4 segment 3 S3
— Hub5 et Hub6 segment 4 S4
22
Objectif de l’algorithme de Spanning Tree
0
0
10 10
10 10
10
10
10
10
Port racine
Port désigné
Port alternatif
1. Déterminer le pont racine
2. Déterminer les ports racines
3. Déterminer les ports désignés et alternatifs
Pont racine
23
Objectif de l’algorithme de Spanning Tree
0
0
10 10
10 10
10
10
10
10
Port racine
Port désigné
Port alternatif
1. Déterminer le pont racine
2. Déterminer les ports racines
3. Déterminer les ports désignés et alternatifs
Pont racine
24
Le protocole 802.1d: Arbre de recouvrement (Spanning Tree)
• Pour cela, sur chaque pont est implanté le protocole spanning tree
(SPT) normalisé par l'IEEE sous la norme 802.1d.
• Le protocole Spanning Tree (STP) est un protocole de couche 2
(liaison de données) conçu pour les commutateurs et les ponts.
• Le protocole spanning tree doit supprimer les chemins redondants
en construisant un arbre à partir d'un graphe cyclique. Ce protocole
doit être implanté sur chaque pont.
• Pour le mettre en œuvre, les ponts vont s'échanger des trames
BPDU (Bridge Protocol Data Unit) de 34 octets. Ces trames
sont adressées en multicast, seuls les ponts les liront.
Topologie physique avec boucles Topologie logique sans boucles
sous forme d’un arbre
STP
25
Messages du protocole 802.1d: BPDU
• Les ponts vont s’envoyer mutuellement des messages entre eux
• Le protocole 802.1d utilise des messages (trames BPDU) contenant l'information suivante:
— Root ID (R): identification actuelle du pont racine
— Cost (C) : Coût du lien de plus faible coût entre le pont qui transmet le message et la racine
— Transmitting ID (T): identification du pont qui transmet le message
• Ces messages sont envoyés en multicast [adresse : all bridges]
26
Interprétation de deux messages 802.1d
• M1[R=R1,C=C1, T=T1] est meilleur que M2[R=R2,C=C2, T=T2]
si
— R1<R2
— R1=R2 et C1<C2
— R1=R2 et C1=C2 et T1<T2
27
Objectif de l’algorithme de Spanning Tree
0
0
10 10
10 10
10
10
10
10
1. Déterminer le pont racine 2. Déterminer les ports racines
3. Déterminer les ports désignés et alternatifs
Pont racine
28
Fonctionnement du protocole: 1. Détermination du pont racine
• Au démarrage, chaque pont se considère comme la racine et
transmet un message 802.1d avec un coût de 0 sur tous ses ports
R=P1, C=0, T=P1]
R=P1, C=0, T=P1]
R=P3, C=0, T=P3] R=P2, C=0, T=P2]
R=P2, C=0, T=P2]
R=P3, C=0, T=P3]
R=P5, C=0, T=P5]
R=P5, C=0, T=P5]
R=P4, C=0, T=P4]
R=P4, C=0, T=P4]
29
Fonctionnement du protocole: 1. Détermination du pont racine
• Si un pont reçoit sur un port un meilleur message 802.1d que celui qu'il transmettait, il arrête de transmettre le message 802.1.d qu'il transmettait
• Dans un réseau la racine est le pont avec le plus petit identificateur
• Chaque pont peut déterminer quelle est la racine en analysant tous les messages 802.1d reçus
30
• P1 n'a pas reçu de meilleur message sur un de ses ports que celui qu'il émettait. P1 continue à émettre son message 802.1d ([R:=P1, C=0, T=P1]).
P1 se considère comme le pont racine.
• P2 a reçu un meilleur message sur son port P2S2 ([R:=P1, C=0, T=P1]), il cesse d'émettre son message 802.1d ([R:=P2, C=0, T=P2])
P2 considère que P1 est le pont racine.
• P3 a reçu un meilleur message sur son port P3S2 ([R:=P1, C=0, T=P1]), il cesse d'émettre son message 802.1d ([R:=P3, C=0, T=P3])
P3 considère que P1 est le pont racine.
• P4 a reçu un meilleur message sur son port P4S1 ([R:=P1, C=0, T=P1]), il cesse d'émettre son message 802.1d ([R:=P4, C=0, T=P4]
P4 considère que P1 est le pont racine.
• P5 a reçu un meilleur message sur son port P5S3 ([R:=P2, C=0, T=P2]) il cesse d'émettre son message 802.1d ([R:=P5, C=0, T=P5])
P5 considère que P2 est le pont racine.
Fonctionnement du protocole: 1. Détermination du pont racine
31
Objectif de l’algorithme de Spanning Tree
0
0
10 10
10 10
10
10
10
10
Port racine
1. Déterminer le pont racine
2. Déterminer les ports racines 3. Déterminer les ports désignés et alternatifs
Pont racine
32
Fonctionnement du protocole: 2. Détermination des ports racines
• Le port racine d'un pont est le port qui se trouve topologiquement le plus
proche de la racine.
C’est le port qui a reçu le meilleur message 802.1d ( )
• P2 a reçu un meilleur message sur son port P2S2 ([R:=P1, C=0, T=P1])
• P3 a reçu un meilleur message sur son port P3S2 ([R:=P1, C=0, T=P1])
• P4 a reçu un meilleur message sur son port P4S1 ([R:=P1, C=0, T=P1])
• P5 a reçu un meilleur message sur son port P5S3 ([R:=P2, C=0, T=P2])
33
Objectif de l’algorithme de Spanning Tree
0
0
10 10
10 10
10
10
10
10
Port racine
Port désigné
Port alternatif
1. Déterminer le pont racine
2. Déterminer les ports racines
3. Déterminer les ports désignés et alternatifs
Pont racine
34
Fonctionnement du protocole: 3. Détermination des ports désignés et alternatifs
• Seul le pont P qui se considère comme le pont
racine transmet son message 802.1d [R:=P, C=0,
T=P]).
Dans notre cas, c’est P1
• Les autres ponts lisent le message 802.1d sur le port
racine et le retransmettent sur l'autre port en
modifiant
— le transmetteur (T)
— le coût (C= C reçu + coût du port racine du pont où le message
a été reçu)
35
Fonctionnement du protocole: 3. Détermination des ports désignés et alternatifs
• P1 transmet un nouveau message 802.1d sur S1 et S2
— M_P1S1(R=P1,C=0,T=P1)
— M_P1S2(R=P1,C=0,T=P1).
• Le pont 2 retransmet le message
— M_P2S3(R=P1,C=10,T=P2)
• Le pont 3 retransmet le message
— M_P3S3(R=P1,C=10,T=P3)
• Le pont 4 retransmet le message
— M_P4S4(R=P1,C=10,T=P4)
• Le pont 5 retransmet le message
— M_P5S4(R=P1,C=20,T=P5)
— A ce moment là, P5 considère que P1 est le pont racine
36
• Les ports du Pont Racine sont par définition désignés
• Lorsqu'un pont reçoit un meilleur message sur un port non
racine que celui qu'il transmet, il considère ce port comme
un port alternatif.
• Lorsqu'un pont ne reçoit pas un meilleur message sur un
port non racine que celui qu'il transmet, il considère ce port
comme un port désigné.
Fonctionnement du protocole: 3. Détermination des ports désignés et alternatifs
37
Fonctionnement du protocole: 3. Détermination des ports désignés et alternatifs
• Pont P2:
— P2 transmet sur P2S3 le M_P2S3(R=P1,C=10,T=P2)
— P2 reçoit sur P2S3 le M_P3S3(R=P1,C=10,T=P3)
— Donc P2 ne reçoit pas un meilleur message: il considère donc que son port P2S3 est un port désigné
• Pont P3:
— P3 transmet sur P3S3 le M_P3S3(R=P1,C=10,T=P3)
— P3 reçoit sur P3S3 le M_P2S3(R=P1,C=10,T=P2)
— Donc P3 reçoit un meilleur message: il considère donc que son port P3S3 est un port alternatif
• Pont P4:
— P4 transmet sur P4S4 le M_P4S4(R=P1,C=10,T=P4)
— P4 reçoit sur P4S4 le M_P5S4(R=P1,C=20,T=P5)
— Donc P4 ne reçoit pas un meilleur message: il considère donc que son port P4S4 est un port désigné
• Pont P5:
— P5 transmet sur P5S4 le M_P5S4(R=P1,C=20,T=P5)
— P5 reçoit sur P5S4 le M_P4S4(R=P1,C=10,T=P4)
— Donc P5 reçoit un meilleur message: il considère donc que son port P5S4 est un port alternatif
38
Récapitulatif: Rôles des ports
• Vis-à-vis des messages 802.1d
— Port racine (Root)
– port via lequel on reçoit les messages provenant de la racine
par le plus court chemin
– un port racine ne transmet pas de messages 802.1d mais les
lit
– un seul port racine par switch
— Port désigné (Desgn)
– port via lequel le pont retransmet les messages 802.1d reçus
de la racine
– message 802.1d transmis par un pont:
– racine actuelle, identification du pont, coût jusqu'à la racine
– un port est désigné si le message qu'il transmet est meilleur
que le meilleur message qu'il reçoit
— Port alternatif (Altn): reçoit uniquement les message. 802.1d
39
Cinq états de ports peuvent rencontrés sur un port STP. Chaque état comporte un délai:
• Etat « Blocking » (sur port alternatif)
— Rejette toutes les trames de données venant du segment attaché
— Rejette toutes les trames de données venant d'un autre port de transfert
— N'intègre aucune emplacement de station dans sa MAC table (il n'y pas d'apprentissage)
— Reçoit les BPDUs et les transmet à son système
— N'envoie pas de BPDUs reçus de son système
• Etat « Listening » (sur port racine ou désigné)
— Rejette toutes les trames de données venant du segment attaché
— Rejette toutes les trames de données venant d'un autre port de transfert
— N'intègre aucune emplacement de station dans sa MAC table (il n'y pas d'apprentissage)
— Reçoit les BPDUs et les transmet à son système (port racine)
— Envoie les BPDUs reçus de son système (port désigné)
—
Différents états STP d’un port
40
• Etat « Learning » (sur port racine ou désigné)
— Rejette toutes les trames de données venant du segment attaché
— Rejette toutes les trames de données venant d'un autre port de transfert
— Intègre les emplacements de station dans sa MAC table (apprentissage)
— Reçoit les BPDUs et les transmet à son système
— Envoie les BPDUs reçus de son système
• Etat « Forwarding » (sur port racine ou désigné)
— Commute toutes les trames de données venant du segment attaché
— Commute toutes les trames de données venant d'un autre port de
transfert
— Intègre les emplacements de station dans sa MAC table (apprentissage)
— Reçoit les BPDUs et les transmet à son système
— Envoie les BPDUs reçus de son système
• Etat « Disabled »
— Cet état est similaire à l'état « blocking » sauf que le port est considéré
physiquement non opérationnel (shut down ou problème physique).
Différents états STP d’un port
41
Changement d'états d’un port
— L'age maximal de 20 secondes par défaut est le temps maximal avec que STP effectue de nouveaux calculs quand une interface ne reçoit plus de BPDUs.
— Le temps de forwarding de 15 secondes par défaut est le temps de passage d'un état "listening" à "learning" et de "learning" à "forwarding". Aussi, la fréquence d'envoi de BPDUs Hello est de 2 secondes par défaut.
42
Algorithme du Spanning Tree
sur les switch CISCO
43
ID d’un switch
• Le switch racine sera le point central de l'arbre STP.
• Le switch qui aura l'ID la plus faible sera celui qui sera élu racine.
• L'ID du switch comporte deux parties, d'une part, la priorité (2 octets) et, d'autre part, l'adresse MAC (6 octets). La priorité 802.1d est d'une valeur de 32768 par défaut (ce sont des multiples de 4096 sur 16 bits). Par exemple, un switch avec une priorité par défaut de32768 (8000 Hex) et une adresse MAC 00 :A0 :C5:12:34:56, prendra l'ID 8000:00A0 :C512:3456.
• On peut changer la priorité d'un switch avec la commande : (config)#spanning-tree [vlan vlan-id] priority priority
• Sur un switch racine, tous les ports sont des ports désignés, autrement dit, ils sont en état « forwarding », il envoient et reçoivent le trafic.
44
• La commande de configuration est :
(config-if)#spanning-tree cost cost
Coût des ports
45
Quelques commandes IOS CISCO
• Pour le diagnostic :
#show spanning-tree [?]
• Désactivation de STP :
(config)#no spanning-tree vlan vlan-id
• Priorité du switch :
(config)#spanning-tree [vlan vlan-id] priority priority
• Coût et priorité d'un port :
(config-if)#spanning-tree [vlan vlan-id] cost cost
• Paramètres de timing :
(config)#spanning-tree [vlan vlan-id] max-age seconds 6 à 200 secondes
(config)#spanning-tree [vlan vlan-id] forward-time seconds 4 à 200 secondes
(config)#spanning-tree [vlan vlan-id] hello-time seconds 1 à 10 secondes