Pourquoi les commutateurs ne réécrivent-ils pas les adresses mac?

10

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?

user2720323
la source
5
Supposons que votre nom était Kumar. Aimeriez-vous que les gens commencent à vous appeler "Jessica"?
Mike Pennington
1
les commutateurs ne réécrivent pas les paquets (trames); ils les déplacent simplement d'une interface à l'autre. (dans le cas de la diffusion / multidiffusion, cela inclut la copie sur plusieurs ports.)
Ricky Beam
4
Pouvez-vous penser à une raison valable pour laquelle un commutateur devrait changer l'adresse MAC?
Teun Vink
Une réponse vous a-t-elle aidé? si c'est le cas, vous devez accepter la réponse afin que la question ne s'affiche pas indéfiniment, à la recherche d'une réponse. Alternativement, vous pouvez fournir et accepter votre propre réponse.
Ron Maupin

Réponses:

10

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?).

YApprendre
la source
4

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:

  • Les adresses IP sont utilisées pour la communication globale, et il existe un pool limité d'adresses IP disponibles qui doivent être partagées. En utilisant NAT, on s'assure qu'un plus grand nombre d'hôtes internes peuvent partager moins (généralement une seule) adresse IP visible sur Internet public.
  • La réécriture des adresses IP est considérée par certains mais pas par tout le monde pour ajouter une couche de sécurité en masquant les adresses IP des machines internes.

Donc, si nous nous en tenons à l'exemple NAT, il n'y a vraiment pas besoin d'un homologue de couche deux de NAT.

  • Les adresses MAC ne sont pas utilisées globalement pour adresser des datagrammes sur Internet, elles sont utilisées pour envoyer des trames aux bons hôtes sur le sous-réseau local. Comme les sous-réseaux locaux sont relativement petits et que le nombre d'adresses MAC possibles est très important, on ne "manque pas" d'adresses MAC disponibles au niveau de la couche 2. (L'option de reconfigurer manuellement les adresses MAC des cartes réseau en une valeur arbitraire ne change rien à cela)
  • Et pour l'avantage de sécurité discutable de la réécriture des adresses de datagramme lors du transfert: comme les adresses MAC sont utilisées uniquement dans un sous-réseau local, on a généralement, en termes relatifs, un bien meilleur contrôle du point de vue de la sécurité sur ce sous-réseau (physiquement ainsi que la plupart des périphériques concernés) par rapport à la contrepartie dans le cas de la couche 3, qui est l'ensemble d'Internet (que nous, en tant qu'utilisateurs connectés et ingénieurs réseau, n'avons en pratique aucun contrôle de sécurité).

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) .

IllvilJa
la source
3
Spot-on, mais j'ai une toute petite critique avec votre réponse. Vous avez mentionné qu '"il n'y a vraiment pas besoin d'un équivalent de couche deux du NAT" ... alors que je n'ai pas vu MAC NAT, j'ai vu le tunneling au niveau mac. Dans certaines circonstances, il est logique de passer à des adresses mac de "tunnel" à l'intérieur d'autres adresses mac. La situation qui me vient immédiatement à l'esprit est le PBB (IEEE 802.1ah Provider Based Bridging) . En règle générale, cela est utilisé pour mettre à l'échelle les réseaux locaux virtuels disponibles / réduire l'apprentissage Mac dans les anneaux de métro des fournisseurs de services
Mike Pennington
1
@IllvilJa: Bien dit ..! Vous avez résolu un doute qui m'embrouille ces dernières semaines. Il y a quelques semaines, j'ai pensé comme suit ... "un routeur, lorsqu'il traite avec un WAN, a tendance à mettre son adresse MAC au lieu de l'adresse MAC de l'expéditeur (sur chaque paquet) et passe les paquets au récepteur. Mais en cas de LAN, le routeur ne met pas son adresse MAC à la place de l'adresse MAC de l'expéditeur (sur chaque paquet) mais passe simplement les paquets entre l'expéditeur et le récepteur "Mais après votre explication, j'ai suffisamment de distinction pour faire la distinction entre" un routeur "et" un interrupteur'. Merci encore..!
Maharan
0

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

Peter Green
la source