Comment un commutateur apprend-il une adresse MAC qui ne figure pas dans sa table de recherche?

12

J'ai une question relativement stupide. Supposons que le commutateur vient de démarrer et qu'il a reçu une trame qui contient une adresse MAC de destination pour un périphérique réseau ne figurant pas dans sa table d'adresses MAC.

Que se passe-t-il alors? Diffuse-t-il (adresse MAC ff:ff:ff:ff:ff:ff) et reçoit-il des réponses des appareils connectés, ou existe-t-il un protocole dédié à celui qui est utilisé? Je ne pense pas que le commutateur utilise l'ARP (Address Resolution Protocol)?

Ron Maupin
la source
1
Si vous y pensez, lorsqu'un commutateur ne peut pas réellement changer de trame (car il n'a pas l'adresse nécessaire dans sa table, par exemple), il doit généralement traiter cette trame comme le ferait un concentrateur pour des raisons de compatibilité.
Todd Wilcox
Merci beaucoup à tous pour les réponses.

Réponses:

28

Bonne question. Je vais y répondre avec une animation:

entrez la description de l'image ici

Lorsque l'hôte A envoie la trame, le commutateur n'a rien dans sa table d'adresses MAC. À la réception de la trame, il enregistre l' adresse MAC de l' hôte A pour le mappage du port de commutation . Comme il ne sait pas où se trouve l'adresse MAC de destination, il inonde la trame de tous les ports.

Cela garantit que si l' hôte B existe (qui à ce stade, le commutateur ne sait pas encore), qu'il le recevra. Espérons qu'à la réception de la trame, l'hôte B générera une trame de réponse, qui permettra au commutateur d'apprendre le mappage d'adresse MAC à partir de la trame de retour.

Vous pouvez en savoir plus sur le fonctionnement d'un commutateur ici (d'où j'ai pris l'animation). Je suggère également de lire l'intégralité de la série d'articles pour voir de plus près comment un paquet se déplace à travers un réseau .

Une dernière remarque concernant les termes Flooding vs Broadcast . Un commutateur ne diffuse jamais de trames, une diffusion n'est pas une action qu'un commutateur peut entreprendre. Un interrupteur ne peut inonder qu'un cadre. Une diffusion est simplement une trame avec une adresse MAC de destination de ffff.ffff.ffff. Cela est souvent confus car l'effet final est le même, mais ils sont en réalité différents .

Eddie
la source
La principale différence entre les inondations et la diffusion est la réaction du ou des prochains nœuds
Ferrybig
2
@Ferrybig Correct. Mais je dirais que c'est un peu différent ... La principale différence entre un commutateur inondant une trame unicast et un commutateur inondant une trame de diffusion est la façon dont le ou les nœuds suivants vont réagir. Il n'y a pas de commutateur diffusant une trame. (Ce commentaire, et ma réponse, parle du trafic de transit, pas du trafic de gestion vers / depuis le commutateur)
Eddie
4

Lorsqu'un commutateur reçoit une trame, il met à jour sa table d'adresses MAC avec l'adresse MAC source et le port sur lequel il a reçu la trame. Si l'adresse MAC de destination n'est pas dans sa table d'adresses MAC (monodiffusion inconnue), elle inonde la trame vers tous les ports, à l'exception du port sur lequel la trame a été reçue.

Ron Maupin
la source
Sauf quand il inonde, il n'inonde pas le châssis vers le port d'où il a reçu le châssis, non?
Todd Wilcox
1
Droite. il ne l'envoie pas au port à partir duquel la trame a été reçue.
Ron Maupin
3
J'ajouterai simplement que le commutateur n'apprend pas la nouvelle adresse MAC (de destination) jusqu'à ce que l'appareil réponde.
Ron Trunk
En inondant le châssis de tous les ports, il y a un risque de sécurité?
3
Ça peut être. Et c'est pourquoi certains / plusieurs commutateurs prennent en charge la désactivation de l'inondation unicast d'unicast inconnu (ainsi que la multidiffusion.) En trois décennies de mise en réseau, je n'ai jamais eu besoin de l'utiliser.
Ricky Beam
4

Le commutateur n'utilise ARP, mais ARP peut aider à prévenir cette situation de se produire en premier lieu, pour deux raisons:

  1. Si le nœud A envoie un paquet IP au nœud B qui ne se trouve pas dans son cache ARP, il enverra d'abord une demande ARP (qui est un paquet de diffusion et sera automatiquement inondé vers tous les ports par le commutateur). Lorsque le nœud B envoie sa réponse ARP, le commutateur apprend son adresse MAC. Ainsi, au moment où le transfert de données se produit, le commutateur connaît déjà les adresses MAC des participants et n'a pas besoin d'inonder les paquets de données.

  2. De nombreux appareils, lorsque leur lien augmente, enverront un paquet ARP gratuit . En plus de mettre à jour les caches ARP des autres nœuds du réseau, le GARP remplira également la table d'adresses MAC du commutateur.

IPv6 n'utilise pas ARP, mais NDP remplit un objectif similaire.

Donc dans l' ensemble, bien que les commutateurs certainement seront inonder des cadres pour les adresses unicast ils n'ont pas appris, il n'est pas nécessaire aussi souvent que vous pourriez penser, car il aura généralement l'occasion d'apprendre les adresses des noeuds de trames de diffusion au préalable. Cependant, vous pouvez certainement l'observer avec un commutateur dont la table MAC a débordé ou qui vient de redémarrer.

Hobbs
la source