Quelle est l'utilisation exacte d'une adresse MAC?

126

Je comprends que les adresses IP sont hiérarchiques, de sorte que les routeurs sur Internet sachent dans quelle direction transférer un paquet. Avec les adresses MAC, il n'y a pas de hiérarchie et, par conséquent, le transfert de paquets ne serait pas possible. Ainsi, les adresses MAC ne sont pas utilisées pour le transfert de paquets.

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

VISHNU VIVEK
la source

Réponses:

57

TL; DR> Les adresses MAC sont un composant de bas niveau d'un réseau Ethernet (et d'autres normes similaires, telles que le WiFi). Ils permettent à un périphérique de communiquer avec une machine sur le réseau physique local (LAN) et ne peuvent pas être routés sur Internet, car le matériel physique pourrait en théorie être branché n'importe où dans le monde.

En revanche, les adresses IP couvrent l’ensemble de l’Internet et les routeurs les utilisent pour déterminer où envoyer les données, même si plusieurs sauts sont nécessaires pour atteindre leur destination. Toutefois, elles ne facilitent pas l’interface avec le matériel physique de votre réseau local.

Si nous trouvions un meilleur standard qu'Ethernet, il pourrait ne pas utiliser d'adresses MAC, mais le trafic IP provenant d'Internet pourrait toujours y circuler, même si d'autres personnes sur Internet n'en avaient jamais entendu parler.

Si nous trouvions un meilleur standard que l'IP (par exemple IPv6 si toutes les adresses IPv4 étaient épuisées), la plupart des matériels Ethernet pourraient transporter le nouveau type de trafic sans modification - et une simple mise à jour du logiciel / micrologiciel résoudrait l'essentiel du reste.

Les adresses MAC sont nécessaires pour assurer une fonction de réseau Ethernet local (ou wifi). Ils permettent à un périphérique réseau d'attirer l'attention d'un seul périphérique directement connecté, même si la connexion physique est partagée. Cela peut être important lorsque des milliers de périphériques sont connectés ensemble au sein d'une même organisation. Ils ne servent à rien sur l'internet au sens large.

Pour bien comprendre la réponse à cette question, vous devez comprendre le modèle OSI (parfois appelé le modèle à 7 couches) .

Pour que la communication se déroule entre 2 applications exécutées sur des machines distinctes ne disposant pas d'une connexion physique directe, il faut beaucoup de travail.

Autrefois, chaque application savait exactement quelles instructions de code machine devaient être exécutées afin de produire un signal approprié qui atteindrait et pourrait être décodé par l'application située à l'extrémité distante. Toute communication était effectivement point à point et le logiciel devait être conçu pour s'adapter à la situation exacte dans laquelle il devait être déployé. Évidemment, c'était insoutenable.

Au lieu de cela, le problème de la mise en réseau a été divisé en couches, et chaque couche savait comment parler à la couche correspondante sur une machine distante et comment communiquer avec la couche située en dessous (et parfois au-dessus) sur sa machine locale. Il ne connaissait rien des autres couches en place - votre navigateur Web n'a donc pas besoin de savoir s'il tourne sur une machine utilisant un réseau à jeton, Ethernet ou wifi - et n'a certainement pas besoin de savoir quel matériel la machine distante utilise.

Pour que cela fonctionne, le modèle à 7 couches utilise un système assez semblable aux enveloppes imbriquées; l'application crée ses données et les enveloppe dans une enveloppe à livrer par le système d'exploitation. Le système d'exploitation enveloppe cette information dans une autre enveloppe et la transmet au pilote réseau. Le pilote de réseau enveloppe cela dans une autre enveloppe et la place sur le câble physique. Etc.

La couche inférieure, la couche 1 , est la couche physique. Il s’agit de la couche de fils, de transistors et d’ondes radio. Dans cette couche, la communication n’est en général qu’un flot d’ondes et de morpions. Les données vont partout où il y a une connexion physique. Vous connectez le port réseau de votre ordinateur à votre commutateur à l'aide d'un câble CAT-5.

La couche 2 est la couche liaison de données. Cela fournit une certaine structure aux uns et aux autres, des capacités de détection et de correction des erreurs, ainsi que des indications sur le périphérique connecté physiquement (les connexions physiques peuvent ici se faire par wifi) devraient prêter attention au message. C’est la couche dans laquelle les adresses MAC entrent en jeu, et nous y reviendrons plus tard. Mais les adresses MAC ne sont pas la seule possibilité à cette couche. Les réseaux en anneau à jeton, par exemple, nécessitent une implémentation différente de la liaison de données.

La couche 3 est la couche réseau. C’est la couche sur laquelle l’IP travaille (bien que ce ne soit pas le seul protocole de couche réseau), et c’est ce qui permet aux ordinateurs d’envoyer un message qui peut parvenir à n’importe quel ordinateur du réseau. Il n’est pas nécessaire qu’il y ait une connexion directe entre les machines en question.

Les couches 4 à 7 sont des protocoles de niveau supérieur. Ils s'éloignent de plus en plus du matériel et se rapprochent de l'application. TCP, par exemple, repose sur le dessus de l'IP et fournit des mécanismes qui renvoient automatiquement les messages quand ils sont manquants.

Les adresses MAC fonctionnent donc sur la couche 2 et permettent à deux machines physiquement connectées d'envoyer des messages qui seront ignorés par d'autres machines partageant la même connexion physique.

Supposons que j’ai une application qui souhaite envoyer des données à la machine avec l’adresse IP 8.8.8.8.

La couche 3 encapsule les données dans une enveloppe contenant entre autres l'adresse IP 8.8.8.8, puis la transmet à la couche 2.

La couche 2 examine cette adresse IP et décide quelle machine à laquelle elle est directement connectée est capable de traiter ce message. Il disposera d'une table de recherche contenant une sélection des adresses IP directement connectées ainsi que l'adresse MAC correspondante de la carte réseau de cette machine. Cette table de consultation est construite à l'aide d'un protocole appelé ARP, qui permet à une carte réseau de poser des questions aux autres périphériques directement connectés. Ethernet réserve une adresse MAC spéciale, FF: FF: FF: FF: FF: FF, qui permet à un périphérique de communiquer avec tous les périphériques connectés physiquement.

Si l'adresse IP se trouve dans la table (ou peut être résolue via ARP), l'enveloppe de couche 3 sera enveloppée dans une enveloppe de couche 2 avec l'adresse MAC dans le nouvel en-tête, puis l'ensemble du paquet sera envoyé au matériel de couche 1. Le message sera transmis à la carte réseau avec l'adresse MAC correspondante et le pilote du réseau ouvrira l'enveloppe de couche 2 et transmettra le contenu à la partie du système d'exploitation qui s'attend à recevoir des messages à l'adresse IP spécifique.

Sinon, si l'adresse IP ne se trouve pas sur le réseau local, l'adresse MAC de la passerelle par défaut (routeur) configurée pour cette interface réseau sera configurée sur la nouvelle enveloppe, et le matériel transportera le paquet vers le routeur.

Le routeur remarque sa propre adresse MAC dans l'enveloppe de couche 2 et ouvre le paquet de niveau 2. Il examine l’adresse IP de l’enveloppe de niveau 3 et détermine l’orientation suivante du message, qui sera probablement le routeur de votre fournisseur de services Internet. Si le routeur utilise NAT (ou similaire), il peut même modifier l'enveloppe de niveau 3 à ce stade, afin de garder vos adresses IP internes privées. Il enveloppe ensuite l'enveloppe de niveau 3 dans une nouvelle enveloppe de niveau 2 adressée à l'adresse MAC du routeur du fournisseur de services Internet et envoie le message à cet emplacement.

Ce processus de suppression de l'enveloppe externe et d'envelopper le contenu dans une nouvelle enveloppe adressée à l'étape suivante de la chaîne se poursuivra jusqu'à ce que le message atteigne la machine de destination.

Les enveloppes continueront ensuite à être déchirées au fur et à mesure que le message remontera dans les couches jusqu'à ce qu'il atteigne enfin le destinataire souhaité. Ce sera une application qui, espérons-le, saura quoi faire avec le message - mais n'aura aucune idée de message reçu ni toutes les étapes nécessaires pour obtenir la réponse à la machine d'origine.

Mais tout fonctionne, presque comme par magie!

Notez que les commutateurs réseau peuvent utiliser des adresses MAC pour optimiser le flux de trafic réseau. Alors qu'un concentrateur Ethernet transfère simplement tout le trafic entrant à tous ses ports, en revanche, un commutateur ne peut transférer du trafic que vers le seul port auquel l'adresse MAC de destination du paquet est connectée. Cela augmente la bande passante effective du réseau; en ciblant des ports spécifiques, le commutateur évite de transférer du trafic sur des segments inutiles du réseau. Le commutateur utilisera ARP ou le reniflage de paquets pour identifier les périphériques connectés à quel port. Les commutateurs ignorent complètement le contenu des paquets de couche 2.

Bill Michell
la source
Salut! Merci d'avoir répondu. D'après ce que j'ai lu, votre réponse est la meilleure. Ce serait génial si vous pouviez inclure plus de concepts tels que ARP et NAT dans votre scénario.
Vishnu Vivek
1
Ajout de la référence aux commutateurs ARP et réseau. Je ne pense pas que le NAT ait quelque chose à voir avec les adresses MAC, étant une fonction de couche 3 ...
Bill Michell
@ BillMichell: sous IPv6, le MAC ou un autre ID local ('matériel') peut être utilisé pour composer l'IP.
Luciano
La réponse est un wiki communautaire. Vous pouvez probablement le modifier pour inclure ces informations supplémentaires si vous pensez que cela aidera à répondre à la question du PO.
Bill Michell
Cela nécessite un TL; DR.
AJMansfield
113

A quoi servent les adresses MAC?

Les adresses MAC sont les bases de bas niveau qui font fonctionner votre réseau Ethernet local. Local signifie que les périphériques réseau sont connectés directement via un câble ou via WiFi, ou via un concentrateur réseau ou un commutateur réseau.

Les cartes réseau ont chacune une adresse MAC unique. Les paquets envoyés sur Ethernet proviennent toujours d'une adresse MAC et sont envoyés à une adresse MAC. Si une carte réseau reçoit un paquet, elle compare l'adresse MAC de destination du paquet à la propre adresse MAC de la carte. Si les adresses correspondent, le paquet est traité, sinon il est rejeté.

Il existe des adresses MAC spéciales, par exemple ff: ff: ff: ff: ff: ff, qui correspond à l'adresse de diffusion et aux adresses de chaque adaptateur réseau du réseau.

Comment les adresses IP et les adresses MAC fonctionnent-elles ensemble?

IP est un protocole utilisé sur une couche au-dessus d'Ethernet. Un autre protocole par exemple serait IPX. IP permet de connecter différents réseaux locaux et de former ainsi un réseau d'entreprise ou Internet global.

Lorsque votre ordinateur souhaite envoyer un paquet à une adresse IP xxxx, la première vérification consiste à déterminer si l'adresse de destination se trouve sur le même réseau IP que l'ordinateur lui-même. Si xxxx se trouve sur le même réseau, l'IP de destination peut être atteint directement, sinon le paquet doit être envoyé au routeur configuré.

Jusqu'à présent, les choses semblent s'être détériorées, car nous avons maintenant deux adresses IP: l'une est l'adresse cible du paquet IP d'origine, l'autre l'adresse IP du périphérique auquel nous devrions envoyer le paquet (le prochain saut, soit le dernier destination ou le routeur).

Comme Ethernet utilise des adresses MAC, l'expéditeur doit obtenir l'adresse MAC du saut suivant. Il existe un protocole spécial utilisé pour cela ARP (protocole de résolution d'adresse). Une fois que l'expéditeur a récupéré l'adresse MAC du saut suivant, il écrit l'adresse MAC cible dans le paquet et l'envoie.

Comment fonctionne l'ARP?

ARP lui-même est un protocole Ethernet, comme IP ou IPX. Lorsqu'un périphérique souhaite connaître l'adresse MAC d'une adresse IP donnée, il envoie un paquet à l'adresse MAC de diffusion en demandant "Qui a l'adresse IP yyyy?" Tous les périphériques reçoivent ce paquet, mais seul celui avec l'adresse IP yyyy répondra par un paquet "C'est moi". Le périphérique demandeur reçoit la réponse et sait maintenant que l'adresse MAC source du paquet ARP est la bonne adresse MAC à utiliser. Bien entendu, le résultat sera mis en cache, de sorte que le périphérique n'a pas besoin de résoudre l'adresse MAC à chaque fois.

Routage

J'ai presque oublié de mentionner: il n'y a pas de routage basé sur les adresses MAC. Les adresses Ethernet et MAC de bas niveau ne peuvent atteindre que tous les appareils du même réseau (câblé ou sans fil). Si vous avez deux réseaux avec un routeur entre vous, vous ne pouvez pas avoir un périphérique dans le réseau A envoyer un paquet à l'adresse MAC d'un périphérique dans le réseau B. Aucun périphérique dans le réseau A n'a l'adresse MAC du périphérique dans le réseau B, aussi Les paquets envoyés à cette adresse MAC seront rejetés par tous les périphériques du réseau A (également par le routeur).

Le routage est effectué au niveau IP. Simplement vu, le routeur ne fait que suivre ce que j'ai décrit ci-dessus dans la section "Comment les adresses IP et les adresses MAC fonctionnent-elles ensemble?". Le routeur recevra des paquets pour sa propre adresse MAC mais pour une adresse IP différente. Il vérifiera ensuite s'il peut atteindre directement l'adresse IP cible. Si c'est le cas, il envoie le paquet à la cible. Sinon, le routeur lui-même a également un routeur en amont configuré et enverra le paquet à ce routeur.

Bien sûr, vous pouvez configurer plusieurs routeurs. Votre routeur domestique n'aura qu'un seul routeur en amont configuré, mais dans le réseau principal Internet, les grands routeurs disposent de grandes tables de routage afin de connaître la meilleure façon de traiter tous les paquets.

Autres cas d'utilisation d'adresses MAC

  1. Les commutateurs réseau stockent une liste d'adresses MAC vues sur chaque port et ne transmettent que les paquets aux ports qui ont besoin de voir le paquet.

  2. Les points d'accès sans fil utilisent souvent des adresses MAC pour le contrôle d'accès. Ils permettent uniquement l'accès aux périphériques connus (l'adresse MAC est unique et identifie les périphériques) avec la phrase secrète correcte.

  3. Les serveurs DHCP utilisent l'adresse MAC pour identifier les périphériques et attribuer des adresses IP fixes à certains périphériques.

Werner Henze
la source
16
+1 pour répondre réellement à la question d'une manière que les personnes qui ne connaissent pas déjà la réponse peuvent comprendre.
moelleux
Je ne peux pas m'empêcher de ressentir le besoin de créer une infographie / un diagramme impressionnant, la façon dont les interactions MAC / IP sont très intéressantes!
NRGdallas
1
bonne réponse, juste un détail: les adresses MAC sont également utilisées pour les périphériques non Ethernet et ce que vous décrivez est valable pour toutes les couches de liaison de données utilisées avec une pile IP
kriss
Il convient de noter les MAC Wi-Fi: bien qu’ils soient généralement uniques et puissent être utilisés pour identifier des périphériques, ils sont faciles à falsifier et à envoyer en clair. S'il n'y a pas d'autre cryptage / authentification utilisé sur la connexion, ou si le ou les autres mécanismes de cryptage / authentification sont faibles (par exemple: WEP), l' attaquant qui emprunte l'identité du périphérique autorisé à rejoindre le réseau est très banal.
Iszi
1
@Rick Vous avez raison, l'adresse IP de destination pour une connexion ne change pas. Mais dans le paragraphe cité, je parlais de la destination directe du paquet - qui pourrait être le routeur, et le routeur pourrait changer pendant la connexion. En ce qui concerne votre deuxième commentaire, j'ai remplacé le texte par "adresse MAC source du paquet ARP". J'espère que c'est plus clair.
Werner Henze
47

L'adresse MAC (adresse de contrôle d'accès au support) est en général l'identifiant des périphériques d'un réseau. Ainsi, chaque carte réseau (contrôleur d'interface réseau présent dans un routeur, un PC, une imprimante réseau, un serveur, etc.) a une adresse MAC. Certains serveurs ont plus d'une carte réseau intégrée et ont donc plusieurs adresses MAC. L'adresse MAC a une longueur de 6 octets (6 octets). Gauche est le Byte le plus significatif et à droite le Byte le moins significatif. Comme vous pouvez le voir sur l'image ci-dessous, les 3 premiers octets sont l' identificateur unique d'organisation . Cela indique le fabricant qui a fabriqué cet appareil.

Voici une liste d' identificateurs uniques d'organisation : Standards.ieee.org

Voici une alternative à ce qui précède: MAC-Vendor-Lookup

Quelques exemples de fabricants connus et connus:

  • 00-05-5D (D-Link Systems Inc.)
  • 00-09-5B (Netgear Inc.)
  • 00-E0-4C (Realtek Semiconductor Corp.)
  • 00-E0-4F (Cisco Systems Inc.)
  • 00-E0-64 (Samsung Electronics)

Les 3 derniers octets (3 octets) sont attribués de manière aléatoire par le fabricant.

Comme pjc50 a déclaré correctement l'adresse MAC d'un réseau Ethernet aide les commutateurs à décider quel paquet envoyer où. Il existe également une adresse MAC de diffusion. ff: ff: ff: ff: ff: ff est utilisé pour l'adresse de diffusion MAC. Notez que l'adresse MAC peut être modifiée, soyez donc prudent si vous l'utilisez comme identifiant de périphérique précis! L'adresse MAC est également utilisée avec le protocole ARP (Address Resolution Protocol). Le PC A envoie donc une requête ARP au PC B avec ses propres adresses IP, adresses MAC, adresse IP du destinataire et adresse de diffusion mentionnées ci-dessus (ff: ff: ff: ff: ff : ff). Après cela, le PC B vérifie si le paquet lui a été envoyé ou non. Si oui, alors le PC B envoie sa propre adresse MAC, son adresse IP, l'adresse MAC du récepteur et l'adresse IP du destinataire. Les autres périphériques rejettent le paquet.

Les ordinateurs A et B enregistrent généralement la connexion établie dans le cache ARP. La façon dont les ordinateurs enregistrent la connexion diffère d'un périphérique à l'autre. Si vous ne connaissez pas l'adresse IP, vous pouvez obtenir l'adresse IP avec le protocole RARP (Reverse Address Resolution Protocol). Avec RARP, l'appareil contacte un client central et lui demande l'adresse IP. Mais cette méthode est à peine utilisée de nos jours.

Les technologies suivantes utilisent le format d'identificateur MAC-48:

  • Ethernet
  • Réseaux sans fil 802.11
  • Bluetooth
  • Anneau à jeton IEEE 802.5
  • la plupart des autres réseaux IEEE 802
  • FDDI
  • ATM (connexions virtuelles commutées uniquement, dans le cadre d'une adresse NSAP) SCSI Fibre Channel et série avec connexion (dans le cadre d'un nom mondial)
Meintjes
la source
4
Plus précisément que "chaque périphérique (...) possède des adresses MAC.", Chaque carte réseau possède une adresse MAC . (Ne tenant pas compte de la possibilité de définir une adresse MAC personnalisée.) Toutes les imprimantes n’ont pas de carte réseau intégrée, et de nombreux serveurs ont plus d’une carte réseau et donc plus d’une adresse MAC.
un CVn
2
Disons que PC-1 envoie un paquet à PC-2. Maintenant, le commutateur ne lit que l'adresse MAC de PC-1 et l'enregistre dans une table. Si vous voulez plus d'informations sur son fonctionnement, lisez ceci: Fonctionnement des commutateurs LAN :)
Meintjes
3
Un autre point est que l’adresse MAC indique comment la carte réseau décide ce qu’il faut rejeter et ce qu’il doit envoyer au processeur pour la gestion. L'adresse MAC de destination d'une trame Ethernet rencontrée sur le câble est XOR avec l'adresse MAC de la carte réseau. Si le résultat est égal à 0, il s'agit d'une trame destinée à cette carte réseau.
bbayles
7
-1: La question posée était de savoir comment les adresses MAC étaient utilisées et non de quelle adresse il s'agissait. La seule partie de votre réponse qui aborde la question est la liste à puces à la fin, et elle n’entre pas beaucoup dans les détails.
Kevin
4
La photo est tirée de wikipedia: en.wikipedia.org/wiki/File:MAC-48_Address.svg , les photos sous licence Creative Commons doivent être attribuées à leurs auteurs lorsqu'ils sont utilisés.
Étienne
24

Ils sont utilisés pour le transfert de paquets: sur un réseau Ethernet, il existe un certain nombre de périphériques et l'adresse MAC spécifie quel périphérique doit recevoir le paquet. Les commutateurs Ethernet l'utiliseront pour choisir le port sur lequel envoyer un paquet reçu.

pjc50
la source
5
Il peut être intéressant de noter qu'Ethernet était à l'origine un support de bus, où toutes les machines partageaient physiquement le même support (ceci est toujours vrai pour les réseaux sans fil). Donc, logiquement, ça marche comme ça.
LawrenceC
et toujours vrai pour les réseaux qui utilisent toujours des hubs :)
Doon
dorénavant, les commutateurs ne sont plus qu'une simple installation (ils sont devenus très répandus avec les LAN RJ-45) et nous pouvons avoir des réseaux IP sans eux (en utilisant des concentrateurs ou 802.11)
kriss
7

Oubliez la hiérarchie dans ce cas, ce n'est pas une question très importante.

Les adresses MAC sont des adresses pour la couche 2 (couche de liaison) dans les modèles ISO / OSI ou TCP / IP. Les adresses IP proviennent de la couche 3 (couche réseau) des mêmes modèles.

Dans un réseau de couche 2, par exemple un réseau Ethernet commun, il existe un domaine de collision, dans lequel tous les équipements connectés peuvent recevoir toutes les trames (données d'unité de couche 2) de n'importe quel point d'extrémité. Mais personne en dehors du réseau ne peut recevoir ces trames. Les adresses MAC sont des adresses dans ces domaines.

Les paquets sont les données unitaires de couche 3, généralement des paquets IP. Ils voyagent dans un ou plusieurs domaines de collision. Les adresses IP sont les adresses de ce domaine.

Les commutateurs sont des périphériques de couche 2 et transmettent des trames à l'aide de tableaux d'adresses MAC. Les routeurs sont des périphériques de couche 3 et transmettent les paquets à l'aide de tables d'adresses IP.

se déconnecter
la source
6

Ethernet suppose que l’autre ordinateur (l’autre MAC) avec lequel il veut parler est directement accessible depuis son adaptateur réseau. IP pas. IP suppose qu’il peut atteindre n’importe quelle autre adresse IP du monde entier et que s’il ne peut pas l’atteindre sur le sous-réseau actuel, un routeur le transportera là-bas, nonobstant NAT. La notion de passerelle n'existe pas dans la couche 2 ou Ethernet.

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

Rappelez-vous toujours qu'Internet signifie «inter-réseau» dans IP, ce qui signifie que le trafic entre les réseaux est plus important que sur un réseau, bien qu'il puisse évidemment être (et est) utilisé à cette fin également.

ultrasawblade
la source
Le premier paragraphe est la réponse parfaite! Éclairant!
Milind R
6

L'adresse MAC est utilisée lors du transfert physique. Un adaptateur Ethernet ne sait rien sur IP. L'adaptateur Ethernet utilise donc l'adresse MAC pour adresser le destinataire du paquet de données.

Si l'adaptateur Ethernet en sait quelque chose sur IP, nous devons mettre à niveau tous nos microprogrammes pour passer à un nouveau protocole (du type IPv4 à IPV6).

De plus, l’adresse MAC contient des informations sur le fabricant.

Uwe Plonus
la source
3
Les routeurs n'utilisent pas l'adresse MAC pour acheminer quoi que ce soit. Ils utilisent des adresses IP. Les concentrateurs copient le trafic non modifié de leurs ports, mais il s'agirait d'un pontage, car le trafic ne traverse pas un réseau différent, mais le même réseau.
LawrenceC
5

Il est utilisé lorsque le protocole ARP (Address Resolution Protocol) pour IPv4 ou le protocole NDP (Neighbor Discovery Protocol) pour IPv6 convertit les adresses IP en adresses MAC afin de déterminer le seul hôte auquel les trames doivent être envoyées.

Jesper Jensen
la source
C'est assez proche, mais ça ne couvre pas tout l'usage. C'est ainsi qu'un MAC se rapporte à TCP / IP, mais un MAC est utilisé pour beaucoup plus que cela. C’est la première réponse à laquelle je ne réponds pas par -1 (en partant du bas de la page).
Mark Henderson
@ Mark Henderson Merci pour la critique. Eh bien, j'ai juste essayé de répondre à la question How MAC addresses were used in packet transfer, puis j'ai supposé que c'était au niveau Ethernet. Et oui, c'est une réponse simple, mais je réponds à un niveau qui convient à mon propre niveau :)
Jesper Jensen
3

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, c'est que les commutateurs ne sont pas vraiment nécessaires pour qu'un 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 périphériques sur le même fil (regardez par exemple la technologie Ethernet X base-T).

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

Le routage des paquets dans les réseaux IP signifie que lorsque la machine cible ne peut être accédée directement, elle sera d'abord envoyée à 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 pour cible dans l’en-tête de niveau Ethernet l’adresse MAC de la passerelle, l’en-tête de niveau IP demeurant inchangé.

Vous devez également noter que les adresses MAC signifient généralement de nos jours soit MAC-48 (adresse de périphérique physique), soit EUI-48 (adresse de périphérique logique), soit même les adresses EUI-64 sur 8 octets utilisées dans les réseaux plus importants. 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 périphérique.

Comme je l'ai dit, vous pouvez utiliser une autre couche 2 au lieu d'Ethernet, mais la plupart utilisent une adresse MAC comme identifiant de réseau et le schéma de correspondance MAC / IP sous-jacent tient et vous pouvez toujours utiliser ARP. Autant que je sache, toutes les piles IP reposent sur un tableau de correspondances entre les adresses MAC et les adresses IP.

Il existe d'autres types d'identificateurs de nœuds de périphérique pour les piles non IP. Par exemple, X.25 ne s'appuie pas sur des adresses MAC, mais sur des canaux virtuels établis connexion par connexion, ou les périphériques 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 d’adresses MAC comme faisant partie de son SNA, équivalent à peu près d’une adresse IP pour ATM).

kriss
la source
Les routeurs ne se soucient pas des adresses MAC. Ils se soucient de l'attribution de sous-réseau à chacune de leurs deux cartes réseau au moins, mais pas vraiment des adresses MAC. Ils transmettent (c.-à-d. Copient) le trafic d’une adresse IP à une autre, et non d’une adresse IP à une adresse MAC ou autre.
LawrenceC
4
@ ultrasawblade, votre déclaration est absurde . Si un routeur est connecté à un réseau Ethernet, il doit alors communiquer via le protocole Ethernet. Les paquets IP seront encapsulés dans la trame Ethernet. Ce qui signifie que connaître les adresses mac de tous les systèmes ** directement hôtes Ethernet ** est indispensable. Un dispositif de couche 3 ne communique pas comme par magie sur un protocole de couche 3, il doit encapsuler le protocole de couche 3 dans un protocole de couche 2, qui est ensuite transmis sur le support de couche 1.
Zoredache
3
Je ne suis pas d'accord avec votre première phrase - ils ne sont pas "plus critiques" pour les routeurs que les commutateurs - ils ont tous la même importance sur l'ensemble du réseau Ethernet.
Mark Henderson
1
Vous pouvez remplacer le calque 2 sous-jacent par quelque chose de complètement différent (bien que je ne sache pas quoi) et IP fonctionnera toujours de la même manière. Le protocole IP (couche 3) ne s’intéresse pas si les hôtes individuels sont adressés en dessous par MAC ou un autre schéma. Bien sûr, il est nécessaire de maintenir le mappage IP vers MAC - mais il est difficile de savoir si ARP "appartient" réellement à la couche 3 ou à la couche 2. Le protocole de la couche 2 ne doit pas nécessairement être Ethernet et IP ne s'en soucie pas / besoin de savoir quel est le protocole de couche 2.
LawrenceC
2
@ Mark Henderson: comme je suis vieux, je me souviens d'une époque où il n'y avait pas de commutateur. Ce ne sont pas vraiment des équipements critiques. Les réseaux IP peuvent fonctionner sans commutateurs. Les commutateurs utilisaient simplement une structure de réseau de données préexistante. Si nous les avons actuellement partout, la conséquence est que la technologie RJ point à point remplace les anciens bus. En d'autres termes: les adresses MAC n'ont pas été inventées pour faire fonctionner les commutateurs. D'autre part, les réseaux IP ont été inventés à des fins de routage, d'où l'importance de la relation MAC-IP.
Kriss
2

Repensez aux jours de pré-commutation (hubs).

Si les personnes sont des ordinateurs, l'adresse MAC est leur nom.

Faites semblant que beaucoup de gens (les ordinateurs) ont le même appel téléphonique. Tout le monde parle en même temps.

VOUS (un ordinateur) entendez TOUTES ces discussions, mais vous ne savez pas ce que vous devriez écouter, JUSQU'À ce que quelqu'un dise votre nom (votre adresse MAC) au début d'une phrase (un paquet).

"FRED, THERE IS ICE CREAM!"

Bien entendu, vous écoutez également les phrases envoyées à l' adresse de diffusion . Considérez cela comme une personne qui crie,

"EVERYONE, THERE IS ICE CREAM!"

Au fur et à mesure que plus de personnes (ordinateurs) participent à la téléconférence, plus vous devez filtrer. La technologie avancée et les commutateurs nous ont permis de parler directement à une seule personne (ordinateur / MAC) afin qu’elle ne soit pas obligée de travailler aussi dur pour filtrer tout ce bruit (et libérer plus de bande passante).

L'analogie de base est très similaire à IP, mais elle comporte plus de fonctionnalités et de couches que l'adressage MAC. Les couches 2 et 3 du modèle OSI , respectivement.

Randy James
la source
Vous n'avez pas besoin de repenser aux jours pré-échangés. Les adresses MAC sont bien vivantes et utilisées dans chaque paquet qui quitte votre adaptateur Ethernet aujourd'hui , maintenant.
Mark Henderson
Très vrai. Mais cela aide avec l'analogie. Et les NIC se comportent toujours de la même manière.
Randy James
2

L'adresse MAC est nécessaire car plusieurs adresses sont associées au "bus" (le réseau Ethernet). Un expéditeur doit pouvoir identifier le destinataire, ainsi que s'identifier auprès du destinataire.

Tous les bus matériels doivent être adressés, car plusieurs expéditeurs et destinataires partagent les mêmes fils et les messages doivent être envoyés à des destinataires spécifiques et identifier les expéditeurs d'origine.

I2C, PCI, Ethernet, nommez-le.

Nous avons plusieurs adresses inter-réseaux (adresse IP et adresse matérielle) car une adresse de niveau matériel n’est locale que sur un réseau physique particulier. Lorsqu'un datagramme voyage d'un réseau à un autre, il a tendance à conserver son adresse de niveau réseau, mais il change d'adresse de matériel à plusieurs reprises. Lorsque vous passez sur 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 supprimées et remplacées par des adresses différentes à chaque fois qu'un paquet croise un routeur.)

Kaz
la source
1

Dans l'ancien temps, les réseaux étaient des bus partagés. Chaque périphérique en réseau connecté au même fil ou à un concentrateur, ce qui signifie que chaque paquet que vous avez envoyé a été reçu par chaque périphérique du réseau.

Le logiciel de mise en réseau était alors plus simple. Chaque appareil avait une adresse MAC, qui était garantie d'être unique. Cela n'avait pas besoin d'être autre chose - tout ce qu'il faisait était de s'assurer qu'aucun appareil sur le même réseau n'avait la même adresse.

Si votre appareil souhaitait parler à un autre appareil, il enverrait un paquet avec l'adresse MAC du destinataire, qui le choisirait hors du réseau. Tous les autres appareils l'ignoreraient - cela n'était pas adressé à leur adresse MAC.

Au fil du temps, les utilisateurs ont connecté trop de périphériques au réseau et ne pouvaient pas suivre le trafic. Ils ont donc commencé à séparer les réseaux et ont connecté deux réseaux avec des commutateurs. Ces commutateurs avaient d'énormes tables leur indiquant quelles adresses MAC se trouvaient sur chacun des réseaux. S'ils voyaient un paquet sur un réseau adressé à une adresse MAC de l'autre réseau, ils copiaient le message sur l'autre réseau. Ils ne copieraient cependant pas tous les messages, mais uniquement ceux qui devaient être redirigés vers l'autre réseau.

Cela a réduit l'encombrement et permis la mise en réseau de davantage d'appareils et la gestion d'un plus grand trafic global. C'est un réseau à commutation de paquets .

Cependant, cela n'a pas résolu tous les problèmes et a subi un énorme désavantage: à mesure que les tables de commutation grandissaient, les réseaux ralentissaient. Si vous avez connecté 5 000 machines à 50 réseaux différents, tous interconnectés avec des commutateurs, chaque commutateur devait apprendre les 5 000 adresses MAC et acheminer les paquets en conséquence.

Ce n'était pas grave avant que des personnes de différentes institutions, telles que des universités, souhaitent connecter leurs réseaux, et les tables requises auraient été formidables. Garder la trace de quelques centaines de milliers d'adresses MAC aujourd'hui ne semble pas être un gros problème, mais dans les années 1970, lorsque cela se produisait, les commutateurs étaient eux-mêmes des ordinateurs, avec une mémoire et une vitesse limitées, ainsi que de suivre et de changer rapidement des paquets pour quelques cent était un problème.

La solution passait sur un réseau IP et utilisait des routeurs. Ceci est construit au-dessus du réseau de paquets commuté basé sur l'adresse MAC. Plutôt que des données brutes, les paquets contiennent maintenant un paquet IP - un paquet dans un paquet.

Maintenant, les grands réseaux sont connectés avec des routeurs. Ils attendent qu’ils voient un paquet avec leur adresse MAC, puis retirent le paquet IP et examinent l’adresse IP. Ils re-emballent 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 celle d'un autre routeur sur le nouveau réseau, mais il pourrait également s'agir de la machine avec l'adresse IP.

Dans les réseaux actuels, on voit rarement des concentrateurs et des bus (sauf dans les réseaux sans fil, où le support est intrinsèquement partagé), mais ma machine se connecte directement à un commutateur, qui les connecte à un routeur.

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

Si j'envoie un paquet IP à une machine de mon réseau local, ma machine le placera dans un paquet avec l'adresse MAC correcte. Les commutateurs le commutent localement sur le bon réseau et la machine à laquelle il est destiné le recevra car il possède la bonne adresse MAC. Il va retirer le paquet IP et vérifier que l'adresse IP lui est également destinée et agir en conséquence.

Si j’envoie un paquet IP destiné à une machine ailleurs sur Internet, ma machine sait l’envoyer au routeur. Il est donc placé dans un paquet avec l’adresse MAC du routeur. Il est à nouveau commuté localement dans mon réseau jusqu'à ce qu'il atteigne le réseau auquel le routeur est allumé, puis le routeur le prend, extrait le paquet IP, examine le paquet IP et, sur la base de sa connaissance d'Internet, il l'envoie à un autre routeur. un autre réseau, en l’emballant dans un paquet avec l’adresse MAC du routeur ou de l’ordinateur de destination prévu.

J'ai passé en revue beaucoup de petits détails, et quelques algorithmes et protocoles en jeu vraiment intéressants 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.

Adam Davis
la source
1
Vous avez bien démarré, mais vous l'avez perdu au milieu, où vous commencez à parler de réseaux interconnectés. Les commutateurs n'étaient pas courants avant les années 90, mais le routage existait 20 ans auparavant.
Mark Henderson
-1

La différence fondamentale est que le code MAC est attribué par le fabricant au moment de la fabrication, tandis que l'adresse IP est attribuée au moment de la connexion.

MAC est nécessaire car il peut être utilisé pour identifier un périphérique avant de se connecter au réseau. Cependant, étant donné qu'il est affecté statiquement, il est distribué de manière assez aléatoire, il n'est donc pas approprié pour un routage efficace sur plus d'un réseau (pour ce faire, chaque périphérique de la planète devrait disposer d'une table de routage énorme vers tous les autres périphériques du monde. ) Par conséquent, l'adresse IP est nécessaire car elle est attribuée au moment de la connexion et la manière dont elle est attribuée permet un routage longue distance plus efficace (avec IP, la plupart des périphériques n'ont besoin que de connaître leurs réseaux adjacents).

S'il n'y a qu'une adresse IP, les appareils auxquels aucune adresse IP n'a été attribuée ne pourront pas dire quel message leur est destiné. Comment déterminez-vous que ce DHCP est destiné à vous et non à une autre personne qui demande également l'attribution d'adresse au même moment?

Bien sûr, les MAC sont également utilisés pour d'autres parties de l'envoi de paquets, mais la plupart de ces utilisations sont plutôt accessoires et peuvent (du moins en théorie) être remplacées par un numéro attribué de manière dynamique (par exemple une adresse IP).

Lie Ryan
la source
+1 pour la raison pour laquelle nous n'avons pas simplement continué à utiliser les adresses MAC.
deed02392
3
Le premier paragraphe est techniquement correct, mais ce n'est pas la différence fondamentale. La différence fondamentale réside dans le fait qu'un MAC appartient à Ethernet et qu'un IP appartient à TCP / IP. Vous pouvez exécuter TCP / IP sur plusieurs protocoles de couche 2 (ATM, par exemple). De plus, TCP / IP ne s'exécute pas uniquement sur Etherhet. "Avant de vous connecter au réseau", cela n'existe pas, mais "Avant d'obtenir une adresse IP auprès de DHCP". Mais le MAC est toujours utilisé par la suite, car il repose sur une couche différente du modèle OSI. Le dernier paragraphe est carrément faux - il n'y a pas de remplacement pour une adresse MAC en réseau.
Mark Henderson
@MarkHenderson: Mon point est que le MAC appartenant à Ethernet et IP à TCP / IP est un accident historique; théoriquement, si nous repensions entièrement la pile Internet (en ignorant OSI et la compatibilité avec d'autres réseaux), il serait possible de remplacer la plupart des utilisations du numéro attribué en usine (par exemple, MAC) par un numéro attribué de manière dynamique (par exemple, IP), à l'exception de qu'un nombre de paquets doit être envoyé / reçu avant qu'un numéro attribué de manière dynamique puisse être acquis, d'où la nécessité d'un identificateur global unique attribué par l'usine.
Lie Ryan
@MarkHenderson: IMO, disant que nous avons besoin de MAC et IP car MAC est la couche 2 et IP est la couche 3, c'est comme dire "nous en avons besoin parce que nous avions conçu Internet pour être ainsi", il passe à côté de l'essentiel et ne donne aucune information utile quoi que ce soit. Ce à quoi je réponds ici, c’est pourquoi les identifiants attribués en usine et attribués de manière dynamique sont nécessaires en raison de la nature du problème, et ce qu’implique une pile Internet sans aucune perte (perte d'efficacité du routage sans ID attribué de manière dynamique et difficulté de adresser de manière unique un périphérique avant l'attribution d'identifiant dynamique pour aucun identifiant attribué en usine).
Lie Ryan
@LieRyan, En fait, nous pouvons changer l' adresse MAC de notre PC .......
Pacerier