130 votes

Quelle est l'utilité exacte d'une adresse MAC ?

Je comprends que les adresses IP sont hiérarchisées, de sorte que les routeurs de l'internet savent dans quelle direction transmettre un paquet. Avec les adresses MAC, il n'y a pas de hiérarchie, et le transfert de paquets ne serait donc pas possible. Les adresses MAC ne sont donc pas utilisées pour le transfert de paquets.

Je ne pense pas qu'il reste là sans raison. Ma question est donc la suivante : où l'adresse MAC entre-t-elle en jeu lors d'un transfert de paquets ?

6voto

LawrenceC Points 70381

Ethernet suppose que l'autre ordinateur (l'autre MAC) auquel il veut parler est directement joignable à partir de sa carte réseau. Ce n'est pas le cas d'IP. IP part du principe qu'il peut atteindre n'importe quel autre IP dans le monde entier et que s'il ne peut pas l'atteindre sur le sous-réseau actuel, un routeur l'y amènera, malgré la NAT. La notion de passerelle n'existe pas dans la couche 2 ou dans Ethernet.

Si vous avez un certain nombre de machines connectées à un commutateur et que vous n'aurez jamais besoin d'échanger du trafic avec d'autres réseaux/Internet via un routeur, alors vous n'avez vraiment pas besoin d'avoir un protocole IP opérationnel. Bien sûr, une application devrait implémenter ou fournir son propre protocole au-dessus de la couche 2, puisque pratiquement tous les systèmes d'exploitation et toutes les applications supposent que vous voulez toujours utiliser TCP/IP.

N'oubliez jamais que le terme "Internet" dans IP signifie "interconnexion", c'est-à-dire qu'il s'agit en fait d'acheminer le trafic entre réseaux plus de sur un réseau, bien qu'il puisse évidemment être (et est) utilisé pour cela aussi.

5voto

SamBC Points 113

Elle est utilisée lorsque le protocole ARP (Address resolution protocol) pour IPv4 ou le protocole NDP (Neighbor Discovery Protocol) pour IPv6, traduit les adresses IP en adresses MAC pour déterminer à quel hôte unique les trames doivent être envoyées.

3voto

kriss Points 221

Pour compléter les réponses des autres, j'ajouterais que l'adresse MAC est encore plus critique pour les routeurs que pour les commutateurs. Ce que je veux dire par plus critique est que les commutateurs ne sont pas vraiment nécessaires pour que le réseau IP existe. Si vous regardez 20 ans en arrière (avant RJ-45), les réseaux IP locaux fonctionnaient parfaitement sans commutateurs. Les réseaux Ethernet non routés connectaient simplement des appareils sur le même fil (regardez la technologie Ethernet X base-T par exemple).

D'autre part, les réseaux IP ont été inventés pour prendre en charge le routage et reposent sur des schémas d'adressage MAC et IP.

Le routage des paquets dans les réseaux IP signifie que lorsque la machine cible n'est pas accessible directement, elle sera d'abord envoyée vers une autre machine (la passerelle) plus proche de la cible IP finale.

En termes d'en-têtes de paquets réseau, cela signifie qu'un paquet envoyé à une passerelle aura comme cible dans l'en-tête de niveau Ethernet l'adresse MAC de la passerelle, l'en-tête de niveau IP restant inchangé.

Vous devriez également remarquer que Adresses MAC signifie généralement aujourd'hui soit MAC-48 (adresse physique de l'appareil), soit EUI-48 (adresse logique de l'appareil) ou même les adresses EUI-64 à 8 octets utilisées dans les grands réseaux. Historiquement, le MAC a été inventé par Xerox pour la technologie Ethernet, puis réutilisé pour d'autres technologies de transport réseau (802.11, Bluetooth, FibreChannel, BlueTooth) nécessitant l'identification d'un appareil.

Comme je l'ai dit, vous pouvez utiliser une autre couche 2 à la place d'Ethernet, mais la plupart utilisent une adresse MAC comme identifiant de réseau et le schéma de correspondance MAC/IP sous-jacent reste valable. Pour autant que je sache, toutes les piles IP reposent sur une table de correspondance entre les adresses MAC et les adresses IP.

D'autres types d'identifiants de nœuds de périphériques existent pour les piles non IP. Par exemple, X.25 ne s'appuie pas sur des adresses MAC, mais sur des canaux virtuels établis sur la base de chaque connexion, ou les dispositifs ATM sont identifiés dans les réseaux ATM à l'aide de SNPA. Mais ni X.25 ni ATM ne sont des piles IP (et même ATM utilise le format des adresses MAC dans le cadre de son SNA, équivalent approximatif d'une adresse IP pour ATM).

2voto

Kaz Points 2554

L'adresse MAC est nécessaire parce qu'il y a plusieurs adresses attachées au "bus" (le réseau Ethernet). Un émetteur doit être capable d'identifier le récepteur et de s'identifier lui-même auprès du récepteur.

Tous les bus matériels doivent être adressés, car plusieurs émetteurs et récepteurs partagent les mêmes fils, et les messages doivent aller à des récepteurs spécifiques et identifier les émetteurs d'origine.

I2C, PCI, Ethernet, tout ce que vous voulez.

Nous avons plusieurs adresses dans l'inter-réseau (adresse IP et adresse matérielle) parce qu'une adresse au niveau matériel est seulement locale à un réseau physique particulier. Lorsqu'un datagramme voyage d'un réseau à l'autre, il tend à conserver son adresse au niveau du réseau, mais il change d'adresse matérielle de nombreuses fois en cours de route. En passant par certains réseaux, il peut ne pas avoir d'adresse matérielle du tout, et dans d'autres, il peut avoir une adresse matérielle qui n'est pas un MAC Ethernet. (Les adresses réseau peuvent être réécrites par une passerelle NAT, bien sûr, mais les adresses matérielles sont dépouillées et remplacées par des adresses différentes chaque fois qu'un paquet traverse un routeur).

1voto

Brian Ensink Points 7579

Autrefois, les réseaux étaient des bus partagés. Chaque appareil en réseau était connecté au même fil, ou à un concentrateur, ce qui signifiait que chaque paquet que vous envoyiez était reçu par tous les appareils du réseau.

Le logiciel de mise en réseau était plus simple à l'époque. Chaque appareil avait une adresse MAC, qui était garantie comme étant unique. Elle n'avait pas besoin d'être autre chose - tout ce qu'elle faisait était de s'assurer que deux appareils sur le même réseau n'avaient pas la même adresse.

Si votre appareil voulait parler à un autre appareil, il envoyait un paquet avec l'adresse MAC du destinataire, et le destinataire le récupérait sur le réseau. Tous les autres appareils l'ignorent, car il n'est pas adressé à leur adresse MAC.

Au fil du temps, les gens ont relié trop d'appareils au réseau, et ils ne pouvaient plus faire face au trafic. Ils ont donc commencé à séparer les réseaux, et à relier deux réseaux avec des commutateurs. Ces commutateurs avaient d'énormes tables leur indiquant quelles adresses MAC se trouvaient sur chaque réseau. S'ils voyaient un paquet sur un réseau adressé à une adresse MAC sur l'autre réseau, ils copiaient le message sur l'autre réseau. Mais ils ne copiaient pas tous les messages, seulement ceux qui devaient aller sur l'autre réseau.

Cela a permis de réduire l'encombrement, de mettre en réseau davantage de dispositifs et de gérer un trafic global plus important. Il s'agit d'une réseau à commutation de paquets .

Cependant, elle ne résolvait pas tous les problèmes et présentait un énorme inconvénient : plus les tables de commutation étaient grandes, plus les réseaux ralentissaient. Si vous connectez 5 000 machines à 50 réseaux différents, tous interconnectés par des commutateurs, chaque commutateur doit apprendre les 5 000 adresses MAC et router les paquets en fonction de celles-ci.

Ce n'était pas un gros problème jusqu'à ce que des personnes de différentes institutions, comme des universités, veuillent connecter leurs réseaux ensemble, et les tableaux nécessaires auraient été énormes. Aujourd'hui, garder la trace de quelques centaines de milliers d'adresses MAC ne semble pas être un gros problème, mais dans les années 1970, les commutateurs étaient eux-mêmes des ordinateurs, avec une mémoire et une vitesse limitées, et garder la trace de quelques centaines de paquets et les commuter rapidement était un problème.

La solution consistait à passer à un réseau IP et à utiliser des routeurs. Ce réseau est construit au-dessus du réseau de commutation par paquets basé sur les adresses MAC. Plutôt que des données brutes, les paquets contiennent maintenant un paquet IP - un paquet dans un paquet.

Aujourd'hui, les grands réseaux sont reliés par des routeurs. Ceux-ci attendent de voir un paquet avec leur adresse MAC, puis ils sortent le paquet IP et examinent l'adresse IP. Ils réenveloppent ensuite le paquet IP dans un autre paquet avec un nouveau destinataire d'adresse MAC et l'envoient sur un nouveau réseau. Cette adresse MAC est probablement destinée à un autre routeur sur le nouveau réseau, mais il pourrait aussi s'agir de la machine avec l'adresse IP.

Dans les réseaux d'aujourd'hui, il est rare de voir des concentrateurs et des bus (sauf dans les réseaux sans fil, où le support est partagé par nature). Au lieu de cela, ma machine se connecte directement à un commutateur, qui lui-même se connecte à un routeur.

Ma machine possède une variété d'algorithmes et de protocoles, elle sait donc comment le réseau est configuré.

Si j'envoie un paquet IP à une machine de mon réseau local, ma machine le mettra dans un paquet avec l'adresse MAC correcte. Les commutateurs le feront basculer vers le bon réseau local, et la machine à laquelle il est destiné le recevra parce qu'il a la bonne adresse MAC. Elle sortira le paquet IP et vérifiera à nouveau que l'adresse IP lui est également destinée, et agira en conséquence.

Si j'envoie un paquet IP destiné à une machine située ailleurs sur Internet, ma machine sait qu'il faut l'envoyer au routeur, et le place donc dans un paquet contenant l'adresse MAC du routeur. Il est à nouveau commuté localement dans mon réseau jusqu'à ce qu'il atteigne le réseau sur lequel se trouve le routeur, puis le routeur le prend, extrait le paquet IP, l'examine et, en fonction de sa connaissance d'Internet, l'envoie à un autre routeur sur un autre réseau, en l'enveloppant dans un paquet avec l'adresse MAC du routeur ou de l'ordinateur de destination.

Il y a beaucoup de petits détails que j'ai survolés, et des algorithmes et des protocoles vraiment intéressants en jeu qui font que tout fonctionne, mais c'est l'histoire de base de ce que l'adresse MAC fait pour nous, même aujourd'hui.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X