Gestion et Administration
des commutateurs Cisco
Les commutateurs en fonction de base travaillent (comme les
ponts) au niveau de la couche 2 de l’OSI (Open System Interconnexion) nommée
aussi Liaison de données. Le commutateur est le centre de la topologie étoile.
La couche 2 a pour unité de
transmission la trame.
A la différence du concentrateur, qui travaille au niveau de
la couche 1 de l’OSI (unité de transmission le bit), les commutateurs ou les
ponts ont la capacité d’analyser le trafic et ainsi de posséder une
connaissance des adresses MAC (Medium Access Control) et construire des tables.
a.Les particularités du commutateur
Le commutateur possède 3 particularités essentielles
Ø
la
capacité d’apprendre les adresses MAC des matériels attachés à ses ports.
Ø
La
capacité de diriger la trame vers le bon port si l’adresse MAC destinatrice est
référencée dans sa table.
Ø
La
capacité de détecter et d’éviter les bouclages ou redondances grâce au
protocole spanning-tree.
Grâce à ces particularités, le commutateur diminue de
manière importante l’utilisation de la bande passante par rapport à
l’utilisation d’une topologie bus ou étoile associée à un concentrateur (on
parle d’émulation de bus dans le cas de concentrateur).
En effet, leur capacité à « dresser » un état des
adresses MAC par port au sein d’une table d’adressage MAC (aussi appelé
« content-addressable memory : CAM ») leurs permet, via l’écoute
du trafic entrant de diriger les trames vers un port unique dans le cas ou
cette adresse est référencée dans la table. Si l’adresse MAC n’est pas connue,
il envoie la trame vers tous les ports hormis celui d’où provient la trame
(port entrant).
Là où le concentrateur inonde tous les ports, le commutateur
choisit au mieux le bon port. Ceci implique une diminution importante du
« bruit » sur le réseaux.
b. Les modes de transmission
Afin de transmettre les trames, le commutateur propose 3
modes implémentés selon les modèles de commutateurs.
Ø
Store&Forward
Une analyse poussée de la trame entrante est effectuée. La
trame est reçue en totalité avant d’être retransmise. Les adresses MAC
destinatrices et sources contenues dans l‘entête ethernet sont lues. Dans ce
cas, un contrôle de redondance est effectué et, si un filtrage est mis en
place, il est appliqué à la trame. La trame est transmise si les contrôles sont
bons.
Ce système implique un temps de latence dépendant de la
taille de la trame. En effet celle-ci est reçue en totalité avant son analyse
et son éventuelle transmission.
Ø
Cut-through
Seule l’adresse MAC destinatrice est lue dans l’entête
ethernet de la trame. Dès que cette adresse est récupérée, la transmission de a
trame se fait et ce même si celle-ci n’est pas encore reçue en totalité. Malgré
tout, dans certains modèles de commutateurs, une analyse identique au mode
store&forward peut être en plus activée. Par contre, si la trame est
erronée, elle sera tout de même envoyée. Il est malgré tout possible, dans le
cas où il y a trop d’erreurs, de basculer en mode store&forward
manuellement ou de manière automatique.
Dans ce cas le mode cut-through allie rapidité et gestion
des erreurs.
Ø
Fragment-free
Ce mode propose d’analyser seulement les 64 premiers octets
de la trame. Ce chiffre n’est bien sûr pas innocent, il représente la taille
minimum d’une trame ethernet. En effet, lors d’une collision, une « trame
de collision » est générée (appelée aussi fragment), sa taille est
inférieure à 64 octets. Ceci permet au commutateur de les détecter et
ainsi de les détruire, à contrario du mode cut-through.
Du fait de l’analyse un peu plus poussée, ce mode est plus
lent que le cut-through.
c. L’apprentissage des adresses MAC
Le fonctionnement du commutateur est basé sur sa capacité à
apprendre les adresses MAC des matériels connectés à ses ports.
Cet apprentissage permet la création et la mise à jour d’une
table contenant des couples adresses MAC-port.
Selon le type de commutateur, elle peut posséder 1024, 8192
(catalyst 2950) … entrées.
Au démarrage du commutateur, cette table est vide.
Comment se passent alors l’envoi des trames et
l’apprentissage des adresses ?
Lorsque le commutateur doit envoyer une trame et qu’il ne
possède pas dans sa tabme la correspondance adresse MAC-port, il est obligé
d’envoyer la trame sur tous les ports sauf le port entrant (d’où provient la
trame).
Au démarrage, c’est aussi ce qui se déroule. On parle alors
de « flooding ».
Prenons le cas d’un commutateur store&forward. Le
commutateur va mettre à jour, en mémoire, sa table de couples port/adresses Mac
à chaque passage d’une trame entrante. Il récupère l’adresse mac source (et non
l’adresse Mac destination) puis ajoute ou met à jour une entrée dans la table
(port entrant/adresse Mac source). Cette entrée n’est pas éternellement
présente dans la table. En effet , lors de changement de carte réseau, de port
de connexion sur le commutateur, de débranchement, d’arrêt de matériel … il
faut que la table soit mise à jour pour qu’elle prenne en compte ces
modifications.
Ceci est permis grâce à une durée maximale de présence dans
la table d’une de ces associations (port/adresse Mac).
Cette durée est appelée « time-age ».
Ø
Si un
matériel n’émet pas une trame avant que cette durée ne soit atteinte, l’entrée
est supprimée de la table.
Ø
Par
contre, si une émission a lieu avant le terme de cette durée, le
« time-age » est alors remis à zéro.
Le commutateur ne se souvient donc que des matériels les
plus actifs. Si un matériel est changé de port et qu’il émet, son entrée sera
alors mise à jour en prenant en compte le nouveau port d’attache de ce
matériel.
Le « time-age » est paramétrable. Par défaut il est de
5 minutes sur le 2950.
On retrouve ce « time-age » au niveau des tables
de routages des routeurs.
Remarque
Si la table est pleine, les communications vers des adresses
inconnues sont envoyées vers tous les ports du commutateur y compris le port
entrant.
Rappel
Lors de l’émission d’une trame, il y a commutation vers le
bon port si l’adresse Mac destinatrice est connue dans la table. Il y a en même
temps regénération de l’entrée associée à l’adresse Mac source dans cette
table.
Si a un port, plusieurs matériels sont reliés (via un
concentrateur, un commutateur …), la table génère une entrée par matériel
émetteur.
d. Commutation particulière
Ø
Si
dans votre topologie réseau, un concentrateur est connecté à un port d’un
commutateur et que deux matériels attachés au concentrateur communiquent entre
eux, le commutateur rejettera la trame en provenance du concentrateur. En
effet, le commutateur dans ce cas devrait envoyer la trame vers le port entrant
ce qui implique une redondance ou une erreur de chemin et par conséquent, une
destruction de la trame.
Ø
Les
trames de broadcast ou de multicast sont des cas à part.
Ces modes permettent de communiquer avec tous les matériels d’un
réseau.
Par conséquent, dans ces deux cas, le commutateur effectue
un « flooding ».
2. Le Spanning Tree
L’un des problèmes lors de ma définition d’une topologie
réseau est la redondance. C’est-à-dire, la possibilité pour une trame
d’atteindre le destinataire en empruntant plusieurs chemins. Cette possibilité
augmente la fiabilité du réseau en évitant la paralysie des transmissions en
cas de panne d’une des matériels d’interconnexion.
Par contre, cela peut entraîner des cascades de problèmes.
La mise en place du spanning tree permet de les éviter.
a. Les problèmes
Ø
La
tempête de broadcast
Une trame de broadcast est envoyée vers le commutateur A par le poste A.
Ce commutateur A renvoie alors la trame vers tous les ports
(sauf le port entrant) y compris en direction du commutateur B. Le commutateur
B va dupliquer et renvoyer la trame vers tous les ports (sauf entrant) et donc
vers le commutateur A et ainsi de suite. La trame va être dupliquée et ce
schéma de communication va recommencer en boucle.
Ø
Réception
multiple d’une trame
Dans le schéma qui suit, il est tout a fait possible que le
matériel B (Poste B) reçoive via le commutateur A ET le commutateur B la même
trame en provenance du poste A. Les matériels ne sont pas capables de gérer ce
type de communication d’où une perturbation importante des communications.
Ø
Instabilité
de la table des adresses Mac
Dans le cas où, la trame est dupliquée et transite du poste
A vers le commutateur A en passant par son port 0 et si dans le même temps,
cette trame est envoyée du commutateur B vers le commutateur A sur son port 1.
Alors, la table des adresses Mac du commutateur A va constamment se remettre à
jour en indiquant une fois sur 2 (lors de l’envoi par le commutateur B) un port
erroné ou du moins non optimum.
b. La solution : le spanning tree
Pour éviter ces phénomènes, il est nécessaire de mettre en
place un processus de suppression des boucles de façon logique : le
spanning tree (STP : Spanning Tre Protocol).
Ce protocole travail au niveau 2 de la couche OSI et est
implémenté généralement sur les commutateurs, ponts et routeur (matériels
pontés).
Historiquement créé par DEC (Digital Equipment Corporation),
l’algorithme est ensuite normalisé par l’IEEE sous la dénomination 802.1d.
Ce protocole permet d’éviter les boucles en bloquant
certains ports sur les matériels précités et en les débloquant en cas de panne.
c. Le fonctionnement du spanning tree
Ce protocole se base sur l’identification du « pont » principal (matériel ayant une fonction de port : commutateur et ou routeur) et du calcul du meilleur coût pour aller d’un point A du réseau à un point B.
Ø
Détermination
du pont principal ou « root bridge »
Ce matériel voit tous ses ports définis comme non bloqués
(designated ports). Ils peuvent donc faire transiter les trames.
Remarque
Le port ayant le meilleur coût (valeur minimum) n’est pas
forcément celui qui est le plus direct en terme de sauts (nombre de matériels
par lesquels la trame doit transiter pour arriver à destination). L’élément
pris en compte est la bande passante. Le chemin le plus rapide est donc
privilégié. La norme de l’IEEE définit les coûts en fonction de la vitesse.
Débit |
Coût |
10Mbits/s |
100 |
100Mbits/s |
19 |
1Gbits/s |
4 |
10Gbits/s |
2 |
Le « root bridge » est déterminé en prenant la
valeur la plus basse sur 8 octets. Cette valeur est calculée à partir de 2
octets pour la priorité (à définir sur la matériel sinon il y a un valeur par
défaut) et des 6 octets de l’adresse Mac du matériel.
En clair entre 2 commutateurs ayant la même priorité, le
« root bridge » est celui qui possède l’adresse Mac la plus petite.
Les matériels s’échangent ces informations via des trames
multicats (toutes les 2 secondes par défaut chez Cisco). Ces trames se nomment
BPDU (Bridge Protocol Data Unit)
Ø
Une
fois le « root bridge » déterminé, les autres ponts ou matériels
pontés, vont définir pour chacun de leurs ports, le chemin
de moindre coût pour atteindre le « root bridge ». Ces matériels sont
appelés « non root bridge ».
Chaque port peut prendre deux états finaux :
ü
Blocking,
les trames ne transitent pas par ce port
ü
Forwarding,
les trames transitent par ce port
Entre ces 2 états, il existe 2 autres états
intermédiaires :
ü
Listening,
le port écoute et récupère les BPDU
ü
Learning,
le port apprend et met à jour la table des adresses Mac
Pour mieux comprendre, voyons le processus d’un « non
root bridge » de son démarrage à son activation.
Ø
Au
démarrage
Il se désigne comme « root bridge » par défaut.
Tous les ports sont bloqués puis passent en mode listening.
Il y a alors échange avec les autres ponts de BPDU (2
secondes de latence). Il s’aperçoit alors qu’il est en fait un « non root
bridge ». Il lui faut donc définir le coût de ses ports vers le
« root bridge ».
Les ports « élus » deviennent des
« designated ports » après 15 secondes et passent alors en mode
learning. Les autres ports passent en mode blocking.
Dans l’état learning, le port construit la table Mac. Il
reçoit des trames mais ne les fait pas transiter.
Cet état dure 15 secondes. Le port passe alors en mode forwarding
et peut enfin faire transiter les trames des utilisateurs.
Remarque
Tant que le port n’est pas en mode forwarding, aucune trame
n’est transmise. Durant la phase learning,le port reçoit les trames des
utilisateurs pour générer la table Mac mais les trames ne sont pas transmises.
Ce système est extrêmement important car il diminue voir supprime l’effet de
flooding.
Ø
Mise à
jour
Il existe un élément appelé « max-age » qui
correspond à une timer de 20 secondes qui permet de déterminer si le
« root bridge » est en panne.
En effet, si pendant ce max-age, acun BPDU n’est arrivé, le
« non root bridge » estime que le « root bridge » est en
panne.
Il recalcule alors le spanning tree en passant tous ses
ports (y compris les port dans l’état blocking) en mode listening.
Au bout de 30 secondes, le spanning tree est à nouveau
opérationnel.
.
Remarque
On parle de convergence lorsque tous les ports de tous les
commutateurs sont dans l’un des 2 états finaux.
Plus le temps de convergence est faible mieux c’est.
Afin d’améliorer ce temps de convergence, l’IEEE a défini le
RSTP (Rapid Spanning Tree Protocol) sous la norme 802.1w.
Ce protocole permet une transition rapide de l’état blocking
à forwarding en cas de recalcule.