Dans un article récent, je présentais la différence entre un hub et un switch (à relire ici). J’expliquais ainsi pourquoi on considère le switch comme un équipement de niveau 2. À ce titre, il traite les trames Ethernet; c’est à dire qu’il commute les trames d’un port à l’autre en fonction de l’adresse MAC destination. Ça, c’est la théorie de base. Aujourd’hui, je vais montrer dans cet article, le détail de fonctionnement d’un commutateur Ethernet comme j’aime le faire pendant les formations: par la démonstration pratique!

Tout d’abord, je me dois de présenter la plateforme que l’on va utiliser pour les tests. Cette plateforme est constituée de 4 équipements (1 PC et 2 routeurs raccordés sur 1 commutateur). Sur le PC, nous allons utiliser le logiciel Open-Source Wireshark, l’outil de base pour l’analyse du trafic et des protocoles:

R4,R5, R7 et PC Wireshark raccordés sur SW6

Plateforme utilisée pour la démonstration

 

Lançons Wireshark sur le PC et utilisons l’outil ping pour échanger des données entre R4 et R7:

ping vers R7 depuis R4

ping vers R7 depuis R4

 

Voyons ensuite les échanges vus par le PC qui est raccordé sur le même switch (SW6). La capture ci-dessous montre un message ARP permettant de résoudre la correspondance entre l’adresse IP 192.168.0.7 et l’adresse MAC. Mais…. c’est tout ! On ne voit ni la réponse ARP, ni les messages ICMP!!!!

Capture Wireshark pendant le ping

Capture Wireshark pendant le ping

 

Le requête ARP est une diffusion Ethernet comme le montre l’adresse destination ff:ff:ff:ff:ff:ff:ff: tous les systèmes dans le même domaine de broadcast vont donc recevoir cette requête. On voit bien ici que le commutateur assure la commutation des trames sans envoyer le trafic vers les systèmes qui n’en ont pas besoin (c’est le cas du PC ici qui ne reçoit ni la réponse, ni les échnages ICMP).

La commutation des trames Ethernet s’effectue sur la base de la table des adresses MAC (aussi parfois appelée table CAM (Content Addressable Memory). Elle peut être affichée sur le commauteur par la commande:

show mac address-table dynamic 

Table d'adresses MAC sur le switch

Quelques explications sur le remplissage de cette table. Après réception de la trame ARP émise par le système ayant l’adresse MAC aabb.cc00.0400 sur le port e0/0, le switch peut remplir la table avec ces informations. Du coup, lorsque R7 répond à la requête ARP. La trame, destinée à R4 (c’est à dire à l’adresse MAC aabb.cc00.0400) , peut être directement acheminée vers e0/0. Cette réponse permet également de renseigner la table avec l’adresse MAC de R7 (aabb.cc00.0701) puisque la réponse ARP est reçue sur le port e1/0 avec cette adresse source.

Il est important de bien remarquer que la table est remplie à l’aide des adresses MAC sources contenues dans les trames. 

La durée de validité des informations de la table des adresses MAC peut être manipulée de façon à avoir une durée nulle; c’est à dire qu’à peine reçue, l’information n’est plus valide: la table reste vide.

Ce comportement peut se configurer à l’aide de la commande IOS suivante (en mode de configuration globale):

no mac address-table learning

Dans ce cas, la table reste vide et toutes les trames sont envoyées sur tous les ports (qui appartiennent au même VLAN) ! Le commutateur se comporte alors comme un hub puisque toutes les trames sont envoyées sur tous les ports du même domaine de diffusion…

 

Voilà pour cette présentation rapide du comportement interne du commutateur Cisco. Laissez nous vos questions dans les commentaires ci-dessous !