Y a-t-il une raison particulière pour laquelle les commutateurs Ethernet ne modifient pas l'adresse MAC d'un paquet?
Est-ce pour l'identification de l'hôte final en utilisant l'adresse MAC ou autre chose?
ethernet
protocol-theory
mac-address
user2720323
la source
la source
Réponses:
Si un commutateur devait changer les adresses MAC, cela romprait complètement la mise en réseau.
L'adresse MAC est un identifiant unique utilisé par les hôtes du réseau local.
Si le commutateur devait changer le MAC de destination, la trame ne serait pas remise à l'hôte approprié. Dans les cas où cela se produirait, par exemple si la trame est inondée, l'hôte de destination la supprimera car elle ne sera plus destinée à l'hôte.
Si le commutateur devait changer l'adresse MAC source, l'hôte de destination utiliserait cette adresse MAC pour toutes les réponses (y compris la mise à jour des entrées ARP contenant des données incorrectes). Il en résulterait la même situation que j'ai déjà décrite, juste pour tout le trafic de retour.
Cela pourrait encore créer des problèmes avec des choses comme 802.1X et d'autres mécanismes qui utilisent l'adresse MAC pour identifier / classer le périphérique.
Des mécanismes pourraient-ils être développés pour ce faire? Je suis sûr qu'ils le pourraient. Mais il n'y a aucune raison de le faire à ce stade et cela ne ferait que compliquer la mise en réseau et ajouter un traitement inutile. Nous ne sommes pas près d'épuiser le pool d'adresses MAC disponibles, il n'y a donc pas besoin de quelque chose comme MAT (je ne sais pas si le concept de traduction d'adresses MAC existe même quelque part, alors j'ai peut-être juste inventé un terme?).
la source
La réécriture des adresses des datagrammes se produit au niveau de la couche 3, par exemple lorsque les passerelles (routeur ou pare-feu) exécutant NAT réécrivent les adresses IP des hôtes sur le réseau intérieur afin qu'elles apparaissent toutes à partir d'une (ou de quelques) adresses IP externes sur la passerelle elle-même.
La raison pour laquelle quelque chose de similaire ne se produit pas au niveau de la couche 2 (où nous utilisons des adresses MAC pour distinguer les hôtes et les commutateurs font le mouvement des datagrammes, c'est-à-dire des trames) est comme dit dans les commentaires ci-dessus qu'il n'y en a vraiment pas besoin.
Dans le cas de la couche trois avec NAT, le NAT résout un certain nombre de problèmes:
Donc, si nous nous en tenons à l'exemple NAT, il n'y a vraiment pas besoin d'un homologue de couche deux de NAT.
J'espère que cela vous expliquera pourquoi les commutateurs ne réécrivent pas les adresses MAC. Le seul cas de couche 3 que j'ai trouvé du haut de ma tête était NAT, d'autres peuvent certainement fournir un exemple d'autres cas de couche 3 où les réécritures IP sont garanties (et pourquoi ces technologies n'ont pas vraiment de sens au niveau de la couche 2) .
la source
La réécriture de l'adresse MAC ajouterait une complexité considérable (le commutateur devrait connaître les protocoles de niveau supérieur comme arp pour pouvoir réécrire la résolution d'adresse), rendrait le dépannage plus difficile, empêcherait les protocoles comme STP de fonctionner et serait généralement un PITA. Ce n'est pas non plus normalement nécessaire.
Ce qui ne veut pas dire que ce n'est pas possible. ebtables (la contrepartie de la couche 2 à iptables) a quelques options pour la traduction d'adresse MAC. Cela peut être utile si vous avez des commutateurs qui n'utilisent pas de tables MAC par vlan et que vous souhaitez effectuer un filtrage de couche 2.
http://ebtables.netfilter.org/examples/example1.html
la source